Por predefinição, o Eventarc encripta o conteúdo do cliente em repouso. O Eventarc 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 Eventarc. 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 seus recursos do Eventarc é 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).
As chaves de encriptação geridas pelo cliente são armazenadas como chaves de software, num cluster do Cloud HSM ou externamente através do Cloud External Key Manager.
O que está protegido com a CMEK
Pode configurar a CMEK para encriptar as mensagens de eventos que passam pelos seguintes recursos avançados do Eventarc:
MessageBus
—Um Eventarc Advanced busPipeline
—Um pipeline avançado do EventarcGoogleApiSource
—Um recurso avançado do Eventarc que representa uma subscrição de eventos da API Google para um determinado barramento
Para mais informações, consulte a Vista geral avançada do Eventarc.
Quando ativa a CMEK para um recurso, protege os dados associados ao recurso nessa região através de uma chave de encriptação à qual só tem acesso.
O Cloud KMS e o Eventarc são serviços regionalizados. A região da chave do Cloud KMS e do recurso Eventarc Advanced protegido têm de ser a mesma.
Antes de começar
Antes de usar esta funcionalidade no Eventarc, tem de realizar as seguintes ações:
Consola
-
Enable the Cloud KMS and Eventarc APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. - Crie um conjunto de chaves.
- Crie uma chave para um conjunto de chaves especificado.
gcloud
- Atualize os componentes
gcloud
.gcloud components update
- Ative as APIs Cloud KMS e Eventarc para o projeto que vai armazenar as chaves de encriptação.
gcloud services enable cloudkms.googleapis.com eventarc.googleapis.com
- Crie um conjunto de chaves.
- Crie uma chave para um conjunto de chaves especificado.
Para ver informações sobre todas as flags e valores possíveis, execute o comando com a flag --help
.
Conceda à conta de serviço do Eventarc acesso 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 a função encriptar/desencriptar do CryptoKey do Cloud KMS:
Consola
Quando ativa a CMEK para um barramento ou um pipeline através da Google Cloud consola, é-lhe pedido que conceda a função de encriptar/desencriptar do CryptoKey do Cloud KMS à conta de serviço. Para mais informações, neste documento, consulte Ative as CMEK para um barramento ou Ative as 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 o seguinte:
KEY_NAME
: o nome da chave, por exemplo,my-key
KEY_RING
: o nome do conjunto de chaves, por exemplo,my-keyring
REGION
: a localização da chave, por exemplo,us-central1
SERVICE_AGENT_EMAIL
: o endereço de email da conta de serviço com a funçãoeventarc.serviceAgent
Por exemplo,
service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
. Para mais informações, consulte o artigo Agentes de serviços.
Ative as CMEK para um bus
Quando ativa as CMEK para um bus Eventarc Advanced, todas as mensagens que passam pelo bus são totalmente encriptadas com essa chave CMEK.
Consola
Na Google Cloud consola, aceda à página Eventarc > Bus.
Pode criar um autocarro ou, se estiver a atualizar um autocarro, clique no nome do autocarro.
Na página Detalhes do autocarro, clique em
Editar.Na página Editar autocarro, em Encriptação, selecione Chave do Cloud KMS.
Na lista Tipo de chave, selecione um método para gerir as suas chaves.
Pode gerir as suas chaves manualmente ou usar a Autokey, que lhe permite gerar conjuntos de chaves e chaves a pedido. Se a opção Autokey estiver desativada, ainda não está integrada no tipo de recurso atual.
Na lista Selecionar uma chave do Cloud KMS, selecione uma chave.
Opcional: para introduzir manualmente o nome do recurso da chave, na lista Selecionar uma chave do Cloud KMS, clique em Introduzir chave manualmente e introduza o nome da chave no formato especificado.
Se lhe for pedido, conceda a função
cloudkms.cryptoKeyEncrypterDecrypter
ao agente do serviço Eventarc.Clique em Guardar.
gcloud
Use o comando
gcloud eventarc message-buses update
para ativar as CMEK para o seu barramento:
gcloud eventarc message-buses update BUS_NAME \ --location=REGION \ --crypto-key=KEY
Substitua o seguinte:
BUS_NAME
: o ID ou o identificador totalmente qualificado do seu autocarroREGION
: uma localização avançada do Eventarc suportadaKEY
: o nome da chave do Cloud KMS totalmente qualificado no formatoprojects/PROJECT_NAME/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
O
REGION
da chave tem de corresponder à localização do autocarro a proteger.
Verifique a utilização do Cloud KMS
Verifique se o barramento está agora em conformidade com a CMEK.
Consola
Na Google Cloud consola, aceda à página Eventarc > Bus.
Clique no nome do barramento que protegeu com a CMEK.
Na página Detalhes do autocarro, o estado da Encriptação indica a chave de encriptação gerida pelo cliente em utilização. Pode clicar na chave para aceder à mesma no Security Command Center.
Caso contrário, a mensagem de estado é
Event messages encrypted using Google-managed encryption keys
.
gcloud
Use o comando
gcloud eventarc message-buses describe
para descrever o seu autocarro:
gcloud eventarc message-buses describe BUS_NAME \ --location=REGION
O resultado deve ser semelhante ao seguinte:
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 de cryptokeyName
mostra a chave do Cloud KMS usada para o
bus.
Desative as CMEK para um autocarro
Pode desativar a proteção CMEK associada a um BUS. Os eventos fornecidos através do barramento continuam protegidos por Google-owned and Google-managed encryption keys.
Consola
Na Google Cloud consola, aceda à página Eventarc > Bus.
Clique no nome do autocarro.
Na página Detalhes do autocarro, clique em
Editar.Na página Editar autocarro, em Encriptação, selecione Chave de encriptação gerida pela Google.
Clique em Guardar.
gcloud
Use o comando
gcloud eventarc message-buses update
para desativar as CMEK para o seu barramento:
gcloud eventarc message-buses update BUS_NAME \ --location=REGION \ --clear-crypto-key
Ative as CMEK para um pipeline
Quando ativa a CMEK para um pipeline avançado do Eventarc, todas as mensagens que passam pelo pipeline são totalmente encriptadas com essa chave CMEK.
Consola
Na Google Cloud consola, aceda à página Eventarc > Pipelines.
Pode criar um pipeline ou, se estiver a atualizar um pipeline, clicar no nome do pipeline.
Na página Detalhes do pipeline, clique em
Editar.Na página Editar pipeline, em Encriptação, selecione Chave do Cloud KMS.
Na lista Tipo de chave, selecione um método para gerir as suas chaves.
Pode gerir as suas chaves manualmente ou usar a Autokey, que lhe permite gerar conjuntos de chaves e chaves a pedido. Se a opção Autokey estiver desativada, ainda não está integrada com o tipo de recurso atual.
Na lista Selecionar uma chave do Cloud KMS, selecione uma chave.
Opcional: para introduzir manualmente o nome do recurso da chave, na lista Selecionar uma chave do Cloud KMS, clique em Introduzir chave manualmente e introduza o nome da chave no formato especificado.
Se lhe for pedido, conceda a função
cloudkms.cryptoKeyEncrypterDecrypter
ao agente do serviço Eventarc.Clique em Guardar.
gcloud
Use o comando
gcloud eventarc pipelines update
para ativar as CMEK para um pipeline:
gcloud eventarc pipelines update PIPELINE_NAME \ --location=REGION \ --crypto-key=KEY
Substitua o seguinte:
PIPELINE_NAME
: o ID ou o identificador totalmente qualificado do seu pipelineREGION
: uma localização avançada do Eventarc suportadaKEY
: o nome da chave do Cloud KMS totalmente qualificado no formatoprojects/PROJECT_NAME/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
O
REGION
da chave tem de corresponder à localização do pipeline a proteger.
Verifique a utilização do Cloud KMS
Verifique se o pipeline está agora em conformidade com a CMEK.
Consola
Na Google Cloud consola, aceda à página Eventarc > Pipelines.
Clique no nome do pipeline que protegeu com a CMEK.
Na página Detalhes do pipeline, o estado da Encriptação indica a chave de encriptação gerida pelo cliente em utilização. Pode clicar na chave para aceder à mesma no Security Command Center.
Caso contrário, a mensagem de estado é
Event messages encrypted using Google-managed encryption keys
.
gcloud
Use o comando
gcloud eventarc pipelines describe
para validar as CMEK para o seu pipeline:
gcloud eventarc pipelines describe PIPELINE_NAME \ --location=REGION
O resultado deve ser semelhante ao seguinte:
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.
Desative as CMEK para um pipeline
Pode desativar a proteção CMEK associada a um pipeline. Os eventos enviados através do pipeline continuam protegidos pela Google-owned and Google-managed encryption keys.
Consola
Na Google Cloud consola, aceda à página Eventarc > Pipelines.
Clique no nome do pipeline.
Na página Detalhes do pipeline, clique em
Editar.Na página Editar pipeline, em Encriptação, selecione Chave de encriptação gerida pela Google.
Clique em Guardar.
gcloud
Use o comando
gcloud eventarc pipelines update
para desativar as CMEK para o seu pipeline:
gcloud eventarc pipelines update PIPELINE_NAME \ --location=REGION \ --clear-crypto-key
Ative as CMEK para origens de APIs Google
Quando ativa a CMEK para um recurso GoogleApiSource
, todas as mensagens recolhidas para esse recurso são totalmente encriptadas com a chave CMEK.
Consola
Na Google Cloud consola, aceda à página Eventarc > Bus.
Pode criar um autocarro ou, se estiver a atualizar um autocarro, clique no nome do autocarro.
Na página Detalhes do autocarro, clique em
Editar.Para adicionar uma origem de mensagens, clique em
Adicionar origem.Se já existir uma origem de mensagens, tem de a eliminar primeiro e, em seguida, adicionar uma nova origem de mensagens.
No painel Adicionar origem da mensagem, para o fornecedor de mensagens da API Google, aceite o valor predefinido de
google-api-source
.Para Encriptação, selecione Chave do Cloud KMS e faça o seguinte:
Na lista Tipo de chave, selecione um método para gerir as suas chaves.
Pode gerir as suas chaves manualmente ou usar o Autokey, que lhe permite gerar conjuntos de chaves e chaves a pedido. Se a opção Autokey estiver desativada, significa que ainda não está integrada com o tipo de recurso atual.
Em Selecionar uma chave do Cloud KMS, selecione uma chave.
Tem de selecionar uma região antes de poder ver as chaves geridas pelo cliente.
Opcional: para introduzir manualmente o nome do recurso da chave, na lista Selecionar uma chave do Cloud KMS, clique em Introduzir chave manualmente e introduza o nome da chave no formato especificado.
Se lhe for pedido, conceda a função
cloudkms.cryptoKeyEncrypterDecrypter
ao agente do serviço Eventarc.
Clique em Criar.
Isto permite a recolha automática de eventos provenientes diretamente de fontes Google, e todas as mensagens de eventos são totalmente encriptadas com a chave CMEK.
Apenas são publicados eventos de recursos no mesmo Google Cloud projeto que o
GoogleApiSource
. Para mais informações, consulte o artigo Publique eventos de origens Google.Clique em Guardar.
gcloud
Use o comando
gcloud eventarc google-api-sources update
para ativar as CMEK para o recurso GoogleApiSource
:
gcloud eventarc google-api-sources update GOOGLE_API_SOURCE_NAME \ --location=REGION \ --crypto-key=KEY
Substitua o seguinte:
GOOGLE_API_SOURCE_NAME
: o ID ou o identificador totalmente qualificado do seu recursoGoogleApiSource
REGION
: uma localização avançada do Eventarc suportadaKEY
: o nome da chave do Cloud KMS totalmente qualificado no formatoprojects/PROJECT_NAME/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
O
REGION
da chave tem de corresponder à localização do recurso a proteger.
Verifique a utilização do Cloud KMS
Verifique se o recurso está agora em conformidade com a CMEK.
Consola
Na Google Cloud consola, aceda à página Eventarc > Bus.
Clique no nome do barramento cuja origem da mensagem protegeu através de uma chave do Cloud KMS.
Na página Detalhes do autocarro, clique em
Editar.A chave que está a encriptar a origem da mensagem deve ser apresentada. Pode clicar na chave para aceder à mesma no Security Command Center.
Caso contrário, a mensagem de estado da Encriptação é
Event messages encrypted using Google-managed encryption keys
.
gcloud
Use o comando
gcloud eventarc google-api-sources describe
para validar as CMEK para o seu recurso GoogleApiSource
:
gcloud eventarc google-api-sources describe GOOGLE_API_SOURCE_NAME \ --location=REGION
O resultado deve ser semelhante ao seguinte:
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.
Desative as CMEK para origens de APIs Google
Pode desativar a proteção CMEK associada a origens de API Google. Os eventos recolhidos através do recurso GoogleApiSource
continuam a estar protegidos pela Google-owned and Google-managed encryption keys.
Consola
Na Google Cloud consola, aceda à página Eventarc > Bus.
Clique no nome do barramento cuja origem de mensagens protegeu através da CMEK.
Na página Detalhes do autocarro, clique em
Editar.Para eliminar a origem da mensagem encriptada por uma chave do Cloud KMS, clique em
Eliminar recurso.Se necessário, adicione novamente a origem de mensagens.
gcloud
Use o comando
gcloud eventarc google-api-sources update
para desativar as CMEK para o recurso GoogleApiSource
:
gcloud eventarc google-api-sources update GOOGLE_API_SOURCE_NAME \ --location=REGION \ --clear-crypto-key
Aplique uma política da organização de CMEK
O Eventarc está integrado com duas restrições de políticas da organização para ajudar a garantir a utilização de CMEK numa organização:
constraints/gcp.restrictNonCmekServices
é usado para exigir a proteção CMEK.constraints/gcp.restrictCmekCryptoKeyProjects
é usado para limitar as chaves do Cloud KMS que são usadas para a proteção CMEK.
Esta integração permite-lhe especificar os seguintes requisitos de conformidade com a encriptação para recursos do Eventarc na sua organização:
- Exija CMEKs para novos recursos do Eventarc
- Restrinja as chaves do Cloud KMS para um projeto do Eventarc
Considerações ao aplicar políticas da organização
Antes de aplicar quaisquer políticas organizacionais de CMEK, deve ter em atenção o seguinte.
Prepare-se para um atraso na propagação
Depois de definir ou atualizar uma política da organização, a nova política pode demorar até 15 minutos a entrar em vigor.
Considere os recursos existentes
Os recursos existentes não estão sujeitos às políticas da organização criadas recentemente. Por exemplo, uma política da organização não se aplica retroativamente a pipelines existentes. Esses recursos continuam acessíveis sem uma CMEK e, se aplicável, continuam encriptados com as chaves existentes.
Valide as autorizações necessárias para definir uma política de organização
A autorização para definir ou atualizar a política da organização pode ser difícil de adquirir para fins de teste. Tem de ter a função de administrador da política da organização, que só pode ser concedida ao nível da organização (em vez do nível do projeto ou da pasta).
Embora a função tenha de ser concedida ao nível da organização, ainda é possível especificar uma política que se aplica apenas a um projeto ou uma pasta específicos.
Exija CMEKs para novos recursos do Eventarc
Pode usar a restrição constraints/gcp.restrictNonCmekServices
para exigir que as CMEKs sejam usadas para proteger novos recursos do Eventarc numa organização.
Se estiver definida, esta política da organização faz com que todos os pedidos de criação de recursos sem uma chave do Cloud KMS especificada falhem.
Depois de definir esta política, aplica-se apenas aos novos recursos no projeto. Todos os recursos existentes sem chaves do Cloud KMS aplicadas continuam a existir e são acessíveis sem problemas.
Consola
Na Google Cloud consola, aceda à página Políticas de organização.
Usando o Filtro, pesquise a seguinte restrição:
constraints/gcp.restrictNonCmekServices
Na coluna Nome, clique em Restrinja os serviços que podem criar recursos sem CMEK.
Clique em
Gerir política.Na página Editar política, em Origem da política, selecione Substituir política do elemento principal.
Em Regras, clique em Adicionar uma regra.
Na lista Valores da política, selecione Personalizado.
Na lista Tipo de política, selecione Recusar.
No campo Valores personalizados, introduza o seguinte:
is:eventarc.googleapis.com
Clique em Concluído e, de seguida, em Definir política.
gcloud
Crie um ficheiro temporário
/tmp/policy.yaml
para armazenar a política:name: projects/PROJECT_ID/policies/gcp.restrictNonCmekServices spec: rules: - values: deniedValues: - is:eventarc.googleapis.com
Substitua
PROJECT_ID
pelo ID do projeto onde está a aplicar esta restrição.Execute o comando
org-policies set-policy
:gcloud org-policies set-policy /tmp/policy.yaml
Para verificar se a política foi aplicada com êxito, pode tentar criar um pipeline avançado do Eventarc no projeto. O processo falha, a menos que especifique uma chave do Cloud KMS.
Restrinja as chaves do Cloud KMS para um projeto do Eventarc
Pode usar a restrição constraints/gcp.restrictCmekCryptoKeyProjects
para restringir as chaves do Cloud KMS que pode usar para proteger um recurso num projeto do Eventarc.
Por exemplo, pode especificar uma regra semelhante à seguinte: "Para os recursos do Eventarc aplicáveis em projects/my-company-data-project
, as chaves do Cloud KMS usadas neste projeto têm de ser provenientes de projects/my-company-central-keys
OU projects/team-specific-keys
".
Consola
Na Google Cloud consola, aceda à página Políticas de organização.
Usando o Filtro, pesquise a seguinte restrição:
constraints/gcp.restrictCmekCryptoKeyProjects
Na coluna Nome, clique em Restrinja os projetos que podem fornecer CryptoKeys do KMS para CMEK.
Clique em
Gerir política.Na página Editar política, em Origem da política, selecione Substituir política do elemento principal.
Em Regras, clique em Adicionar uma regra.
Na lista Valores da política, selecione Personalizado.
Na lista Tipo de política, selecione Permitir.
No campo Valores personalizados, introduza o seguinte:
under:projects/KMS_PROJECT_ID
Substitua
KMS_PROJECT_ID
pelo ID do projeto onde se encontram as chaves do Cloud KMS que quer usar.Por exemplo,
under:projects/my-kms-project
.Clique em Concluído e, de seguida, em Definir política.
gcloud
Crie um ficheiro temporário
/tmp/policy.yaml
para armazenar a política:name: projects/PROJECT_ID/policies/gcp.restrictCmekCryptoKeyProjects spec: rules: - values: allowedValues: - under:projects/KMS_PROJECT_ID
Substitua o seguinte
PROJECT_ID
: o ID do projeto onde está a aplicar esta restrição.KMS_PROJECT_ID
: o ID do projeto onde se encontram as chaves do Cloud KMS que quer usar.
Execute o comando
org-policies set-policy
:gcloud org-policies set-policy /tmp/policy.yaml
Para verificar se a política foi aplicada com êxito, pode tentar criar um pipeline avançado do Eventarc com uma chave do Cloud KMS de um projeto diferente. O processo vai falhar.
Desativar e ativar chaves do Cloud KMS
Uma versão da chave armazena o material da chave criptográfica que usa para encriptar, desencriptar, assinar e validar dados. Pode desativar esta versão da chave para que não seja possível aceder aos dados encriptados com a chave.
Quando o Eventarc não consegue aceder às chaves do Cloud KMS, o encaminhamento de eventos falha com erros FAILED_PRECONDITION
e a entrega de eventos é interrompida. Pode ativar uma chave no estado Desativada para que seja possível aceder novamente aos dados encriptados.
Desative as chaves do Cloud KMS
Para impedir que o Eventarc use a chave para encriptar ou desencriptar os seus dados de eventos, faça qualquer uma das seguintes ações:
- Recomendamos que desative a versão da chave que configurou para o autocarro ou o pipeline. Isto afeta apenas o bus ou o pipeline avançado do Eventarc associado à chave específica.
- Opcional: revogue a função
cloudkms.cryptoKeyEncrypterDecrypter
da conta de serviço do Eventarc. Isto afeta todos os recursos do Eventarc do projeto que suportam eventos encriptados através da CMEK.
Embora nenhuma das operações garanta a revogação instantânea do acesso, as alterações da gestão de identidade e de acesso (IAM) propagam-se geralmente mais rapidamente. Para mais informações, consulte Consistência dos recursos do Cloud KMS e Propagação das alterações de acesso.
Reative as chaves do Cloud KMS
Para retomar a entrega e o encaminhamento de eventos, restaure o acesso ao Cloud KMS.
Registo de auditoria e resolução de problemas
O Cloud KMS produz registos de auditoria quando as chaves são ativadas, desativadas ou usadas por recursos avançados do Eventarc para encriptar e desencriptar mensagens. Para mais informações, consulte as informações de registo de auditoria do Cloud KMS.
Para resolver problemas que possa encontrar ao usar o Cloud KMS com o Eventarc, consulte o artigo Resolva problemas.
Para resolver problemas que possa encontrar ao usar chaves geridas externamente através do Cloud External Key Manager (Cloud EKM), consulte a referência de erros do Cloud EKM.
Preços
A integração do BUS não incorre em custos adicionais além das operações principais, que são faturadas ao seu Google Cloud projeto. A utilização de CMEK para um pipeline incorre em custos de acesso ao serviço Cloud KMS com base nos preços do Pub/Sub.
Para mais informações sobre os preços mais atuais, consulte os preços do Cloud KMS.