Configure as CMEK para o Cloud Logging

Este documento descreve como configurar e gerir as chaves de encriptação geridas pelo cliente (CMEK) para o Cloud Logging de modo a cumprir os requisitos de conformidade da sua organização. Pode configurar a CMEK como uma predefinição de recursos para uma organização, uma pasta ou ambas. 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.

Pode configurar definições predefinidas para uma organização e para pastas. Quando cria novos recursos, esses recursos herdam as definições predefinidas do respetivo recurso principal. Por exemplo, se configurar a CMEK como uma definição de recurso predefinida para uma organização, todos os novos contentores de registos _Default e _Required criados em projetos, pastas ou contas de faturação nessa organização são encriptados com a chave predefinida. Além disso, se criar um contentor de registos personalizado num projeto que seja filho dessa organização, a chave predefinida é usada automaticamente, a menos que forneça uma chave diferente quando criar o contentor de registos.

As instruções neste guia usam a CLI do Google Cloud.

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

Quando configura as CMEK como uma predefinição de recursos para o Logging, ocorrem os seguintes eventos:

  • Os novos contentores de registos na organização ou na pasta são encriptados automaticamente com a chave configurada. No entanto, pode alterar essa chave ou criar contentores de registo e especificar uma chave diferente. Para mais informações, consulte o artigo Configure as CMEK para contentores de registos.
  • Se usar o Log Analytics e consultar vários contentores de registos, a chave predefinida pode ser usada para encriptar dados temporários. Para mais informações, consulte o artigo Restrições do Log Analytics.

Antes de começar

