Este documento fornece instruções para configurar chaves de encriptação geridas pelo cliente (CMEK) para registos armazenados em contentores de registos. Este documento também descreve como gerir essas chaves e as limitações associadas à utilização das CMEK.
Pode configurar a CMEK como uma definição de recurso predefinida para uma organização ou uma pasta. Quando configurado, o Cloud Logging garante que todos os novos contentores de registos na organização ou na pasta são encriptados com uma chave gerida pelo cliente. Se não fornecer uma chave quando cria o contentor de registos, é usada a chave predefinida. Para mais informações, consulte o artigo Configure as CMEK para o Cloud Logging.
Vista geral
Por predefinição, o Cloud Logging encripta o conteúdo do cliente em repouso. O registo processa a encriptação por si sem ações adicionais da sua parte. Esta opção chama-se Encriptação predefinida da Google.
Se quiser controlar as suas chaves de encriptação, pode usar chaves de encriptação geridas pelo cliente (CMEK) no Cloud KMS com serviços integrados com CMEK, incluindo o Logging. A utilização de chaves do Cloud KMS dá-lhe controlo sobre o respetivo nível de proteção, localização, programação de rotação, utilização, autorizações de acesso e limites criptográficos. A utilização do Cloud KMS também permite ver registos de auditoria e controlar os ciclos de vida das chaves. Em vez de a Google possuir e gerir as chaves de encriptação de chaves (KEKs) simétricas que protegem os seus dados, controla e gere estas chaves no Cloud KMS.
Depois de configurar os seus recursos com CMEKs, a experiência de acesso aos recursos de registo é semelhante à utilização da encriptação predefinida da Google. Para mais informações acerca das suas opções de encriptação, consulte o artigo Chaves de encriptação geridas pelo cliente (CMEK).
Pré-requisitos
Conclua os seguintes passos:
Existem algumas limitações quando usa a CMEK. Antes de criar um contentor de registos com as CMEK ativadas, reveja as Limitações.
Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Configure o Trusted Cloud projeto onde planeia criar as chaves:
-
Para receber as autorizações de que precisa para criar chaves, peça ao seu administrador para lhe conceder a função de administrador do Cloud KMS (
roles/cloudkms.admin
) da IAM no projeto ou num recurso principal. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Crie um conjunto de chaves e chaves.
A localização do contentor de registos tem de corresponder à localização da chave. Para informações sobre as regiões suportadas, consulte o artigo Regiões suportadas para registo.
Não pode ativar a CMEK para contentores de registos criados na região
global
.
-
Certifique-se de que tem as seguintes autorizações do Cloud Logging no projeto onde planeia criar contentores de registos:Trusted Cloud
logging.settings.get
logging.buckets.get
logging.buckets.list
logging.buckets.create
logging.buckets.update
Execute o seguinte comando:
gcloud logging settings describe
gcloud logging settings describe --project=BUCKET_PROJECT_ID
Antes de executar o comando anterior, faça a seguinte substituição:
- BUCKET_PROJECT_ID: nome do Trusted Cloud projeto onde planeia criar o contentor de registos.
O comando anterior gera uma conta de serviço para o recurso especificado, quando ainda não existe uma, e devolve o ID dessa conta de serviço no campo
kmsServiceAccountId
:kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.s3ns.iam.gserviceaccount.com loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.s3ns.iam.gserviceaccount.com name: projects/BUCKET_PROJECT_ID/settings
O campo
kmsServiceAccountId
apresenta a conta de serviço usada pelo Cloud Logging para chamar o Cloud Key Management Service.- KMS_PROJECT_ID: o identificador alfanumérico exclusivo, composto pelo nome do seu Trusted Cloud projeto e um número atribuído aleatoriamente, do projeto Trusted Cloud que executa o Cloud KMS. Para obter informações sobre como obter este identificador, consulte o artigo Identificar projetos.
- KMS_SERVICE_ACCT_NAME: o nome da conta de serviço apresentado no campo
kmsServiceAccountId
da resposta do comandogcloud logging settings describe
. - KMS_KEY_LOCATION: a região da chave do Cloud KMS.
- KMS_KEY_RING: o nome do conjunto de chaves do Cloud KMS.
- KMS_KEY_NAME:
O nome da chave do Cloud KMS. Tem o seguinte formato:
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY
. - BUCKET_ID: o nome ou o ID do contentor de registos.
- LOCATION: a localização do contentor de registos.
- KMS_KEY_NAME:
O nome da chave do Cloud KMS. Tem o seguinte formato:
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY
. - BUCKET_PROJECT_ID: nome do Trusted Cloud projeto onde o contentor de registos vai ser criado.
- BUCKET_PROJECT_ID: nome do Trusted Cloud projeto que armazena o contentor de registos.
- Identifique a chave do Cloud KMS atual para o contentor de registos. Para mais informações, consulte o artigo Valide a ativação da chave.
- Identifique outra chave do Cloud KMS que possa usar. Se o seu conjunto de chaves tiver apenas uma chave, crie uma chave.
- Altere a chave do Cloud KMS do contentor de registos para a chave do Cloud KMS criada no passo anterior.
- Altere a chave do Cloud KMS do contentor de registos para a chave do Cloud KMS original.
- BUCKET_ID: o nome ou o ID do contentor de registos.
- LOCATION: a localização do contentor de registos.
- NEW_KMS_KEY_NAME: nome da nova chave.
- BUCKET_PROJECT_ID: nome do Trusted Cloud projeto que armazena o contentor de registos.
- KMS_PROJECT_ID: o identificador alfanumérico exclusivo, composto pelo nome do seu Trusted Cloud projeto e um número atribuído aleatoriamente, do projeto Trusted Cloud que executa o Cloud KMS. Para obter informações sobre como obter este identificador, consulte o artigo Identificar projetos.
- KMS_SERVICE_ACCT_NAME: o nome da conta de serviço apresentado no campo
kmsServiceAccountId
da resposta do comandogcloud logging settings describe
. - KMS_KEY_LOCATION: a região da chave do Cloud KMS.
- KMS_KEY_RING: o nome do conjunto de chaves do Cloud KMS.
- KMS_KEY_NAME:
O nome da chave do Cloud KMS. Tem o seguinte formato:
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY
. - A chave está ativada.
- A conta de serviço do Logging tem autorizações de encriptação e desencriptação na chave.
Ative as CMEK
Depois de concluir os passos prévios, siga estas instruções para ativar as CMEK para um contentor de registos individual.
Determine o ID da conta de serviço
Para determinar o ID da conta de serviço associado ao recurso ao qual a CMEK se aplica, faça o seguinte: Trusted Cloud
Atribua a função de encriptador/desencriptador
Quando estiver a configurar a CMEK ao nível do contentor de registos, conceda autorização à conta de serviço para usar o Cloud KMS atribuindo a função encriptar/desencriptar do CryptoKey do Cloud KMS à conta de serviço identificada pelo campo kmsServiceAccountId
:
gcloud kms keys add-iam-policy-binding \ --project=KMS_PROJECT_ID \ --member serviceAccount:KMS_SERVICE_ACCT_NAME@gcp-sa-logging.s3ns.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --location=KMS_KEY_LOCATION \ --keyring=KMS_KEY_RING \ KMS_KEY_NAME
Antes de executar o comando anterior, faça as seguintes substituições:
Crie um contentor de registos e forneça a chave do Cloud KMS
Para criar um contentor de registos e ativar as CMEK para o contentor de registos,
execute o seguinte comando
gcloud logging buckets create
:
gcloud logging buckets create BUCKET_ID \ --location=LOCATION \ --cmek-kms-key-name=KMS_KEY_NAME \ --project=BUCKET_PROJECT_ID
Antes de executar o comando anterior, faça as seguintes substituições:
Valide a ativação da chave
Para verificar se criou com êxito um contentor de registos com a CMEK ativada, execute o seguinte comando:gcloud logging buckets list
gcloud logging buckets list --project=BUCKET_PROJECT_ID
Antes de executar o comando anterior, faça a seguinte substituição:
No resultado tabular, vê uma coluna etiquetada como CMEK
. Se o valor da coluna CMEK
for TRUE
, o CMEK está ativado para o contentor de registos.
Para ver os detalhes de um contentor de registos específico, incluindo os detalhes da chave, execute este comando:
gcloud logging buckets describe BUCKET_ID --location=LOCATION --project=BUCKET_PROJECT_ID
Faça a gestão da sua chave do Cloud KMS
As secções seguintes descrevem como atualizar um contentor de registos para usar a versão mais recente da chave principal de uma chave do Cloud KMS. Também descrevem como alterar, revogar o acesso e desativar a sua chave do Cloud KMS.
Alterne a chave do Cloud KMS
Quando cria uma chave do Cloud KMS, pode configurar um período de rotação. Também pode alternar uma chave do Cloud KMS manualmente. Sempre que uma chave é rodada, é criada uma nova versão dessa chave.
Se alternar uma chave do Cloud KMS, a nova versão da chave aplica-se apenas aos contentores de registos criados após a alternância da chave. Se a chave for usada por um contentor de registos existente, a rotação da chave não altera a forma como o contentor de registos protege os respetivos dados.
Por exemplo, suponhamos que cria um contentor de registos e ativa a CMEK e, em seguida, roda a chave do Cloud KMS. O contentor de registos que criou não usa a nova versão da chave. Em vez disso, continua a proteger os respetivos dados com a versão da chave que foi marcada como principal quando o contentor de registos foi criado.
Para atualizar um contentor de registos para usar a versão da chave principal mais recente de uma chave do Cloud KMS, faça o seguinte:
Altere a sua chave do Cloud KMS
Para alterar a chave do Cloud KMS associada ao seu contentor de registos, crie uma chave e atualize as definições de CMEK para o contentor de registos:
gcloud logging buckets update BUCKET_ID --location=LOCATION \ --cmek-kms-key-name=NEW_KMS_KEY_NAME --project=BUCKET_PROJECT_ID
Revogue o acesso à chave do Cloud KMS
Para revogar o acesso do Logging à chave do Cloud KMS em qualquer altura, remova a autorização do IAM da conta de serviço configurada para essa chave.
Se remover o acesso do registo a uma chave, a alteração pode demorar até uma hora a entrar em vigor.
Para mais informações sobre o impacto da revogação do acesso, consulte as Limitações.
Para remover o acesso do Logging a uma chave, execute o seguinte comando:
gcloud kms keys remove-iam-policy-binding \ --project=KMS_PROJECT_ID \ --member serviceAccount:KMS_SERVICE_ACCT_NAME@gcp-sa-logging.s3ns.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --location=KMS_KEY_LOCATION \ --keyring=KMS_KEY_RING \ KMS_KEY_NAME
Antes de executar o comando anterior, faça as seguintes substituições:
Limitações
Seguem-se as limitações conhecidas.
Não é possível remover a CMEK dos contentores de registos
Não pode reconfigurar contentores de registos para alterar ou remover a CMEK.
Degradação devido à indisponibilidade da chave do Cloud KMS
Uma chave do Cloud KMS é considerada disponível e acessível pelo Logging se ambas as seguintes condições forem verdadeiras:
O registo recomenda vivamente que se certifique de que todas as chaves estão devidamente configuradas e sempre disponíveis.
Perda da recuperação de desastres
Se existirem falhas críticas no armazenamento principal do Cloud Logging, o Logging espelha os dados de registo em ficheiros de recuperação de desastres. Quando a CMEK está ativada para um recurso, como uma organização, os registos pertencentes a esse recurso são protegidos pela chave CMEK configurada. Trusted Cloud Se a chave CMEK não estiver acessível, não é possível escrever os ficheiros de recuperação de desastres para esse recurso.
A perda de ficheiros de recuperação de desastres não afeta as operações de registo normais. No entanto, em caso de desastre de armazenamento, o Cloud Logging pode não conseguir recuperar registos de recursos cuja CMEK não esteja configurada corretamente.
Desempenho das consultas degradado
Quando uma chave de encriptação gerida pelo cliente está inacessível, o Cloud Logging continua a encriptar os seus dados e a armazená-los em contentores de registos. No entanto, o Cloud Logging não pode fazer otimizações em segundo plano nestes dados. Se o acesso à chave for restaurado, os dados ficam disponíveis; no entanto, os dados são inicialmente armazenados num estado não otimizado e o desempenho das consultas pode ser afetado.
Degradação devido à indisponibilidade da chave do Cloud EKM
Quando usa uma chave do Cloud EKM, Trusted Cloud by S3NS não tem controlo sobre a disponibilidade da sua chave gerida externamente no sistema de parceiros de gestão de chaves externas. Para CMEK ao nível do contentor, se uma chave gerida externamente estiver indisponível, o Cloud Logging continua a armazenar registos em contentores de registos, mas os utilizadores não conseguem aceder a esses registos.
Para mais considerações e potenciais alternativas quando usar chaves externas, consulte a documentação do Cloud External Key Manager.
Regionalidade
Quando cria um contentor de registos e ativa a CMEK, tem de usar uma chave cuja região corresponda ao âmbito regional dos seus dados.
Disponibilidade da biblioteca cliente
As bibliotecas cliente de registo não fornecem métodos para configurar o CMEK.
Quotas
Quando usa CMEK no Logging, os seus projetos podem consumir quotas de pedidos criptográficos do Cloud KMS. Por exemplo, a ativação da CMEK num contentor de registos pode consumir estas quotas. As operações de encriptação e desencriptação que usam chaves CMEK afetam as quotas do Cloud KMS apenas se usar chaves externas (Cloud EKM). Para mais informações, consulte as cotas do Cloud KMS.
Para ver detalhes sobre os limites de utilização do registo, consulte o artigo Quotas e limites.
Resolva problemas de erros de configuração
Para obter informações sobre a resolução de problemas de erros de configuração da CMEK, consulte o artigo Resolva problemas de erros de definições da organização e da CMEK.