Por predefinição, o Cloud Tasks encripta o conteúdo do cliente em repouso. O Cloud Tasks 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 Cloud Tasks. 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 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 Cloud Tasks é 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).
O que está protegido com a CMEK
Quando ativa as CMEK no Cloud Tasks, ativa-as para uma região. Quando ativado, o corpo e o cabeçalho das tarefas criadas nessa região são protegidos com a sua chave quando estão inativos. Se uma tarefa foi criada enquanto as CMEK estavam ativadas e, posteriormente, a chave for desativada (desativando ou eliminando a chave, ou desativando as CMEK), a tarefa é encriptada com a sua chave, mas não pode ser executada.
As tarefas não estão protegidas com CMEK nos seguintes casos:
- A tarefa foi criada antes de ativar as CMEK
- A tarefa não está na região para a qual o CMEK está ativado
- A tarefa é afetada por uma limitação de compatibilidade
Limitações de compatibilidade
A integração do Cloud Tasks com a CMEK não suporta o seguinte:
google-gax
versões abaixo de4.0.0
: o pacote NPMgoogle-gax
para Node.js tem suporte limitado nas versões anteriores a4.0.0
. Para estas versões, a CMEK só é suportada na regiãous-central1
. Mesmo que só tenha tarefas nessa região, é recomendado que atualize para a versão4.0.0
ou posterior.Serviço de fila de tarefas integrado do App Engine: as tarefas criadas através do serviço de fila de tarefas integrado do App Engine não estão protegidas pela CMEK, mesmo que estejam numa região para a qual esteja ativada. A ativação das CMEK não impede a criação nem o funcionamento (por exemplo, a execução ou a eliminação) destas tarefas.
Filas de obtenção: se ativar a CMEK, pode criar e executar tarefas em filas de obtenção, mas estas tarefas não estão protegidas pela CMEK. As filas de obtenção são invulgares. Para verificar se a sua fila é uma fila de obtenção, execute o seguinte comando da CLI gcloud no terminal:
gcloud tasks queues describe QUEUE_NAME
Substitua
QUEUE_NAME
pelo nome da fila.Se o
type
indicado forpull
, a sua fila é uma fila de obtenção. Se o valortype
indicado forpush
, esta limitação não afeta as tarefas na sua fila.Encaminhamento ao nível da fila: quando as CMEK estão ativadas, não pode aplicar o encaminhamento ao nível da fila. Além disso, se o encaminhamento ao nível da fila estiver ativado, não pode ativar as CMEK. Para verificar se tem o encaminhamento ao nível da fila ativado, faça o seguinte:
Execute o seguinte comando da CLI gcloud no terminal:
Substituagcloud tasks queues describe QUEUE_NAME
QUEUE_NAME
pelo nome da sua fila.Na saída, procure o campo
httpTarget
e verifique se ouriOverride
foi definido. Se for especificado umhost
, a sua fila tem o encaminhamento ao nível da fila ativado e não é compatível com a CMEK. Para remover o encaminhamento ao nível da fila, consulte o artigo Atualize ou remova o encaminhamento ao nível da fila. Se o resultado não mostraruriOverride
com umhost
especificado, a sua fila não usa o encaminhamento ao nível da fila.
TTL da tarefa: quando o CMEK está ativado, não pode definir
task_ttl
para um valor superior a 60 dias. Além disso, se tiver umtask_ttl
definido para mais de 60 dias, não pode ativar o CMEK.
Antes de começar
Antes de usar as CMEK no Cloud Tasks, conclua os seguintes passos:
Ative as APIs.
Consola
-
Enable the Cloud KMS and Cloud Tasks 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.
Defina o projeto predefinido. Este deve ser o projeto que contém os recursos do Cloud Tasks que quer proteger com a CMEK. Se precisar de executar um comando num projeto diferente, como o projeto que contém os seus recursos do Cloud KMS, esta página inclui a flag
--project
no comando da CLI gcloud e indica o projeto que deve especificar.gcloud config set project PROJECT_ID
Substitua
PROJECT_ID
pelo ID do projeto que contém os seus recursos do Cloud Tasks.Atualize os componentes
gcloud
.gcloud components update
Ative as APIs Cloud KMS e Cloud Tasks para o projeto que vai armazenar as suas chaves de encriptação.
gcloud services enable cloudkms.googleapis.com cloudtasks.googleapis.com \ --project=PROJECT_ID
Substitua
PROJECT_ID
pelo ID do projeto que vai armazenar as suas chaves de encriptação. Este pode ser o mesmo projeto que os seus recursos do Cloud Tasks, mas para limitar o acesso às suas chaves do Cloud KMS, considere configurar o Cloud KMS num projeto separado.
O Cloud KMS produz registos de auditoria na nuvem quando as chaves são ativadas, desativadas ou usadas por recursos do Cloud Tasks 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.
Obtenha funções de gestão de identidade e de acesso.
Para receber as autorizações necessárias para usar as CMEK com o Cloud Tasks, peça ao seu administrador para lhe conceder as seguintes funções da IAM no seu projeto:
-
Ative ou desative as CMEK:
roles/cloudtasks.admin
-
Veja a chave em utilização:
roles/cloudtasks.viewer
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Crie um conjunto de chaves e uma chave do Cloud KMS
Se já tiver um conjunto de chaves na mesma região que os seus recursos do Cloud Tasks e quiser usar essa chave e conjunto de chaves, ignore esta secção. Caso contrário, use estas instruções para criar a chave e o conjunto de chaves do Cloud KMS.
-
O conjunto de chaves tem de estar na região que contém os recursos do Cloud Tasks que quer proteger. Para mais informações, consulte as localizações do Cloud KMS e as localizações do Cloud Tasks.
O conjunto de chaves e os recursos do Cloud Tasks protegidos por CMEK podem estar no mesmo projeto, mas para limitar o acesso às suas chaves do Cloud KMS, considere configurar o Cloud KMS num projeto separado.
Obtenha o ID de uma chave do Cloud KMS
O ID de recurso de uma chave do Cloud KMS é obrigatório quando ativa a CMEK para o Cloud Tasks.
Consola
Na Google Cloud consola, aceda à página Gestão de chaves e selecione o separador Inventário de chaves.
Para a chave cujo ID de recurso está a obter, clique em more_vert Ações.
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
gcloud
Liste todas as chaves num determinado conjunto de chaves:
gcloud kms keys list --keyring=KEY_RING --location=LOCATION --project=PROJECT_ID
Substitua o seguinte:
KEY_RING
: o nome do conjunto de chavesLOCATION
: a região do conjunto de chavesPROJECT_ID
: o ID do projeto que contém o conjunto de chaves
A saída inclui o ID da chave para cada chave. Por exemplo:
NAME: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Conceda ao agente do serviço Cloud Tasks acesso à chave
Tem de conceder ao agente de serviço do Cloud Tasks 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
Na Google Cloud consola, aceda à página IAM (gestão de identidade e de acesso).
Selecione a caixa de verificação Incluir concessões de funções fornecidas pela Google.
Encontre a conta de serviço do Cloud Tasks escrevendo
cloudtasks.iam.gserviceaccount.com
no filtro.A conta de serviço do Cloud Tasks tem o formato
service-PROJECT_NUMBER@gcp-sa-cloudtasks.iam.gserviceaccount.com
.Clique no ícone de lápis Editar principal.
No painel apresentado, clique em Adicionar outra função.
Pesquise e selecione a função Encriptador/desencriptador de CryptoKey do Cloud KMS.
Clique em Guardar.
gcloud
gcloud kms keys add-iam-policy-binding KEY_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudtasks.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Substitua o seguinte:
KEY_ID
: o ID do recurso totalmente qualificado da sua chave. Para obter instruções sobre como encontrar este ID, consulte o artigo Obtenha o ID de uma chave do Cloud KMS. Não inclua um número de versão da chave. A inclusão de um número da versão da chave pode fazer com que este comando falhe.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: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
, uma tarefa na sua região com CMEK 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 as CMEK para o Cloud Tasks.Ative as CMEK para o Cloud Tasks
Pode ativar a CMEK através da API ou da CLI gcloud. Para o Cloud Tasks, a CMEK é ativada por região. Não está ativada por tarefas individuais. Quando a CMEK está ativada para uma determinada região no Cloud Tasks, todas as tarefas nessa região estão protegidas pela CMEK.
gcloud
Para ativar as CMEK através da CLI do Google Cloud, execute o seguinte comando:
gcloud tasks cmek-config update --location=LOCATION --kms-key-name=KEY_ID
Substitua o seguinte:
LOCATION
: a região do recurso do Cloud TasksKEY_ID
: o ID do recurso totalmente qualificado da sua chave. Para obter instruções sobre como encontrar esta informação, consulte o artigo Obtenha o ID de uma chave do Cloud KMS. Não inclua um número de versão da chave. A inclusão de um número da versão da chave pode fazer com que este comando falhe.
REST
Pode ativar as CMEK chamando o método
Update CMEK config
. A API Cloud Tasks fornece o métodoUpdate CMEK config
nas APIs REST e RPC:- REST: use o método
updateCmekConfig
. - RPC: use o método
UpdateCmekConfigRequest
.
Para verificar se a chave foi ativada com êxito, siga as instruções na secção Identifique a chave em utilização.
Ative para tarefas pré-existentes
As CMEK não protegem as tarefas criadas antes de ativar as CMEK para o Cloud Tasks. Para proteger tarefas pré-existentes com CMEK:
- Ative as CMEK (consulte a secção sobre a ativação das CMEK).
Substituir as tarefas preexistentes. Existem duas formas principais de o fazer. A melhor forma de o fazer depende do que é importante para si:
Execução contínua: para garantir a execução contínua ("pelo menos uma vez"), pode recriar primeiro a tarefa e, em seguida, eliminar a tarefa preexistente depois de verificar se a nova tarefa funciona como esperado. Isto pode resultar em execuções duplicadas, porque a tarefa antiga e a nova podem ser executadas antes de eliminar a tarefa antiga.
Prevenção de duplicados: para evitar execuções duplicadas ("no máximo uma vez"), pode eliminar primeiro a tarefa antiga e, em seguida, recriá-la. Isto pode resultar em execuções perdidas devido ao tempo decorrido entre a eliminação da tarefa antiga e a criação da nova.
Identifique a chave em utilização
Para identificar a chave CMEK em utilização para os seus recursos do Cloud Tasks, execute o seguinte comando da CLI gcloud:
gcloud tasks cmek-config describe --location=LOCATION
Substitua
LOCATION
pela região dos seus recursos do Cloud Tasks.Se não houver saída, significa que a CMEK não está configurada para a localização especificada.
Aplique uma política da organização de CMEK
O Cloud Tasks 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 de encriptação para recursos do Cloud Tasks na sua organização:
- Exija CMEKs para todos os novos recursos do Cloud Tasks
- Restrinja as chaves do Cloud KMS para um projeto do Cloud Tasks
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 às tarefas existentes. Esses recursos continuam acessíveis sem uma CMEK e, se aplicável, continuam encriptados com as chaves existentes. Se quiser aplicar a política a tarefas existentes, tem de ativar as CMEK para tarefas pré-existentes.
Valide as autorizações necessárias para definir uma política da 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, continua a ser possível especificar uma política que se aplique apenas a um projeto ou uma pasta específicos.
Exija CMEKs para todos os novos recursos do Cloud Tasks
Pode usar a restrição
constraints/gcp.restrictNonCmekServices
para exigir que as CMEKs sejam usadas para proteger todos os novos recursos do Cloud Tasks 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 da 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:cloudtasks.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:cloudtasks.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 uma fila no projeto. O processo falha, a menos que especifique uma chave do Cloud KMS.
Restrinja as chaves do Cloud KMS para um projeto do Cloud Tasks
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 Cloud Tasks.Por exemplo, pode especificar uma regra semelhante à seguinte: "Para todos os recursos do Cloud Tasks em
projects/my-company-data-project
, as chaves do Cloud KMS usadas neste projeto têm de ser provenientes deprojects/my-company-central-keys
OUprojects/team-specific-keys
."Consola
Na Google Cloud consola, aceda à página Políticas da 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 uma fila com uma chave do Cloud KMS de um projeto diferente. O processo vai falhar.
Desative as CMEK para o Cloud Tasks
Pode desativar a CMEK através da API ou da CLI gcloud. Para o Cloud Tasks, a CMEK está desativada por região. Não é desativada por tarefas individuais. Quando a CMEK está desativada para uma determinada região no Cloud Tasks, as tarefas nessa região não estão protegidas pela CMEK.
A desativação da CMEK afeta as tarefas criadas no futuro e não as tarefas criadas no passado:
- Novas tarefas: não estão protegidas pela CMEK
Tarefas pré-existentes: as tarefas criadas enquanto as CMEK estavam ativadas permanecem encriptadas e continuam a ser executadas desde que a chave do Cloud KMS permaneça ativa.
gcloud
Para desativar as CMEK através da CLI do Google Cloud, use o seguinte comando:
gcloud tasks cmek-config update --location=LOCATION --clear-kms-key
Substitua o seguinte:
LOCATION
: a região do seu recurso do Cloud Tasks.
REST
Pode desativar as CMEK chamando o método
Update CMEK config
e limpando a chave do Cloud KMS, substituindo-a por uma string vazia. A API Cloud Tasks fornece o métodoUpdate CMEK config
nas APIs REST e RPC:- REST: use o método
updateCmekConfig
. - RPC: use o método
UpdateCmekConfigRequest
.
Remova o Cloud KMS
Se quiser revogar o acesso aos dados das suas tarefas, pode remover o Cloud KMS. Existem três formas de o fazer:
Desative a chave de encriptação gerida pelo cliente. A desativação de uma chave CMEK suspende o acesso a todos os dados protegidos por essa versão da chave enquanto a chave estiver desativada. Não pode aceder nem criar tarefas com uma chave desativada. A tentativa de executar uma tarefa protegida por CMEK enquanto a chave está desativada resulta num erro
UNKNOWN
no Cloud Logging. Pode reativar a chave mais tarde, se quiser. Quando desativa uma chave de encriptação gerida pelo cliente, a alteração pode demorar até 5 minutos a ser aplicada.Destrua a chave de encriptação gerida pelo cliente. A destruição de uma chave CMEK suspende permanentemente o acesso a todos os dados protegidos por essa versão da chave. Não pode aceder nem criar tarefas com uma chave que tenha sido destruída. Se uma tarefa tiver sido criada enquanto as CMEK estavam ativadas e a chave for destruída posteriormente, a tarefa é encriptada com a sua chave, mas não pode ser executada. Se a tarefa tentar ser executada, o Cloud Logging regista um erro
UNKNOWN
. Quando destrói uma chave de encriptação gerida pelo cliente, a alteração pode demorar até 5 minutos a ser aplicada.Revogue a função do IAM do agente de serviço do Cloud Tasks.
cloudkms.cryptoKeyEncrypterDecrypter
Isto afeta todas as tarefas no Google Cloud projeto que suportam a encriptação através da CMEK. Não pode criar novas tarefas integradas com CMEK nem ver recursos encriptados com CMEK.
Embora nenhuma destas operações garanta a revogação instantânea do acesso, as alterações do IAM entram geralmente em vigor mais rapidamente. Para mais informações, consulte os artigos Consistência dos recursos do Cloud KMS e Propagação das alterações de acesso.
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-19 UTC.
-