Usar chaves de criptografia gerenciadas pelo cliente (CMEK)

Por padrão, o Eventarc criptografa o conteúdo do cliente em repouso. O Eventarc processa a criptografia para você sem que você precise fazer nada. Essa opção é chamada de Criptografia padrão do Google.

Se você quiser controlar suas chaves de criptografia, use chaves de criptografia gerenciadas pelo cliente (CMEKs) no Cloud KMS com serviços integrados a CMEKs, incluindo o Eventarc. O uso de chaves do Cloud KMS permite controlar o nível de proteção, o local, a programação de rotação, as permissões de uso e acesso e os limites criptográficos. O uso do Cloud KMS também permite visualizar registros de auditoria e controlar ciclos de vida importantes. Em vez de o Google ser proprietário e gerente de chaves de criptografia de chaves (KEKs) simétricas que protegem seus dados, você controla e gerencia essas chaves no Cloud KMS.

Depois de configurar os recursos com CMEKs, a experiência de acesso aos recursos do Eventarc é semelhante à criptografia padrão do Google. Para mais informações sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).

As chaves de criptografia gerenciadas pelo cliente são armazenadas como chaves de software, em um cluster do Cloud HSM ou externamente, usando o Cloud External Key Manager.

O que é protegido com a CMEK

É possível configurar a CMEK para criptografar as mensagens de evento que passam pelos seguintes recursos:

  • MessageBus: um barramento do Eventarc Advanced
  • Pipeline: um pipeline do Eventarc Advanced
  • GoogleApiSource: um recurso que representa uma assinatura de eventos da API Google para um ônibus específico.

Para mais informações, consulte a visão geral do Eventarc Advanced.

Quando você ativa a CMEK para um recurso, ela protege os dados associados ao recurso nessa região usando uma chave de criptografia que só você pode acessar.

O Cloud KMS e o Eventarc são serviços regionalizados. A região da chave do Cloud KMS e do recurso protegido do Eventarc Advanced precisa ser a mesma.

Antes de começar

Antes de usar esse recurso no Eventarc, realize as seguintes ações:

Console

  1. Enable the Cloud KMS and Eventarc APIs.

    Enable the APIs

  2. Crie um keyring.
  3. Crie uma chave para um keyring especificado.

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.
  4. Crie uma chave para um keyring especificado.

Para informações sobre todas as sinalizações e valores possíveis, execute o comando com a sinalização --help.

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

Ao ativar a CMEK para um barramento ou pipeline usando o console do Google Cloud, você precisa conceder o papel Criptografador/Descriptografador da CryptoKey do Cloud KMS à conta de serviço. Para mais informações, neste documento, consulte Ativar CMEK para um barramento ou Ativar CMEK para um pipeline.

gcloud

 gcloud kms keys add-iam-policy-binding KEY_NAME \
     --keyring KEY_RING \
     --location REGION \
     --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
  • REGION: o local 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 a CMEK para um barramento

Quando você ativa a CMEK para um barramento do Eventarc Advanced, todas as mensagens que passam pelo barramento são totalmente criptografadas com essa chave.

Console

  1. No console do Google Cloud, acesse a página Eventarc > Bus.

    Acessar "Bus"

  2. Você pode criar um barramento ou, se estiver atualizando um, clique no nome dele.

  3. Na página Detalhes do ônibus, clique em Editar.

  4. Na página Editar barramento, em Criptografia, selecione Chave do Cloud KMS.

  5. Na lista Tipo de chave, selecione um método para gerenciar as chaves.

    Você pode gerenciar as chaves manualmente ou usar o Autokey, que permite gerar chaves e chaveiros sob demanda. Se a opção Autokey estiver desativada, ela ainda não estará integrada ao tipo de recurso atual.

  6. Selecione uma chave gerenciada pelo cliente.

  7. Opcional: para inserir manualmente o nome do recurso da chave, na lista Selecionar uma chave gerenciada pelo cliente, clique em Inserir chave manualmente e insira o nome da chave no formato especificado.

  8. Se solicitado, conceda o papel cloudkms.cryptoKeyEncrypterDecrypter ao Agente de serviço do Eventarc.

  9. Clique em Salvar.

