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 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.
O que está protegido com a CMEK
Pode configurar a CMEK para um canal que o Eventarc Standard usa e encriptar os eventos que passam pelo canal. A ativação de um canal com CMEK protege os dados associados ao mesmo através de uma chave de encriptação à qual só o utilizador pode aceder.
Quando ativa a CMEK para o canal Google num Google Cloud projeto, todos os acionadores padrão do Eventarc para tipos de eventos Google nesse projeto e região são totalmente encriptados com essa chave CMEK. Não é possível aplicar chaves CMEK por acionador.
Antes de começar
Antes de usar esta funcionalidade no Eventarc, deve:
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
.
Terraform
Ative as APIs Cloud KMS e Eventarc para o projeto que vai armazenar as suas chaves de encriptação configurando o recurso
google_project_service
:Crie um conjunto de chaves e uma chave configurando os recursos
google_kms_key_ring
egoogle_kms_crypto_key
:
Para mais informações sobre a utilização do Terraform, consulte a documentação do Terraform no Google Cloud.
Tenha em atenção que o Cloud KMS e o Eventarc são serviços regionalizados. A região da chave do Cloud KMS e do canal do Eventarc protegido tem de ser a mesma.
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 de encriptar/desencriptar do CryptoKey do Cloud KMS:
Consola
Quando ativa a CMEK para um canal Google ou de terceiros através da 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 tipos de eventos Google ou Ative as CMEK para um canal de eventos de terceiros.
gcloud
gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring RING_NAME \ --location LOCATION \ --member serviceAccount:SERVICE_AGENT_EMAIL \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Substitua o seguinte:
KEY_NAME
: o nome da chave. Por exemplo,my-key
.RING_NAME
: o nome do conjunto de chaves. Por exemplo,my-keyring
.LOCATION
: 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.
Terraform
Gere a identidade do serviço para o serviço Eventarc configurando o recurso
google_project_service_identity
:Conceda a função do Cloud KMS à conta de serviço do Eventarc configurando o recurso
google_kms_crypto_key_iam_member
:
Ative as CMEK para tipos de eventos Google
Os acionadores do Eventarc que encaminham tipos de eventos Google publicam eventos num canal virtual denominado canal Google, que é específico do projeto e da região. Este canal virtual está disponível em todas as regiões do Eventarc.
Quando ativa a CMEK para o canal Google num Google Cloud projeto, todos os acionadores do Eventarc para tipos de eventos Google nesse projeto e região são totalmente encriptados com essa chave CMEK. Pode adicionar várias chaves CMEK e associar cada uma a uma região específica para o canal Google. Não é possível aplicar chaves CMEK por acionador.
Consola
Na Google Cloud consola, aceda à página Eventarc > Canais.
Clique num canal com um fornecedor Google.
Na página Editar canal, selecione a caixa de verificação Usar uma chave de encriptação gerida pelo cliente (CMEK).
Clique em Adicionar chave de encriptação.
Selecione uma região e, na lista Chave de encriptação CMEK, selecione um anel de chaves que criou para a região. Tenha em atenção que só pode adicionar uma chave de encriptação por região para um canal.
Opcional: para introduzir manualmente o nome do recurso da chave, na lista Chave de encriptação CMEK, clique em Não vê a sua chave? Introduza o nome do recurso da chave e introduza o nome da chave no formato especificado.
Se lhe for pedido, conceda a função
cloudkms.cryptoKeyEncrypterDecrypter
à conta de serviço do Eventarc com a funçãoeventarc.serviceAgent
.Opcional: clique em Adicionar chave de encriptação para adicionar outro conjunto de chaves que criou para uma região diferente.
Clique em Guardar.
gcloud
gcloud eventarc google-channels update \ --location=LOCATION \ --crypto-key=KEY
Substitua o seguinte:
LOCATION
: a região do canal do Google a ser protegida. Tem de corresponder à localização da chave usada. Tenha em atenção que só pode adicionar uma chave de encriptação por região para um canal.KEY
: o nome da chave do Cloud KMS totalmente qualificado no formatoprojects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
.
Terraform
Ative as CMEK para o recurso GoogleChannelConfig
num determinado projeto e localização configurando o recurso google_eventarc_google_channel_config
:
REST
Pode atualizar o recurso GoogleChannelConfig
através do método projects.locations.updateGoogleChannelConfig
e especificar uma chave CMEK para um determinado projeto e localização.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: o ID do seu Google Cloud projeto.LOCATION
: a região do canal do Google a proteger. Tem de corresponder à localização da chave usada, por exemplo,us-central1
. Tenha em atenção que só pode adicionar uma chave de encriptação por região para um canal.KEY_NAME
: o nome da chave, por exemplo,my-key
.RING_NAME
: o nome do conjunto de chaves. Por exemplo,my-keyring
.
Corpo JSON do pedido:
{ "cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME" }
Para enviar o seu pedido, expanda uma destas opções:
Se for bem-sucedido, o corpo da resposta contém uma instância atualizada de
GoogleChannelConfig
:
{ "name": "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig", "updateTime": "2025-03-05T17:56:54.106390447Z", "cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME" }
Se estiver a criar acionadores do Pub/Sub com os seus próprios tópicos existentes, para uma proteção CMEK abrangente, recomendamos que também configure a chave do KMS no tópico. Para mais informações, consulte o artigo Configurar tópicos do Pub/Sub.
Verifique a utilização do Cloud KMS
Para verificar se o canal está agora em conformidade com a CMEK:
Consola
Na Google Cloud consola, aceda à página Eventarc > Acionadores.
Clique num acionador que liste uma Google Cloud origem como o respetivo fornecedor de eventos e uma região que protegeu através da CMEK.
Na página Detalhes do acionador, é apresentado o estado da Encriptação, a mensagem
Events encrypted using Customer-managed encryption keys
.
gcloud
Para confirmar a chave CMEK, pode usar o comando
google-channels describe
.
gcloud eventarc google-channels describe \ --location=LOCATION
O resultado deve ser semelhante ao seguinte:
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'
O valor cryptokeyName
mostra a chave do Cloud KMS usada para o canal Google.
Terraform
Para confirmar a chave CMEK, pode usar o comando state show
do Terraform.
terraform state show google_eventarc_google_channel_config.default
O resultado deve ser semelhante ao seguinte:
# google_eventarc_google_channel_config.default: resource "google_eventarc_google_channel_config" "default" { crypto_key_name = "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME" id = "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig" location = "LOCATION" name = "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig" project = "PROJECT_ID" update_time = "2025-03-24T17:15:08.809635011Z" }
REST
Para confirmar a chave CMEK, pode obter o recurso GoogleChannelConfig
usando o método projects.locations.getGoogleChannelConfig
.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: o ID do seu Google Cloud projeto.LOCATION
: a região do canal do Google protegido.
Para enviar o seu pedido, expanda uma destas opções:
Se for bem-sucedido, o corpo da resposta contém uma instância de
GoogleChannelConfig
:
{ "name": "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig", "updateTime": "2025-03-05T17:56:54.106390447Z", "cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME" }
Ative as CMEK para um canal de terceiros
Um canal do Eventarc para terceiros é um recurso através do qual as entidades nãoGoogle Cloud que oferecem uma origem do Eventarc podem interagir com destinos. Este canal é específico de uma região e só pode adicionar uma chave por canal de terceiros.
Para ativar as CMEK para um canal de terceiros:
Consola
Na Google Cloud consola, aceda à página Eventarc > Canais.
Clique num canal com um fornecedor externo.
Na página Detalhes do canal, clique em
Editar.Na página Editar canal, 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. Tenha em atenção que só pode adicionar uma chave de encriptação por região para um canal.
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
gcloud eventarc channels update CHANNEL_NAME \ --location=LOCATION \ --crypto-key=KEY
Substitua o seguinte:
CHANNEL_NAME
: o nome do canal de terceiros. Para criar um novo canal de terceiros, consulte o artigo Criar um canal.LOCATION
: a região do canal de terceiros a proteger. Tem de corresponder à localização da chave.KEY
: o nome da chave do Cloud KMS totalmente qualificado no formatoprojects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
.
Terraform
Especifique uma chave CMEK para um canal de terceiros configurando o recurso
google_eventarc_channel
. Por exemplo:
resource "google_eventarc_channel" "default" { location = "us-central1" name = "CHANNEL_NAME" crypto_key_name = google_kms_crypto_key.default.id }
Substitua CHANNEL_NAME
pelo nome do canal de terceiros.
REST
Pode atualizar um recurso Channel
através do método
projects.locations.channels.patch
e especificar uma chave CMEK para um determinado projeto e localização.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
CHANNEL_NAME
: o nome do canal.PROJECT_ID
: o ID do seu Google Cloud projeto.LOCATION
: a região do canal a proteger. Tem de corresponder à localização da chave usada, por exemplo,us-central1
. Tenha em atenção que só pode adicionar uma chave de encriptação por região para um canal.KEY_NAME
: o nome da chave, por exemplo,my-key
.RING_NAME
: o nome do conjunto de chaves. Por exemplo,my-keyring
.
Corpo JSON do pedido:
{ "cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME" }
Para enviar o seu pedido, expanda uma destas opções:
Se for bem-sucedido, o corpo da resposta contém uma instância recém-criada de
Operation
:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata", "createTime": "2024-01-25T17:17:45.782370139Z", "target": "projects/PROJECT_ID/locations/LOCATION/channels/CHANNEL_NAME", "verb": "update", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Verifique a utilização do Cloud KMS
Para verificar se o canal está agora em conformidade com a CMEK:
Consola
Na Google Cloud consola, aceda à página Eventarc > Acionadores.
Clique num acionador com uma origem de terceiros como Fornecedor de eventos e uma Região que protegeu através da CMEK.
Na página Detalhes do acionador, o estado da Encriptação apresenta a mensagem
Events encrypted using Customer-managed encryption keys
.
gcloud
gcloud eventarc channels describe CHANNEL_NAME \ --location=LOCATION
O resultado deve ser semelhante ao seguinte:
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'
O valor cryptokeyName
mostra a chave do Cloud KMS usada para o canal de terceiros.
Terraform
Para confirmar a chave CMEK, pode usar o comando state show
do Terraform.
terraform state show google_eventarc_channel.default
O resultado deve ser semelhante ao seguinte:
# google_eventarc_channel.default: resource "google_eventarc_channel" "default" { create_time = "2025-03-31T13:07:44.721274062Z" crypto_key_name = "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME" id = "projects/PROJECT_ID/locations/LOCATION/channels/CHANNEL_NAME" location = "LOCATION" name = "CHANNEL_NAME" project = "PROJECT_ID" pubsub_topic = "projects/PROJECT_ID/topics/PUBSUB_TOPIC_ID" state = "ACTIVE" uid = "406302e9-1d41-4479-8f4f-2524a803790e" update_time = "2025-03-31T13:07:49.708241490Z" }
REST
Para confirmar a chave CMEK de um canal, pode obter um recurso Channel
usando o método projects.locations.channels.get
.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
CHANNEL_NAME
: o nome do canal.PROJECT_ID
: o ID do seu Google Cloud projeto.LOCATION
: a região do canal protegido.
Para enviar o seu pedido, expanda uma destas opções:
Se for bem-sucedido, o corpo da resposta contém uma instância de
Channel
:
{ "name": "projects/PROJECT_ID/locations/LOCATION/channels/CHANNEL_NAME", "uid": "12f941a6-196a-457b-bfdb-ca21138859d0", "createTime": "2025-01-29T15:05:12.113912689Z", "updateTime": "2025-01-29T15:05:17.210986285Z", "pubsubTopic": "projects/PROJECT_ID/topics/TOPIC_ID", "state": "ACTIVE", "cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME" }
Apresente a chave usada para um canal
Pode descrever um canal do Eventarc e apresentar a chave do Cloud KMS que está a ser usada para o canal.
Consola
Na Google Cloud consola, aceda à página Eventarc > Canais.
Clique no nome de um canal.
São apresentadas todas as chaves de encriptação CMEK que estão a ser usadas para o canal.
gcloud
Com base no tipo de canal, execute o seguinte comando:
Canal Google
gcloud eventarc google-channels describe \ --location=LOCATION
Canal de terceiros
gcloud eventarc channels describe CHANNEL_NAME \ --location=LOCATION
A saída deve conter uma linha semelhante à seguinte:
cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
O valor cryptoKeyName
mostra a chave do Cloud KMS que está a ser usada para o canal.
Terraform
Com base no tipo de canal, execute o seguinte comando:
Canal Google
terraform state show google_eventarc_google_channel_config.default
Canal de terceiros
terraform state show google_eventarc_channel.default
A saída deve conter uma linha semelhante à seguinte:
crypto_key_name= "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
O valor crypto_key_name
mostra a chave do Cloud KMS que está a ser usada para o canal.
REST
Com base no tipo de canal, faça o seguinte pedido:
Canal Google
Para confirmar a chave CMEK de um determinado projeto e localização, pode
obter o recurso GoogleChannelConfig
através do método
projects.locations.getGoogleChannelConfig
.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: o ID do seu Google Cloud projeto.LOCATION
: a região do canal do Google protegido.
Para enviar o seu pedido, expanda uma destas opções:
Se for bem-sucedido, o corpo da resposta contém uma instância de
GoogleChannelConfig
:
{ "name": "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig", "updateTime": "2025-03-05T17:56:54.106390447Z", "cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME" }
Canal de terceiros
Para confirmar a chave CMEK de um determinado projeto e localização, pode
obter um recurso Channel
através do método
projects.locations.channels.get
.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
CHANNEL_NAME
: o nome do canal.PROJECT_ID
: o ID do seu Google Cloud projeto.LOCATION
: a região do canal protegido.
Para enviar o seu pedido, expanda uma destas opções:
Se for bem-sucedido, o corpo da resposta contém uma instância de
Channel
:
{ "name": "projects/PROJECT_ID/locations/LOCATION/channels/CHANNEL_NAME", "uid": "12f941a6-196a-457b-bfdb-ca21138859d0", "createTime": "2025-01-29T15:05:12.113912689Z", "updateTime": "2025-01-29T15:05:17.210986285Z", "pubsubTopic": "projects/PROJECT_ID/topics/TOPIC_ID", "state": "ACTIVE", "cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME" }
Desative as CMEK
Pode desativar a proteção CMEK associada a um canal. Os eventos que são fornecidos através destes canais continuam protegidos pela Google-owned and Google-managed encryption keys. Para eliminar a proteção CMEK associada a um canal:
Consola
Na Google Cloud consola, aceda à página Eventarc > Canais.
Com base no tipo de canal, conclua os seguintes passos:
Canal Google
- Clique num canal com um fornecedor Google.
- Na página Editar canal, mantenha o ponteiro sobre a lista Chave de encriptação CMEK para ver o botão Eliminar item.
- Clique em Eliminar artigo.
Clique em Guardar.
Pode ter de atualizar a página para ativar a caixa de verificação Usar uma chave de encriptação gerida pelo cliente (CMEK).
Canal de terceiros
- Clique num canal com um fornecedor externo.
- Na página Detalhes do canal, clique em Editar.
- Na página Editar canal, em Encriptação, selecione Chave de encriptação gerida pela Google.
- Clique em Guardar.
gcloud
Com base no tipo de canal, execute o seguinte comando:
Canal Google
gcloud eventarc google-channels \ update --clear-crypto-key
Canal de terceiros
gcloud eventarc channels CHANNEL_NAME \ update --clear-crypto-key
Terraform
Com base no tipo de canal, limpe o valor crypto_key_name
não o especificando ao configurar o recurso do Terraform:
Canal Google
resource "google_eventarc_google_channel_config" "default" { location = "us-central1" name = "googleChannelConfig" }
Canal de terceiros
resource "google_eventarc_channel" "default" { location = "us-central1" name = "CHANNEL_NAME" }
REST
Com base no tipo de canal, faça o seguinte pedido:
Canal Google
Para eliminar a chave CMEK, pode atualizar o recurso GoogleChannelConfig
para um determinado projeto e localização através do método
projects.locations.updateGoogleChannelConfig
.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: o ID do seu Google Cloud projeto.LOCATION
: a região do canal do Google protegido a proteger.
Corpo JSON do pedido:
{ "cryptoKeyName": "" }
Para enviar o seu pedido, expanda uma destas opções:
Se for bem-sucedido, o corpo da resposta contém uma instância atualizada de
GoogleChannelConfig
:
{ "name": "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig", "updateTime": "2025-03-05T17:56:54.106390447Z" }
Canal de terceiros
Para eliminar a chave CMEK, pode atualizar um recurso Channel
para um determinado projeto e localização através do método projects.locations.channels.patch
.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
CHANNEL_NAME
: o nome do canal.PROJECT_ID
: o ID do seu Google Cloud projeto.LOCATION
: a região do canal protegido.
Corpo JSON do pedido:
{ "cryptoKeyName": "" }
Para enviar o seu pedido, expanda uma destas opções:
Se for bem-sucedido, o corpo da resposta contém uma instância recém-criada de
Operation
:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata", "createTime": "2024-01-25T17:17:45.782370139Z", "target": "projects/PROJECT_ID/locations/LOCATION/channels/CHANNEL_NAME", "verb": "update", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
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 canal padrão 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 canal Eventarc Standard 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, a publicação de eventos com canais 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 canal. Isto afeta apenas os canais e os acionadores do Eventarc associados à chave específica.
- Opcional: revogue a função
cloudkms.cryptoKeyEncrypterDecrypter
da conta de serviço do Eventarc. Isto afeta todos os canais e acionadores 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 publicação e o envio de eventos, restaure o acesso ao Cloud KMS.
Preços
Esta integração 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 canal 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.