Usar chaves de criptografia gerenciadas pelo cliente

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

É possível usar chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para proteger o Eventarc e os dados em repouso relacionados. Essas chaves são criadas e gerenciadas por meio do Cloud Key Management Service (Cloud KMS) e armazenadas como chaves de software em um cluster do Cloud HSM ou usando o Cloud External Key Manager externamente.

A ativação de um canel com uma CMEK protege os dados associados a ela usando uma chave de criptografia que somente você pode acessar. Esse tipo de criptografia permite que você atenda aos requisitos de conformidade em determinados setores, como serviços financeiros. Como a chave CMEK pertence a você e não é controlada pelo Google, ninguém (incluindo você) pode acessar os dados protegidos por essas chaves de criptografia quando as chaves são desativadas ou destruídas.

O Cloud KMS produz registros de auditoria do Cloud quando as chaves são ativadas, desativadas ou usadas por recursos do canal do Eventarc para criptografar e descriptografar mensagens. Para mais informações, consulte Informações sobre registros de auditoria do Cloud KMS.

Antes de começar

Antes de usar esse recurso no Eventarc, você precisa:

Console

  1. Ative as APIs Cloud KMS and Eventarc.

    Ative as APIs

  2. Crie um keyring e adicione uma nova chave a ele.

gcloud

  1. Atualize os componentes gcloud.
    gcloud components update
    
  2. Ative as APIs Cloud KMS e Eventarc no projeto que armazenará as chaves de criptografia.
    gcloud services enable cloudkms.googleapis.com eventarc.googleapis.com
    
  3. Crie um keyring e adicione uma nova chave a ele.

Para mais informações, consulte Como criar chaves de criptografia simétricas.

Observe que o Cloud KMS e o Eventarc são serviços regionais. A região da chave do Cloud KMS e do canal protegido do Eventarc precisa ser a mesma.

Conceder acesso a conta de serviço do Eventarc a uma chave

Para conceder à conta de serviço do Eventarc acesso à chave do Cloud KMS, adicione a conta de serviço como principal da chave e conceda à conta de serviço o papel Criptografador/descriptografador da CryptoKey do Cloud KMS:

Console

Você precisará conceder o papel Criptografador/Descriptografador da CryptoKey do Cloud KMS à conta de serviço por meio do console quando ativar a CMEK para um canal do Google ou de terceiros. Para mais informações, neste documento, consulte Ativar CMEK para um canal do Google ou canal de terceiros.

gcloud

gcloud kms keys add-iam-policy-binding KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--member serviceAccount:SERVICE_AGENT_EMAIL \
--role roles/cloudkms.cryptoKeyEncrypterDecrypter

Substitua:

  • KEY_NAME: o nome da chave; Por exemplo, my-key.
  • KEY_RING: o nome do keyring; Por exemplo, my-keyring.
  • LOCATION: a localização da chave; Por exemplo, us-central1.
  • SERVICE_AGENT_EMAIL: o endereço de e-mail da conta de serviço com o papel eventarc.serviceAgent.

    Por exemplo, service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com. Para mais informações, consulte Agentes de serviço.

Ativar CMEK para um canal do Google

Um canal do Google é um recurso em que as origens do Google Cloud podem interagir com destinos. Para mais informações, consulte Provedores de eventos de lista.

Para ativar o CMEK em um canal do Google:

Console

  1. No console, acesse a página Eventarc > Canais.
    Acessar o Eventarc
  2. Clique em um canal com um provedor do Google.
  3. Na página Editar canal, marque a caixa de seleção Usar uma chave de criptografia gerenciada pelo cliente (CMEK).
  4. Clique em Adicionar chave de criptografia.
  5. Selecione uma Região e, na lista Chave de criptografia CMEK, selecione um keyring que você criou para a região.
  6. Opcional: para inserir manualmente o nome do recurso da chave, na lista Chave de criptografia CMEK, clique em Não encontrou sua chave? Insira o nome do recurso da chave e insira-o no formato especificado.
  7. Se solicitado, conceda o papel cloudkms.cyptoKeyEncrypterDecrypter à conta de serviço do Eventarc com o papel eventarc.serviceAgent.
  8. Clique em Save.

gcloud

gcloud eventarc google-channels update \
--location=LOCATION \
--crypto-key=KEY

Substitua:

  • LOCATION: o local do canal do Google a ser protegido. Ele precisa corresponder ao local da chave usada.
  • KEY: o nome da chave do Cloud KMS totalmente qualificado no formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME.

Se você estiver criando gatilhos do Pub/Sub usando seus próprios tópicos, para uma proteção abrangente do CMEK, considere configurar a chave do KMS no tópico. Para mais informações, consulte Como configurar tópicos do Pub/Sub.

Verificar o uso do Cloud KMS

Para verificar se o canal agora é compatível com CMEK:

Console

  1. No console, acesse a página Eventarc > Gatilhos.
    Acessar o Eventarc
  2. Clique em um acionador que lista uma origem do Google Cloud como seu Provedor de eventos e uma Região que você protegeu com CMEK.
  3. Na página Detalhes do gatilho, o status da Criptografia exibe a mensagem Events encrypted using Customer-managed encryption keys.