gcloud

Use o comando gcloud beta eventarc message-buses update para ativar a CMEK para a barramento:

gcloud beta eventarc message-buses update BUS_NAME \
    --location=REGION \
    --crypto-key=KEY

Substitua:

  • BUS_NAME: o ID ou identificador totalmente qualificado do seu barramento
  • REGION: um local do Eventarc Advanced compatível.
  • KEY: o nome da chave do Cloud KMS totalmente qualificado no formato projects/PROJECT_NAME/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME.

    O REGION da chave precisa corresponder ao local do barramento a ser protegido.

Verificar o uso do Cloud KMS

Verifique se o barramento agora é compatível com CMEK.

Console

  1. No console do Google Cloud, acesse a página Eventarc > Bus.

    Acessar "Bus"

  2. Clique no nome do barramento que você protegeu usando a CMEK.

  3. Na página Detalhes do barramento, o status de Criptografia mostra a mensagem Event messages encrypted using customer-managed encryption keys.

gcloud

Use o comando gcloud beta eventarc message-buses describe para descrever o barramento:

 gcloud beta eventarc message-buses describe BUS_NAME \
     --location=REGION

A saída será semelhante a esta:

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

O valor cryptokeyName mostra a chave do Cloud KMS usada para o barramento.

Desativar a CMEK para um barramento

É possível desativar a proteção de CMEK associada a um barramento. Os eventos entregues pelo barramento ainda estão protegidos por chaves de propriedade e gerenciadas pelo Google.

Console

  1. No console do Google Cloud, acesse a página Eventarc > Bus.

    Acessar "Bus"

  2. Clique no nome do ônibus.

  3. Na página Detalhes do ônibus, clique em Editar.

  4. Na página Editar barramento, desmarque a caixa de seleção Usar uma chave de criptografia gerenciada pelo cliente (CMEK).

  5. Clique em Salvar.

gcloud

Use o comando gcloud beta eventarc message-buses update para desativar a CMEK para o barramento:

gcloud beta eventarc message-buses update BUS_NAME \
    --location=REGION \
    --clear-crypto-key

Ativar o CMEK para um pipeline

Quando você ativa a CMEK para um pipeline do Eventarc Advanced, todas as mensagens que passam pelo pipeline são totalmente criptografadas com essa chave.

Console

  1. No console do Google Cloud, acesse a página Eventarc > Pipelines.

    Acessar "Pipelines"

  2. Você pode criar um pipeline ou, se estiver atualizando um, clique no nome dele.

  3. Na página Detalhes do pipeline, clique em Editar.

  4. Na página Editar pipeline, em Criptografia, selecione Chave do Cloud KMS.

  5. Na lista Tipo de chave, selecione um método para gerenciar as chaves.

    Você pode gerenciar suas chaves manualmente ou usar o Autokey, que permite gerar chaves e chaveiros sob demanda. Se a opção Autokey estiver desativada, ela ainda não estará integrada ao tipo de recurso atual.

  6. Selecione uma chave gerenciada pelo cliente.

  7. Opcional: para inserir manualmente o nome do recurso da chave, na lista Selecionar uma chave gerenciada pelo cliente, clique em Inserir chave manualmente e insira o nome da chave no formato especificado.

  8. Se solicitado, conceda o papel cloudkms.cryptoKeyEncrypterDecrypter ao Agente de serviço do Eventarc.

  9. Clique em Salvar.

gcloud

Use o comando gcloud beta eventarc pipelines update para ativar o CMEK em um pipeline:

 gcloud beta eventarc pipelines update PIPELINE_NAME \
     --location=REGION \
     --crypto-key=KEY

Substitua:

  • PIPELINE_NAME: o ID ou identificador totalmente qualificado do seu pipeline
  • REGION: um local do Eventarc Advanced compatível.
  • KEY: o nome da chave do Cloud KMS totalmente qualificado no formato projects/PROJECT_NAME/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME.

    O REGION da chave precisa corresponder ao local do pipeline para ser protegido.

Verificar o uso do Cloud KMS

Verifique se o pipeline agora é compatível com CMEK.

