Por predefinição, o Workflows encripta o conteúdo do cliente em repouso. Os fluxos de trabalho processam 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 (CMEKs) no Cloud KMS com serviços integrados com CMEK, incluindo o Workflows. 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 e autorizações de acesso, bem como limites criptográficos. A utilização do Cloud KMS também permite monitorizar a utilização das chaves, 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 do Workflows é 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).
Pode proteger o seu fluxo de trabalho e os dados associados em repouso através de uma chave de encriptação à qual só tem acesso e que pode controlar e gerir através do Cloud KMS.
O que está protegido com a CMEK
Quando implementa um fluxo de trabalho, pode especificar uma chave do Cloud KMS. Esta chave é usada para encriptar o fluxo de trabalho e as respetivas execuções:
Um fluxo de trabalho requer um ficheiro de origem que contenha uma definição de fluxo de trabalho válida. Este ficheiro de origem está encriptado com a chave.
Uma execução do fluxo de trabalho executa a definição do fluxo de trabalho atual (uma revisão do fluxo de trabalho específica). A revisão do fluxo de trabalho compilado, bem como quaisquer dados de entrada, saída e de tempo de execução armazenados, são encriptados através da chave associada à revisão do fluxo de trabalho no momento da respetiva implementação. Isto inclui argumentos de execução, resultados, erros e exceções; eventos do Eventarc; e pedidos e respostas HTTP e de callback.
Antes de começar
Antes de usar as CMEK nos fluxos de trabalho, conclua os seguintes passos:
Ative as APIs.
Consola
-
Enable the Cloud KMS and Workflows APIs.
gcloud
-
In the Google Cloud console, 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.
- Atualize os componentes
gcloud
.gcloud components update
- Ative as APIs Cloud KMS e Workflows para o projeto que vai armazenar as suas chaves de encriptação.
gcloud services enable cloudkms.googleapis.com workflows.googleapis.com
O Cloud KMS produz registos de auditoria do Cloud quando as chaves são ativadas, desativadas ou usadas por recursos dos Workflows para encriptar e desencriptar dados. Certifique-se de que o registo está ativado para a API Cloud KMS no seu projeto e que decidiu que autorizações e funções específicas do registo se aplicam ao seu exemplo de utilização. Para mais informações, consulte as informações de registo de auditoria do Cloud KMS.
Crie um conjunto de chaves e uma chave do Cloud KMS
Pode criar um novo conjunto de chaves ou usar um existente. No porta-chaves, pode adicionar uma nova chave ou usar uma chave existente.
Obtenha o ID de recurso de uma chave do Cloud KMS
O ID de recurso de uma chave do Cloud KMS é obrigatório quando ativa a CMEK para um fluxo de trabalho. Neste documento, consulte a secção Ative as CMEK para um fluxo de trabalho.
Consola
Na Google Cloud consola, aceda à página Gestão de chaves.
Clique no conjunto de chaves que contém a chave.
Para a chave cujo ID de recurso está a obter, clique em more_vert Mais.
Clique em Copiar nome do recurso.
O ID do recurso da chave é copiado para a área de transferência. O formato é semelhante ao seguinte:
projects/PROJECT_NAME/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Uma chave contém zero ou mais versões da chave. O ID do recurso de uma versão da chave é o ID da chave, mais uma barra (
/
), mais o ID da versão. Para listar todas as versões de uma chave:- Clique no nome da chave.
- Para uma versão específica, clique em Mais.
- Clique em Copiar nome do recurso.
gcloud
Liste todas as chaves num determinado conjunto de chaves:
gcloud kms keys list --keyring RING_NAME --location LOCATION
Substitua o seguinte:
RING_NAME
: o nome do conjunto de chavesLOCATION
: a região do conjunto de chaves
A saída inclui o ID do recurso para cada chave. Por exemplo:
NAME: projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
Uma chave tem zero ou mais versões da chave. O ID do recurso de uma versão da chave é o ID da chave, mais uma barra (
/
) e o ID da versão. Liste todas as versões de uma chave:gcloud kms keys versions list --location LOCATION --keyring RING_NAME --key KEY_NAME
O resultado inclui o ID do recurso para cada versão da chave. Por exemplo:
NAME: projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME/2
Conceda ao agente de serviço do Workflows acesso à chave
Tem de conceder ao agente de serviço dos Workflows a função de encriptador/desencriptador de CryptoKey do Cloud KMS do Identity and Access Management (IAM) para que possa aceder à chave do Cloud KMS:
Consola
Quando ativa a CMEK para um fluxo de trabalho através da consola, é-lhe pedido que conceda a função encriptar/desencriptar do CryptoKey do Cloud KMS à conta de serviço. Para mais informações, consulte a secção Ative a CMEK para um fluxo de trabalho neste documento.
gcloud
gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring RING_NAME \ --location LOCATION \ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-workflows.iam.gserviceaccount.com \ --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
.PROJECT_NUMBER
: o número do seu Google Cloud projeto. Pode encontrar o número do projeto na página Boas-vindas da Google Cloud consola ou executando o seguinte comando:export PROJECT=$(gcloud info --format='value(config.project)') gcloud projects describe ${PROJECT} --format="value(projectNumber)"
Enquanto o agente de serviço tiver a função
roles/cloudkms.cryptoKeyEncrypterDecrypter
, um fluxo de trabalho no seu projeto pode encriptar e desencriptar os respetivos dados através da chave CMEK. Se revogar esta função ou desativar ou destruir a chave CMEK, não é possível aceder a esses dados. Neste documento, consulte a secção Desative o Cloud KMS.Ative as CMEK para um fluxo de trabalho
Quando criar um fluxo de trabalho ou atualizá-lo posteriormente, pode especificar a chave do Cloud KMS que o fluxo de trabalho deve usar para a encriptação de dados.
Consola
Na Google Cloud consola, aceda à página Fluxos de trabalho.
Clique no nome do fluxo de trabalho que quer atualizar.
É apresentada a página Detalhes dos fluxos de trabalho.
Clique em
Editar.Selecione Chave do Cloud KMS.
Selecione um Tipo de chave.
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 ou filtre uma chave do Cloud KMS.
Opcional: para introduzir manualmente o nome do recurso da chave, na lista Selecione uma chave gerida pelo cliente, clique em Introduzir chave manualmente e introduza o nome do recurso da chave no formato especificado.
Se lhe for pedido, conceda a função
cloudkms.cyptoKeyEncrypterDecrypter
à conta de serviço do Workflows com a funçãoworkflows.serviceAgent
.Clicar em Seguinte.
Para guardar as alterações e implementar o fluxo de trabalho atualizado, clique em Implementar.
gcloud
gcloud workflows deploy WORKFLOW_NAME \ --source=SOURCE_FILE \ --kms-key=KEY \ --location LOCATION \ --service-account=SERVICE_ACCOUNT
Substitua o seguinte:
WORKFLOW_NAME
: o nome do seu fluxo de trabalhoSOURCE_FILE
: o ficheiro de origem do fluxo de trabalho com uma extensão de ficheiroyaml
para um ficheiro YAML ou com uma extensão de ficheirojson
para um ficheiro JSON; por exemplo,myWorkflow.yaml
.KEY
: o ID de recurso da chave no formatoprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
. Pode obter o ID da chave.LOCATION
: a localização do fluxo de trabalhoSERVICE_ACCOUNT
: a conta de serviço que o fluxo de trabalho vai usar para aceder a outros serviços da Google Cloud ; por exemplo,SERVICE_ACCOUNT_NAME@PROJECT_NAME.iam.gserviceaccount.com
. Recomendamos vivamente que use uma conta de serviço com o mínimo de privilégios necessários para aceder aos recursos necessários. Se deixar em branco, é usada a conta de serviço predefinida. Para mais informações, consulte o artigo Conceda uma autorização de fluxo de trabalho para aceder a Google Cloud recursos.
Tenha em conta o seguinte:
- As revisões e as execuções do fluxo de trabalho são encriptadas com a chave especificada no momento da implementação. Os recursos encriptados anteriormente com uma chave anterior permanecem encriptados com essa chave anterior. Se um fluxo de trabalho for editado posteriormente e for especificada uma nova chave, essa revisão do fluxo de trabalho é encriptada com a nova chave, e todas as execuções subsequentes usam a nova chave.
- As revisões e as execuções de fluxos de trabalho encriptados anteriormente sem CMEK permanecem não encriptadas.
- Se desativar as CMEK para uma revisão do fluxo de trabalho, as execuções subsequentes são criadas sem encriptação CMEK. Neste documento, consulte a secção Desative as CMEK para um fluxo de trabalho. As revisões e as execuções do fluxo de trabalho existentes permanecem encriptadas com as chaves com as quais foram encriptadas anteriormente.
Valide a integração do Cloud KMS
Pode validar a integração da CMEK apresentando os metadados de um fluxo de trabalho.
Consola
Na Google Cloud consola, aceda à página Fluxos de trabalho.
Clique no nome do fluxo de trabalho que quer validar.
É apresentada a página Detalhes dos fluxos de trabalho.
Clique no separador Detalhes.
O valor Encriptação apresenta o ID do recurso da chave do Cloud KMS usada para proteger o fluxo de trabalho e a respetiva execução.
gcloud
gcloud workflows describe WORKFLOW_NAME \ --location=LOCATION
O resultado deve ser semelhante ao seguinte:
createTime: '2022-08-10T19:57:58.233177709Z' cryptoKeyName: projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME name: projects/PROJECT_NAME/locations/LOCATION/workflows/WORKFLOW_NAME revisionCreateTime: '2022-11-18T19:44:04.933633237Z' revisionId: 000009-8be serviceAccount: projects/PROJECT_NAME/serviceAccounts/SA_NAME@PROJECT_NAME.iam.gserviceaccount.com sourceContents: [...] state: ACTIVE updateTime: '2022-11-18T19:44:05.171793128Z'
O valor de
cryptokeyName
é o ID do recurso da chave do Cloud KMS usada para proteger o fluxo de trabalho e a respetiva execução.Desative as CMEK para um fluxo de trabalho
Pode desativar a CMEK para um fluxo de trabalho para que deixe de usar a chave do Cloud KMS associada.
Consola
Na Google Cloud consola, aceda à página Fluxos de trabalho.
Clique no nome do fluxo de trabalho que quer atualizar.
É apresentada a página Detalhes dos fluxos de trabalho.
Clique em
Editar.Para desmarcar o botão de opção Chave do Cloud KMS, selecione Google-managed encryption key.
Clicar em Seguinte.
Para guardar as alterações e implementar o fluxo de trabalho atualizado, clique em Implementar.
gcloud
gcloud workflows deploy WORKFLOW_NAME \ --source=SOURCE_FILE \ --clear-kms-key \ --service-account=SERVICE_ACCOUNT
Isto desativa a CMEK para a revisão do fluxo de trabalho atual e todas as execuções subsequentes são criadas sem encriptação CMEK. As revisões e as execuções do fluxo de trabalho existentes permanecem encriptadas com as chaves com as quais foram encriptadas anteriormente.
Desative o Cloud KMS
Se quiser revogar o acesso aos dados do seu fluxo de trabalho ou execuções do fluxo de trabalho, pode fazer qualquer uma das seguintes ações para desativar o Cloud KMS:
Desative ou destrua a versão da chave principal da sua chave de encriptação gerida pelo cliente. A desativação de uma versão de chave CMEK suspende o acesso a todos os dados protegidos por essa versão de chave. A destruição de uma versão da chave é a contrapartida permanente desta ação. Ambos afetam apenas os fluxos de trabalho e as execuções de fluxos de trabalho associados à chave específica. Não pode criar novas execuções nem ver os recursos associados à chave desativada ou destruída. Todas as execuções ativas vão falhar com uma mensagem de erro correspondente.
Revogue a função do IAM do agente do serviço Workflows.
cloudkms.cryptoKeyEncrypterDecrypter
Isto afeta todos os fluxos de trabalho no Google Cloud projeto que suportam a encriptação através da CMEK. Não pode criar novos fluxos de trabalho e execuções integrados com CMEK, nem ver recursos encriptados com CMEK. Todas as execuções ativas vão falhar com uma mensagem de erro correspondente.
Embora nenhuma das operações garanta a revogação instantânea do acesso, as alterações do IAM propagam-se geralmente mais rapidamente. Para mais informações, consulte os artigos Consistência dos recursos do Cloud KMS e Propagação das alterações de acesso.
Resolução de problemas
Pode encontrar erros quando usar o Cloud KMS com os Workflows. A tabela seguinte descreve diferentes problemas e como resolvê-los.
Problema Descrição A autorização cloudkms.cryptoKeyVersions.useToEncrypt
foi recusadaA chave do Cloud KMS fornecida não existe ou a autorização não está configurada corretamente. Solução:
- Verifique se a chave do Cloud KMS existe. Listar as chaves de um conjunto de chaves especificado e validar a respetiva utilização.
- Certifique-se de que o agente do serviço Workflows tem
acesso à chave e que lhe foi atribuída a função
cloudkms.cryptoKeyEncrypterDecrypter
.
A versão da chave não está ativada A versão da chave do Cloud KMS fornecida foi desativada. Solução: reative a versão da chave do Cloud KMS.
A região do conjunto de chaves não corresponde ao recurso a proteger A região do conjunto de chaves do KMS fornecida é diferente da região do fluxo de trabalho. Solução: use um conjunto de chaves do Cloud KMS e um fluxo de trabalho protegido da mesma região. (Tenha em atenção que podem estar em projetos diferentes.) Para mais informações, consulte as localizações do Cloud KMS e as localizações dos fluxos de trabalho.
O limite da quota do Cloud KMS foi excedido Atingiu o limite da quota de pedidos do Cloud KMS. Solução: limite o número de chamadas do Cloud KMS ou aumente o limite de quotas. Para mais informações, consulte as cotas do Cloud KMS.
Como é processado um estado de chave indisponível
Se, por algum motivo, o Cloud KMS estiver indisponível, os fluxos de trabalho podem não conseguir obter o estado da sua chave do Cloud KMS.
Se o estado da chave estiver indisponível, o fluxo de trabalho ou a respetiva execução devolve um valor
state: UNAVAILABLE
e detalhes relacionados no campostateError
.Se o estado da chave ficar indisponível durante a execução de um fluxo de trabalho (por exemplo, uma autorização é revogada durante uma chamada de retorno), ocorre um erro de tempo de execução, que devolve um valor
state: FAILED
e detalhes relacionados no campoerror
.Preços
Esta integração não incorre em custos adicionais além das operações principais, que são faturadas ao seu projeto Google Cloud . Para ver informações de preços atuais, consulte os preços do Cloud KMS.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-08-20 UTC.
-