gcloud

gcloud eventarc google-channels describe \
--location=LOCATION

A saída será semelhante a:

cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
name: projects/PROJECT_ID/locations/LOCATION/googleChannelConfig
updateTime: '2022-06-28T17:24:56.365866104Z'

cryptokeyName mostra a chave do Cloud KMS usada para o canal do Google.

Ativar CMEK para um canal de terceiros

Um canal do Eventarc é um recurso usado por entidades que não são do Google Cloud que oferecem uma fonte do Eventarc para interagir com destinos.

Para ativar o CMEK para um canal de terceiros:

Console

  1. No console, acesse a página Eventarc > Canais.
    Acessar o Eventarc
  2. Clique em um canal com um Provedor de terceiros.
  3. Na página Detalhes do canal, clique em Editar.
  4. Na página Editar canal, marque a caixa de seleção Usar uma chave de criptografia gerenciada pelo cliente (CMEK).
  5. Na lista de chaves de criptografia CMEK, selecione um keyring que você criou para a região.
  6. Opcional: para inserir manualmente o nome de recurso da chave que você quer usar, na lista Chave de criptografia CMEK, clique em Não encontra sua chave? Insira o nome do recurso da chave e insira-o no formato especificado.
  7. Se solicitado, conceda o papel cloudkms.cyptoKeyEncrypterDecrypter à conta de serviço do Eventarc com o papel eventarc.serviceAgent.
  8. Clique em Save.

gcloud

gcloud eventarc channels update CHANNEL_NAME \
--location=LOCATION \
--crypto-key=KEY

Substitua:

  • CHANNEL_NAME: o nome do canal de terceiros. Para criar um novo canal de terceiros, consulte Criar um canal.
  • LOCATION: o local do canal de terceiros a ser protegido. Ele precisa corresponder ao local da chave.
  • KEY: o nome da chave do Cloud KMS totalmente qualificado no formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME.

Verificar o uso do Cloud KMS

Para verificar se o canal agora é compatível com CMEK:

Console

  1. No console, acesse a página Eventarc > Gatilhos.
    Acessar o Eventarc
  2. Clique em um acionador com uma fonte de terceiros como o Provedor de eventos e uma Região que você protegeu com CMEK.
  3. Na página Detalhes do gatilho, o status da Criptografia exibe a mensagem Events encrypted using Customer-managed encryption keys.

gcloud

gcloud eventarc channels describe CHANNEL \
--location=LOCATION

A saída será semelhante a:

createTime: '2022-06-28T18:05:52.403999904Z'
cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
name: projects/PROJECT_ID/locations/LOCATION/googleChannelConfig
pubsubTopic: projects/PROJECT_ID/topics/PUBSUB_TOPIC_ID
state: ACTIVE
uid: 5ea277f9-b4b7-4e7f-a8e0-6ca9d7204fa3
updateTime: '2022-06-28T18:09:18.650727516Z'

cryptokeyName mostra a chave do Cloud KMS usada para o canal de terceiros.

Desativar o Cloud KMS

Para evitar que o Eventarc descriptografe os dados do evento:

  • Desative a versão da chave que você configurou para o canal. Isso afeta apenas os canais e gatilhos do Eventarc associados à chave específica.
  • Revogue o papel cloudkms.cryptoKeyEncrypterDecrypter da conta de serviço do Eventarc. Isso afeta todos os canais e gatilhos do Eventarc do projeto compatíveis com eventos criptografados usando CMEK.
  • Exclua a proteção CMEK associada a uma região:
    1. No console, acesse a página Eventarc > Canais.
      Acessar o Eventarc
    2. De acordo com o tipo de canal, faça o seguinte:

      Canal do Google

      1. Clique em um canal com um provedor do Google.
      2. Na página Editar canal, mantenha o ponteiro do mouse sobre a caixa de lista Chave de criptografia CMEK para ver o botão Excluir item de dados.
      3. Clique em Excluir item.
      4. Clique em Save.

      Canal de terceiros

      1. Clique em um canal com um Provedor de terceiros.
      2. Na página Detalhes do canal, clique em Editar.
      3. Na página Editar canal, desmarque a caixa de seleção Usar uma chave de criptografia gerenciada pelo cliente (CMEK).
      4. Clique em Save.

Embora nenhuma das operações garanta a revogação do acesso instantâneo, as alterações do Identity and Access Management (IAM) geralmente são propagadas mais rapidamente. Para mais informações, consulte Consistência de recursos do Cloud KMS e Perguntas frequentes sobre o IAM.

Reativar o Cloud KMS

Quando o Eventarc não pode acessar o Cloud KMS, a publicação de eventos com canais falha com FAILED_PRECONDITION erros e a interrupção da entrega de eventos. Para retomar a entrega e a publicação de eventos, restaure o acesso ao Cloud KMS.

Preços

Essa integração não gera custos adicionais além das operações principais, que são faturadas para seu projeto do Google Cloud. O uso de CMEK em um canal gera cobranças pelo acesso ao serviço do Cloud KMS com base nos preços do Pub/Sub.

Para mais informações sobre os preços mais atuais, consulte Preços do Cloud KMS.

A seguir