Configure a CMEK para contentores de registos

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:

  1. Existem algumas limitações quando usa a CMEK. Antes de criar um contentor de registos com as CMEK ativadas, reveja as Limitações.

  2. 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

  3. Configure o Trusted Cloud projeto onde planeia criar as chaves:

    1. 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.

    2. Ative a API Cloud KMS.

    3. 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.

  4. 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
  5. 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

    1. 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.

    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:

    • 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 comando gcloud 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.

    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:

    • 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.

    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:

    • BUCKET_PROJECT_ID: nome do Trusted Cloud projeto que armazena o contentor de registos.

    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:

    1. 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.
    2. Identifique outra chave do Cloud KMS que possa usar. Se o seu conjunto de chaves tiver apenas uma chave, crie uma chave.
    3. Altere a chave do Cloud KMS do contentor de registos para a chave do Cloud KMS criada no passo anterior.
    4. Altere a chave do Cloud KMS do contentor de registos para a chave do Cloud KMS original.

    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
    
    • 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.

    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:

    • 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 comando gcloud 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.

    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:

    • A chave está ativada.
    • A conta de serviço do Logging tem autorizações de encriptação e desencriptação na chave.

    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.