Console

  1. No console do Google Cloud, acesse a página Eventarc > Pipelines.

    Acessar "Pipelines"

  2. Clique no nome do pipeline que você protegeu usando o CMEK.

  3. Na página Detalhes do pipeline, o status de Criptografia exibe a mensagem Event messages encrypted using customer-managed encryption keys.

gcloud

Use o comando gcloud beta eventarc pipelines describe para verificar a CMEK do seu pipeline:

 gcloud beta eventarc pipelines describe PIPELINE_NAME \
     --location=REGION

A saída será semelhante a esta:

 createTime: '2022-06-28T18:05:52.403999904Z'
 cryptoKeyName: projects/PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
 destinations: ...
 name: projects/PROJECT_ID/locations/REGION/pipelines/PIPELINE_NAME
 uid: 5ea277f9-b4b7-4e7f-a8e0-6ca9d7204fa3
 updateTime: '2022-06-28T18:09:18.650727516Z'

O valor cryptokeyName mostra a chave do Cloud KMS usada para o pipeline.

Desativar a CMEK para um pipeline

É possível desativar a proteção de CMEK associada a um pipeline. Os eventos entregues pelo pipeline ainda estão protegidos por chaves de propriedade e gerenciadas pelo Google.

Console

  1. No console do Google Cloud, acesse a página Eventarc > Pipelines.

    Acessar "Pipelines"

  2. Clique no nome do pipeline.

  3. Na página Detalhes do pipeline, clique em Editar.

  4. Na página Editar pipeline, desmarque a caixa de seleção Usar uma chave de criptografia gerenciada pelo cliente (CMEK).

  5. Clique em Salvar.

gcloud

Use o comando gcloud beta eventarc pipelines update para desativar a CMEK no pipeline:

gcloud beta eventarc pipelines update PIPELINE_NAME \
    --location=REGION \
    --clear-crypto-key

Ativar a CMEK para origens de API do Google

Quando você ativa a CMEK para um recurso GoogleApiSource, todas as mensagens coletadas para esse recurso são totalmente criptografadas com a chave CMEK.

Console

  1. No console do Google Cloud, acesse a página Eventarc > Bus.

    Acessar "Bus"

  2. Você pode criar um barramento ou, se estiver atualizando um, clique no nome dele.

  3. Na página Detalhes do ônibus, clique em Editar.

  4. Para adicionar uma origem de mensagens, clique em Adicionar origem.

    Se uma origem de mensagens já existir, primeiro exclua-a e depois adicione uma nova.

  5. No painel Adicionar origem de mensagem, para o provedor de mensagem da API do Google, aceite o padrão google-api-source.

  6. Em Criptografia, selecione Chave do Cloud KMS e faça o seguinte:

    1. Na lista Tipo de chave, selecione um método para gerenciar as chaves.

      Você pode gerenciar as chaves manualmente ou usar o Autokey, que permite gerar chaves e chaveiros sob demanda. Se a opção Autokey estiver desativada, ela ainda não estará integrada ao tipo de recurso atual.

    2. Em Selecionar uma chave gerenciada pelo cliente, selecione uma chave.

      É necessário selecionar uma região antes de conferir as chaves gerenciadas pelo cliente.

    3. Opcional: para inserir manualmente o nome do recurso da chave, na lista Selecionar uma chave gerenciada pelo cliente, clique em Inserir chave manualmente e insira o nome da chave no formato especificado.

    4. Se solicitado, conceda o papel cloudkms.cryptoKeyEncrypterDecrypter ao Agente de serviço do Eventarc.

  7. Clique em Criar.

    Isso ativa a coleta automática de eventos provenientes diretamente de fontes do Google, e todas as mensagens de eventos são totalmente criptografadas com a chave CMEK.

    Somente os eventos de recursos no mesmo projeto do Google Cloud que o GoogleApiSource são publicados. Para mais informações, consulte Publicar eventos de origens do Google.

  8. Clique em Salvar.

gcloud

Use o comando gcloud beta eventarc google-api-sources update para ativar a CMEK para seu recurso GoogleApiSource:

gcloud beta eventarc google-api-sources update GOOGLE_API_SOURCE_NAME \
    --location=REGION \
    --crypto-key=KEY

Substitua:

  • GOOGLE_API_SOURCE_NAME: o ID ou o identificador totalmente qualificado do recurso GoogleApiSource
  • REGION: um local do Eventarc Advanced compatível.
  • KEY: o nome da chave do Cloud KMS totalmente qualificado no formato projects/PROJECT_NAME/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME.

    O REGION da chave precisa corresponder ao local do recurso a ser protegido.

Verificar o uso do Cloud KMS

Verifique se o recurso agora é compatível com CMEK.

Console

  1. No console do Google Cloud, acesse a página Eventarc > Bus.

    Acessar "Bus"

  2. Clique no nome do barramento que tem a origem da mensagem protegida usando uma chave do Cloud KMS.

  3. Na página Detalhes do ônibus, clique em Editar.

    A chave que está criptografando a origem da mensagem vai aparecer na lista.

gcloud

Use o comando gcloud beta eventarc google-api-sources describe para verificar o CMEK do recurso GoogleApiSource:

  gcloud beta eventarc google-api-sources describe GOOGLE_API_SOURCE_NAME \
      --location=REGION

A saída será semelhante a esta:

  createTime: '2022-06-28T18:05:52.403999904Z'
  cryptoKeyName: projects/PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
  destination: projects/PROJECT_ID/locations/REGION/messageBuses/BUS_NAME
  name: projects/PROJECT_ID/locations/REGION/googleApiSources/GOOGLE_API_SOURCE_NAME
  uid: 5ea277f9-b4b7-4e7f-a8e0-6ca9d7204fa3
  updateTime: '2022-06-28T18:09:18.650727516Z'

O valor cryptokeyName mostra a chave do Cloud KMS usada para o pipeline.

Desativar a CMEK para origens de API do Google

É possível desativar a proteção de CMEK associada às origens das APIs do Google. Os eventos coletados pelo recurso GoogleApiSource ainda estão protegidos por chaves de propriedade e gerenciadas pelo Google.

Console

  1. No console do Google Cloud, acesse a página Eventarc > Bus.

    Acessar "Bus"

  2. Clique no nome do barramento que tem a origem da mensagem que você protegeu usando CMEK.

  3. Na página Detalhes do ônibus, clique em Editar.

  4. Para excluir a origem da mensagem criptografada por uma chave do Cloud KMS, clique em Excluir recurso.

  5. Se necessário, adicione a origem da mensagem novamente.

gcloud

Use o comando gcloud beta eventarc google-api-sources update para desativar a CMEK para o recurso GoogleApiSource:

gcloud beta eventarc google-api-sources update GOOGLE_API_SOURCE_NAME \
    --location=REGION \
    --clear-crypto-key

Como desativar e ativar chaves do Cloud KMS

A versão da chave armazena o material da chave criptográfica usado para criptografar, descriptografar, assinar e verificar dados. Desative essa versão da chave para que os dados criptografados com a chave não sejam acessados.

Quando o Eventarc não consegue acessar as chaves do Cloud KMS, o roteamento de eventos falha com erros FAILED_PRECONDITION e a entrega de eventos é interrompida. É possível ativar uma chave no estado Disabled para que os dados criptografados possam ser acessados novamente.

Desativar chaves do Cloud KMS

Para impedir que o Eventarc use a chave para criptografar ou descriptografar os dados de eventos, siga um destes procedimentos:

Embora nenhuma das operações garanta a revogação instantânea do acesso, 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 Propagação de alterações no acesso.

Reativar as chaves do Cloud KMS

Para retomar a entrega e o roteamento de eventos, restaure o acesso ao Cloud KMS.

Geração de registros de auditoria e solução de problemas

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

Para resolver problemas que podem ser encontrados ao usar chaves gerenciadas externamente por meio do Cloud External Key Manager (Cloud EKM), consulte a Referência de erros do Cloud EKM.

Preços

A integração de barramento não gera custos adicionais além das operações chave, que são faturadas para seu projeto do Google Cloud. O uso de CMEK em um pipeline 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