Para começar, conclua os seguintes passos:

  1. Antes de criar um contentor de registos com as CMEK ativadas, reveja as Limitações.

  2. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  3. Configure o Google 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 administrador do Cloud KMS (roles/cloudkms.admin) da IAM no seu projeto. 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.

      O Cloud Logging permite-lhe usar uma chave de qualquer região. No entanto, quando cria um contentor de registos, a localização do contentor de registos tem de corresponder à localização da chave. Para informações sobre as regiões suportadas, consulte o seguinte:

      Se configurar a CMEK como uma predefinição de recursos para o Logging através dos passos descritos neste documento, os novos contentores de registos criados na organização ou na pasta são configurados automaticamente para a CMEK. Além disso, uma vez que a localização de um contentor de registos tem de corresponder à localização da chave, depois de configurar o CMEK como uma predefinição de recurso, não pode criar contentores de registos na região global.

  4. Certifique-se de que a sua função de IAM na organização ou na pasta cujas predefinições quer configurar inclui as seguintes autorizações do Cloud Logging:

    • logging.settings.get
    • logging.settings.update
  5. Ative as CMEK para uma organização ou uma pasta

    Siga estas instruções para ativar as CMEK para a sua Google Cloud pasta ou organização.

    Determine o ID da conta de serviço

    Para determinar o ID da conta de serviço associado à organização ou à pasta à qual a CMEK se aplica, execute o seguinte comando gcloud logging settings describe:

    FOLDER

     gcloud logging settings describe --folder=FOLDER_ID
    

    Antes de executar o comando anterior, faça a seguinte substituição:

    • FOLDER_ID: o identificador numérico exclusivo da pasta. Para ver informações sobre a utilização de pastas, consulte o artigo Criar e gerir pastas.

    ENTIDADE

    gcloud logging settings describe --organization=ORGANIZATION_ID

    Antes de executar o comando anterior, faça a seguinte substituição:

    • ORGANIZATION_ID: o identificador numérico exclusivo da organização. Para obter informações sobre como receber este identificador, consulte o artigo Receber o ID da sua organização.

    O comando anterior gera contas de serviço para a organização ou a pasta, quando não existem. O comando também devolve os IDs de duas contas de serviço, uma no campo kmsServiceAccountId e a outra no campo loggingServiceAccountId. Para configurar a CMEK como uma predefinição, use o valor no campo kmsServiceAccountId.

    A imagem seguinte ilustra uma resposta de exemplo ao comando anterior quando é especificada uma organização:

    kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
    loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
    name: organizations/ORGANIZATION_ID/settings
    

    Execute o processo de aprovisionamento uma vez por recurso. A execução do comando describe várias vezes devolve o mesmo valor para o campo kmsServiceAccountId.

    Se não conseguir usar a CLI do Google Cloud, execute o método da API Cloud Logging getSettings.

    Atribua a função de encriptador/desencriptador

    Para usar a CMEK, conceda à conta de serviço autorização para usar o seu Cloud KMS atribuindo a função Encriptador/desencriptador de CryptoKey do Cloud KMS à conta de serviço:

    gcloud

    gcloud kms keys add-iam-policy-binding \
    --project=KMS_PROJECT_ID \
    --member serviceAccount:KMS_SERVICE_ACCT_NAME@gcp-sa-logging.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 Google Cloud projeto e um número atribuído aleatoriamente, do projeto Google 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.

    Consola

    1. Na Google Cloud consola, aceda à página Gestão de chaves.

      Aceda à gestão de chaves

    2. Selecione o nome do conjunto de chaves que contém a chave.

    3. Selecione a caixa de verificação da chave.

      O separador Permissões fica disponível.

    4. Na caixa de diálogo Adicionar membros, especifique o endereço de email da conta de serviço de registo que está a conceder acesso.

    5. No menu pendente Selecionar uma função, selecione Encriptador/desencriptador de CryptoKey do Cloud KMS.

    6. Clique em Adicionar.

    Configure as políticas da organização

    O registo em registo suporta políticas da organização que podem exigir a proteção CMEK e podem limitar as CryptoKeys do Cloud KMS que podem ser usadas para a proteção CMEK:

    • Quando logging.googleapis.com está na lista de serviços da política Deny para a restrição constraints/gcp.restrictNonCmekServices, o Logging recusa-se a criar novos contentores definidos pelo utilizador que não estejam protegidos pela CMEK. No entanto, esta restrição não impede que o Cloud Logging crie os contentores de registos _Required e _Default, que são criados quando um projetoGoogle Cloud é criado.

    • Quando a constraints/gcp.restrictCmekCryptoKeyProjects é aplicada, o Logging cria recursos protegidos pela CMEK que são protegidos por uma CryptoKey de um projeto, uma pasta ou uma organização permitidos.

    Para mais informações acerca das CMEK e das políticas da organização, consulte o artigo Políticas da organização de CMEK.

    Quando existe uma política da organização que especifica uma restrição de CMEK, certifique-se de que essas restrições são consistentes com as definições predefinidas do Logging para uma organização ou uma pasta. Além disso, se planear modificar as definições predefinidas, antes de atualizar as definições predefinidas, reveja e, se necessário, atualize as políticas da organização.

    Para ver ou configurar políticas da organização, faça o seguinte:

    1. Na Google Cloud consola, aceda à página Políticas da organização:

      Aceda a Políticas da organização

      Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é IAM e administração.

    2. Selecione a sua organização.
    3. Valide e, se necessário, atualize as restrições específicas da CMEK.

      Para obter informações sobre como modificar uma política de organização, consulte o artigo Criar e editar políticas.

    Configure o Cloud Logging com a chave do Cloud KMS

    Para configurar as CMEK como uma predefinição de recursos para o registo, execute o seguinte comando gcloud logging settings update:

    FOLDER

    gcloud logging settings update \
        --folder=FOLDER_ID \
        --kms-location=KMS_KEY_LOCATION \
        --kms-key-name=KMS_KEY_NAME \
        --kms-keyring=KMS_KEY_RING \
        --kms-project=KMS_PROJECT_ID
    

    Antes de executar o comando anterior, faça as seguintes substituições:

    • FOLDER_ID: o identificador numérico exclusivo da pasta. Para ver informações sobre a utilização de pastas, consulte o artigo Criar e gerir pastas.
    • KMS_KEY_LOCATION: a região da chave 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.
    • KMS_KEY_RING: o nome do conjunto de chaves do Cloud KMS.
    • KMS_PROJECT_ID: o identificador alfanumérico exclusivo, composto pelo nome do seu Google Cloud projeto e um número atribuído aleatoriamente, do projeto Google Cloud que executa o Cloud KMS. Para obter informações sobre como obter este identificador, consulte o artigo Identificar projetos.

    O comando anterior atualiza as predefinições para armazenar informações sobre a chave do Cloud KMS. Tem de garantir que a localização de armazenamento predefinida da pasta está definida para o valor de KMS_KEY_LOCATION. Se não tiver definido a localização de armazenamento predefinida ou se o valor dessa localização não corresponder ao valor de KMS_KEY_LOCATION, acrescente o seguinte ao comando anterior:

    --storage-location = KMS_KEY_LOCATION
    

    A flag --storage-location permite-lhe definir ou atualizar a localização de armazenamento predefinida da pasta.

    ENTIDADE

    gcloud logging settings update \
        --organization=ORGANIZATION_ID \
        --kms-location=KMS_KEY_LOCATION \
        --kms-key-name=KMS_KEY_NAME \
        --kms-keyring=KMS_KEY_RING \
        --kms-project=KMS_PROJECT_ID
    

    Antes de executar o comando anterior, faça as seguintes substituições:

    • ORGANIZATION_ID: o identificador numérico exclusivo da organização. Para obter informações sobre como receber este identificador, consulte o artigo Receber o ID da sua organização.
    • KMS_KEY_LOCATION: a região da chave 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.
    • KMS_KEY_RING: o nome do conjunto de chaves do Cloud KMS.
    • KMS_PROJECT_ID: o identificador alfanumérico exclusivo, composto pelo nome do seu Google Cloud projeto e um número atribuído aleatoriamente, do projeto Google Cloud que executa o Cloud KMS. Para obter informações sobre como obter este identificador, consulte o artigo Identificar projetos.

    O comando anterior atualiza as predefinições para armazenar informações sobre a chave do Cloud KMS. Tem de garantir que a localização de armazenamento predefinida da organização está definida para o valor de KMS_KEY_LOCATION. Se não tiver definido a localização de armazenamento predefinida ou se o valor dessa localização não corresponder ao valor de KMS_KEY_LOCATION, acrescente o seguinte ao comando anterior:

    --storage-location = KMS_KEY_LOCATION
    

    A flag --storage-location permite-lhe definir ou atualizar a localização de armazenamento predefinida para a organização.

    Depois de a chave ser aplicada, os novos contentores de registos na organização ou na pasta são configurados para encriptar os respetivos dados em repouso através desta chave. Também pode alterar chaves para contentores de registos individuais. Não pode criar contentores de registos na região global porque tem de usar uma chave cuja região corresponda ao âmbito regional dos seus dados.

    Se não conseguir usar a CLI do Google Cloud, execute o método da API Cloud Logging updateSettings.

    Valide a ativação da chave

    Para verificar se ativou com êxito a CMEK para uma organização ou uma pasta, execute o seguinte comando:gcloud logging settings describe

    FOLDER

    gcloud logging settings describe --folder=FOLDER_ID

    Antes de executar o comando anterior, faça a seguinte substituição:

    • FOLDER_ID: o identificador numérico exclusivo da pasta. Para ver informações sobre a utilização de pastas, consulte o artigo Criar e gerir pastas.

    ENTIDADE

    gcloud logging settings describe --organization=ORGANIZATION_ID

    Antes de executar o comando anterior, faça a seguinte substituição:

    • ORGANIZATION_ID: o identificador numérico exclusivo da organização. Para obter informações sobre como receber este identificador, consulte o artigo Receber o ID da sua organização.

    Quando o comando anterior devolve o nome da chave do Cloud KMS, o campo kmsKeyName é preenchido, o que significa que a CMEK está ativada para a organização ou a pasta:

    kmsKeyName: KMS_KEY_NAME
    kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
    loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
    

    Encaminhe registos para destinos suportados

    • Os contentores de registos do Cloud Logging podem ser configurados para encriptar dados com CMEK. Quando configura a CMEK como uma predefinição para uma organização ou uma pasta, os novos contentores de registos na organização ou na pasta usam automaticamente a CMEK. Pode alterar a chave destes contentores de registos e criar contentores de registos que usam uma chave do KMS diferente da especificada pelas predefinições.

      Para obter informações sobre as CMEK aplicadas aos contentores de registos, incluindo como alterar as chaves e as limitações quando ativa as CMEK num contentor de registos, consulte o artigo Configure as CMEK para contentores de registos.

    • O Cloud Storage suporta CMEK para registos de encaminhamento. Para obter instruções sobre como configurar as CMEK para o Cloud Storage, consulte o artigo Usar chaves de encriptação geridas pelo cliente.

      Se os dados forem perdidos devido à indisponibilidade da chave ao encaminhar dados de registos para o Cloud Storage, pode copiar retroativamente os registos em massa para o Cloud Storage quando esses registos também estiverem armazenados num contentor de registos. Para ver detalhes, consulte o artigo Copie entradas do registo.

    Faça a gestão da sua chave do Cloud KMS

    As secções seguintes explicam como alterar, revogar o acesso ou desativar a chave do Cloud KMS.

    Altere a sua chave do Cloud KMS

    Para alterar a chave do Cloud KMS associada a uma organização ou a uma pasta, crie uma chave e, de seguida, execute o comando gcloud logging settings update e faculte informações sobre a nova chave do Cloud KMS:

    FOLDER

    gcloud logging settings update \
        --folder=FOLDER_ID
        --kms-key-name=NEW_KMS_KEY_NAME
        --kms-location=NEW_KMS_KEY_LOCATION \
        --kms-keyring=NEW_KMS_KEY_RING \
        --kms-project=NEW_KMS_PROJECT_ID

    Tem de garantir que a localização de armazenamento predefinida da pasta está definida para o valor de KMS_KEY_LOCATION. Se não tiver definido a localização de armazenamento predefinida ou se o valor dessa localização não corresponder ao valor de KMS_KEY_LOCATION, acrescente o seguinte ao comando anterior:

    --storage-location = NEW_KMS_KEY_LOCATION
    

    ENTIDADE

    gcloud logging settings update \
        --organization=ORGANIZATION_ID
        --kms-key-name=NEW_KMS_KEY_NAME
        --kms-location=NEW_KMS_KEY_LOCATION \
        --kms-keyring=NEW_KMS_KEY_RING \
        --kms-project=NEW_KMS_PROJECT_ID

    Tem de garantir que a localização de armazenamento predefinida da organização está definida para o valor de KMS_KEY_LOCATION. Se não tiver definido a localização de armazenamento predefinida ou se o valor dessa localização não corresponder ao valor de KMS_KEY_LOCATION, acrescente o seguinte ao comando anterior:

    --storage-location = NEW_KMS_KEY_LOCATION
    

    Revogue o acesso à chave do Cloud KMS

    Pode revogar o acesso do Logging à chave do Cloud KMS removendo a autorização do IAM da conta de serviço configurada para essa chave.

    Se remover o acesso do Logging a uma chave, a alteração pode demorar até uma hora a entrar em vigor.

    Para revogar o acesso do Logging à chave do Cloud KMS, execute o seguinte comando da CLI do Google Cloud:

    gcloud kms keys remove-iam-policy-binding \
        --project=KMS_PROJECT_ID \
        --member serviceAccount:KMS_SERVICE_ACCT_NAME@gcp-sa-logging.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 Google Cloud projeto e um número atribuído aleatoriamente, do projeto Google 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.

    Desative as CMEK

    A desativação da CMEK para uma organização ou uma pasta remove a aplicação da política de CMEK apenas para operações futuras. Todas as configurações aplicadas anteriormente permanecem intactas.

    Para desativar as CMEK num recurso que tenha as CMEK configuradas como uma definição de recurso predefinida, execute o seguinte comando da CLI do Google Cloud:

    FOLDER

    gcloud logging settings update --folder=FOLDER_ID --clear-kms-key

    Antes de executar o comando anterior, faça a seguinte substituição:

    • FOLDER_ID: o identificador numérico exclusivo da pasta. Para ver informações sobre a utilização de pastas, consulte o artigo Criar e gerir pastas.

    ENTIDADE

    gcloud logging settings update --organization=ORGANIZATION_ID --clear-kms-key

    Antes de executar o comando anterior, faça a seguinte substituição:

    • ORGANIZATION_ID: o identificador numérico exclusivo da organização. Para obter informações sobre como receber este identificador, consulte o artigo Receber o ID da sua organização.

    Se quiser destruir a sua chave, consulte o artigo Destruir e restaurar versões de chaves.

    Considerações sobre a rotação de chaves do Cloud KMS

    O Cloud Logging não alterna automaticamente a chave de encriptação para ficheiros temporários de recuperação de desastres quando a chave do Cloud KMS associada à Google Cloud organização ou à pasta é alternada. Os ficheiros de recuperação existentes continuam a usar a versão da chave com a qual foram criados. Os novos ficheiros de recuperação usam a versão atual da chave principal.

    Limitações

    Seguem-se as limitações conhecidas quando configura a CMEK como uma definição de recurso predefinida para o Logging.

    Indisponibilidade de ficheiros de recuperação de desastres

    Uma chave do Cloud KMS é considerada disponível e acessível pelo Logging quando ambas as seguintes condições se aplicam:

    • A chave está ativada.
    • A conta de serviço indicada no campo kmsServiceAccountId da resposta do comando gcloud logging settings describe tem autorizações de encriptação e desencriptação na chave.

    Se o Logging perder o acesso à chave do Cloud KMS, o Logging não consegue escrever ficheiros temporários de recuperação de desastres e, para os utilizadores, as consultas deixam de funcionar. O desempenho das consultas pode permanecer degradado mesmo após o acesso à chave ser restaurado.

    O encaminhamento de registos para o Cloud Storage também pode ser afetado porque o Logging não consegue escrever os ficheiros temporários necessários para facilitar o encaminhamento. Se for detetado um erro ao encriptar ou desencriptar dados, é enviada uma notificação para o Google Cloud projeto que contém a chave do Cloud KMS.

    Disponibilidade da biblioteca cliente

    As bibliotecas cliente de registo não fornecem métodos para configurar o CMEK.

    Degradação devido à indisponibilidade da chave do Cloud EKM

    Quando usa uma chave do Cloud EKM, a Google não tem controlo sobre a disponibilidade da sua chave gerida externamente no sistema de parceiros de gestão de chaves externo.

    Quando a CMEK está configurada como a definição de recurso predefinida para uma organização ou uma pasta, se uma chave gerida externamente estiver indisponível, o Cloud Logging tenta continuamente aceder à chave. O Cloud Logging também armazena em buffer os dados de registo recebidos durante um máximo de uma hora. Após uma hora, se o Cloud Logging ainda não conseguir aceder à chave gerida externamente, começa a rejeitar os dados.

    Se a CMEK for aplicada a um contentor de registos e se uma chave gerida externamente estiver indisponível, o Cloud Logging continua a armazenar registos em contentores de registos, mas os utilizadores não vão poder aceder a esses dados.

    Consulte a documentação do Cloud External Key Manager para ver mais considerações e potenciais alternativas quando usar chaves externas.

    Limitações em contentores de registos

    Para ver as limitações quando usa as CMEK com contentores de registos, consulte as Limitações.

    Quotas

    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 da CMEK e da predefinição.