Nesta página, mostramos como criar recursos protegidos usando chaves criadas pela autokey do Cloud KMS para criptografia. Para mais informações sobre as chaves automáticas, consulte Visão geral das chaves automáticas.
Antes de começar
Antes de criar recursos protegidos usando a autochave, é necessário concluir as etapas a seguir para se preparar:
- Se você ainda não tem um projeto de recursos na pasta Autokey, crie um projeto para armazenar os recursos que você planeja criar.
-
Para receber as permissões necessárias para usar a Autokey para criar recursos protegidos, peça ao administrador para conceder a você o Papel do IAM de usuário da Autokey do Cloud KMS (
roles/cloudkms.autokeyUser
) na pasta ou no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
- Você também precisa de permissões de criação de recursos na pasta Autokey ou em um projeto de recurso dentro dela. Para mais informações sobre as permissões necessárias para criar cada recurso, consulte a documentação específica do serviço. Para encontrar essa documentação, localize o serviço na tabela de integrações do CMEK e acesse o link para o tipo de recurso que você quer criar.
Como usar a Autokey com recursos do Compute Engine
A chave automática cria uma nova chave para cada disco, imagem e imagem da máquina no mesmo local do recurso que está sendo criado.
O Autokey não cria novas chaves para snapshots. Os snapshots precisam usar a mesma chave usada para criptografar o disco. Se você criar um snapshot usando o console do Google Cloud, a chave de criptografia usada pelo disco será aplicada automaticamente ao snapshot. Se você criar um snapshot usando a CLI gcloud, o Terraform ou a API Compute Engine, vai precisar identificar a chave usada para criptografar o disco e usar essa chave para criptografar o snapshot.
Para mais informações sobre como usar a CMEK com snapshots, consulte Criar um snapshot de um disco criptografado com a CMEK.
Criar um recurso protegido do Compute Engine
Console
Para criar um disco, siga estas etapas:
No console do Google Cloud, acesse a página Discos.
Clique em Novo disco e insira as propriedades do novo disco.
Em Criptografia, selecione Chave do Cloud KMS.
Em Tipo de chave, selecione Cloud KMS com Autokey e clique em Solicitar uma nova chave. Uma mensagem indica quando a chave foi criada e está pronta para uso.
Para concluir a criação do disco, clique em Criar.
Siga um processo semelhante para criar recursos de instância, imagem e imagem de máquina de VM protegidos.
Terraform
O exemplo do Terraform a seguir cria um handle de chave e usa a chave retornada para proteger um novo recurso de disco permanente:
resource "google_kms_key_handle" "my_key_handle" {
provider = google-beta
project = "RESOURCE_PROJECT_ID"
name = "KEY_HANDLE"
location = "LOCATION"
resource_type_selector = "compute.googleapis.com/Disk"
}
resource "google_compute_disk" "persistent_disk" {
project = "RESOURCE_PROJECT_ID"
name = "DISK_NAME"
type = "pd-ssd"
zone = "ZONE"
size = 30
physical_block_size_bytes = 4096
disk_encryption_key {
kms_key_self_link = google_kms_key_handle.my_key_handle.kms_key
}
}
Substitua:
RESOURCE_PROJECT_ID
: o ID do projeto de recurso na pasta Autokey em que você quer criar um recurso protegido.KEY_HANDLE
: um ID a ser usado para o identificador de chave.LOCATION
: o local em que você quer criar o recurso protegido.DISK_NAME
: o nome do novo disco.ZONE
: a zona do recurso protegido. Precisa ser uma zona no local em que você está criando o recurso. Por exemplo, se você estiver criando o recurso no localus-central1
, a zona poderá serus-central1-a
.
O Cloud KMS não permite que você exclua
recursos KeyHandle
. Se você estiver usando um padrão de criação e destruição, a tentativa
de recriar um KeyHandle
produzirá um erro ALREADY_EXISTS
. Para evitar esse
problema, importe um KeyHandle
criado anteriormente. Para mais informações,
consulte Criar e destruir padrões no Terraform nesta
página.
API
Solicite uma nova chave do Cloud KMS criando um
KeyHandle
:curl -H "Content-Type: application/json" \ -H "X-Goog-User-Project: USER_PROJECT" \ -H "Authorization: Bearer TOKEN" \ -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \ -d '{"resource_type_selector": "RESOURCE_TYPE"}'
Substitua:
USER_PROJECT
: o projeto a ser faturado com as cobranças associadas a essa solicitaç��o.RESOURCE_PROJECT_ID
: o ID do projeto de recurso na pasta Autokey em que você quer criar um recurso protegido.LOCATION
: o local em que você quer criar o recurso protegido.RESOURCE_TYPE
: o tipo de recurso que você quer criar, por exemplo,compute.googleapis.com/Disk
.
O resultado será assim:
{ "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata" } }
Anote o
OPERATION_ID
na saída. Você precisa desse valor para receber o ID do recurso da chave criada.Encontre a chave do Cloud KMS associada ao identificador de chave:
curl -H "X-Goog-User-Project: USER_PROJECT" \ -H "Authorization: Bearer TOKEN" \ -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Substitua:
USER_PROJECT
: o projeto a ser faturado com as cobranças associadas a essa solicitação.RESOURCE_PROJECT_ID
: o ID do projeto de recurso na pasta Autokey em que você quer criar um recurso protegido.LOCATION
: o local em que você quer criar o recurso protegido.OPERATION_ID
: o identificador da operação de solicitação de identificador de chave da saída da etapa anterior.
O resultado será assim:
{ "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "done": true, "response": { "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle", "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE", "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME", "resourceTypeSelector": "RESOURCE_TYPE" } }
O valor do elemento
kmsKey
na saída é o ID completo do recurso da chave criada pelo Autokey para esse recurso. Você pode usar esse ID do recurso da mesma forma que usaria o ID do recurso para qualquer outro recurso do Cloud KMS.Crie um disco criptografado usando o comando
gcloud compute disks create
com a flag--kms-key
:gcloud compute disks create DISK_NAME \ --kms-key projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME
Substitua:
DISK_NAME
: o nome do novo disco.KEY_PROJECT_ID
: o ID do projeto principal.LOCATION
: o local em que você quer criar o recurso.KEY_NAME
: o nome da chave retornada na saída da etapa anterior.
Como usar a chave automática com recursos do Cloud Storage
A chave automática cria uma nova chave no mesmo local do bucket. A chave criada pelo Autokey é atribuída como a chave padrão do bucket.
O Autokey não cria chaves para objetos. Por padrão, os objetos criados em um bucket usam a chave padrão do bucket. Se você quiser criptografar um objeto usando uma chave diferente da padrão do bucket, crie manualmente uma CMEK e use essa chave ao criar o objeto.
Se você quiser mudar a chave padrão atribuída a um bucket, use qualquer CMEK existente, incluindo chaves criadas pelo Autokey.
Criar um recurso protegido do Cloud Storage
Console
No Console do Google Cloud, acesse a página Criar um bucket.
Siga as instruções para Criar um novo bucket até chegar em Escolha como proteger os dados do objeto.
Em Escolha como proteger os dados do objeto, expanda a seção Criptografia de dados e selecione Chave do Cloud KMS.
Em Tipo de chave, selecione Cloud KMS com Autokey e clique em Solicitar uma nova chave. Uma mensagem indica quando a chave foi criada e está pronta para uso.
Para concluir a criação do bucket, clique em Criar.
Terraform
O exemplo do Terraform a seguir cria um handle de chave e usa a chave retornada para proteger um novo bucket de armazenamento:
resource "google_kms_key_handle" "my_key_handle" {
provider = google-beta
project = "RESOURCE_PROJECT_ID"
name = "KEY_HANDLE"
location = "LOCATION"
resource_type_selector = "storage.googleapis.com/Bucket"
}
resource "google_storage_bucket" "simple_bucket_name" {
name = "BUCKET_NAME"
location = "LOCATION"
force_destroy = true
project = "RESOURCE_PROJECT_ID"
uniform_bucket_level_access = true
encryption {
default_kms_key_name = google_kms_key_handle.my_key_handle.kms_key
}
}
Substitua:
RESOURCE_PROJECT_ID
: o ID do projeto de recurso na pasta Autokey em que você quer criar um recurso protegido.KEY_HANDLE
: um ID a ser usado para o identificador de chave.LOCATION
: o local em que você quer criar o recurso protegido.BUCKET_NAME
: o nome do novo bucket.
O Cloud KMS não permite que você exclua
recursos KeyHandle
. Se você estiver usando um padrão de criação e destruição, a tentativa
de recriar um KeyHandle
produzirá um erro ALREADY_EXISTS
. Para evitar esse
problema, importe um KeyHandle
criado anteriormente. Para mais informações,
consulte Criar e destruir padrões no Terraform nesta
página.
API
Solicite uma nova chave do Cloud KMS criando um
KeyHandle
:curl -H "Content-Type: application/json" \ -H "X-Goog-User-Project: USER_PROJECT" \ -H "Authorization: Bearer TOKEN" \ -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \ -d '{"resource_type_selector": "RESOURCE_TYPE"}'
Substitua:
USER_PROJECT
: o projeto a ser faturado com as cobranças associadas a essa solicitação.RESOURCE_PROJECT_ID
: o ID do projeto de recurso na pasta Autokey em que você quer criar um recurso protegido.LOCATION
: o local em que você quer criar o recurso protegido.RESOURCE_TYPE
: o tipo de recurso que você quer criar, por exemplo,storage.googleapis.com/Bucket
.
O resultado será assim:
{ "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata" } }
Anote o
OPERATION_ID
da saída. Você precisa desse valor para receber o ID do recurso da chave criada.Encontre a chave do Cloud KMS associada ao identificador de chave:
curl -H "X-Goog-User-Project: USER_PROJECT" \ -H "Authorization: Bearer TOKEN" \ -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Substitua:
USER_PROJECT
: o projeto a ser faturado com as cobranças associadas a essa solicitação.RESOURCE_PROJECT_ID
: o ID do projeto de recurso na pasta Autokey em que você quer criar um recurso protegido.LOCATION
: o local em que você quer criar o recurso protegido.OPERATION_ID
: o identificador da operação de solicitação de identificador de chave da saída da etapa anterior.
O resultado será assim:
{ "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "done": true, "response": { "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle", "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE", "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME", "resourceTypeSelector": "RESOURCE_TYPE" } }
O valor do elemento
kmsKey
na saída é o ID completo do recurso da chave criada pelo Autokey para esse recurso. É possível usar esse ID do recurso da mesma forma que você usaria o ID do recurso para qualquer outro recurso do Cloud KMS.Crie um bucket criptografado usando o comando
gcloud storage buckets create
com a flag--default-encryption-key
:gcloud storage buckets create gs://BUCKET_NAME \ --location=LOCATION \ --default-encryption-key=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME
Substitua:
BUCKET_NAME
: o nome do novo bucket. O nome do bucket precisa seguir os requisitos de nomenclatura de bucket.LOCATION
: o local em que você quer criar o bucket.KEY_PROJECT_ID
: o ID do projeto principal.LOCATION
: o local em que você quer criar o recurso.KEY_NAME
: o nome da chave retornada na saída da etapa anterior.
Como usar o Autokey com recursos do BigQuery
O Cloud KMS está disponível em várias edições do BigQuery. Verifique se a edição do BigQuery que você está usando é compatível com o Cloud KMS antes de tentar usar o Autokey para proteger os recursos do BigQuery. Para mais informações sobre as edições do BigQuery, consulte Noções básicas sobre as edições do BigQuery.
Para cada novo conjunto de dados, a Autokey cria uma nova chave no mesmo local do recurso, que se torna a chave padrão do conjunto de dados.
O Autokey não cria chaves para tabelas, consultas, tabelas temporárias ou modelos. Por padrão, esses recursos são protegidos pela chave padrão do conjunto de dados. Se você quiser proteger um recurso em um conjunto de dados usando uma chave diferente da padrão, crie manualmente uma CMEK e use essa chave ao criar o recurso.
Para consultas e tabelas temporárias que não estão em um conjunto de dados, use as chaves padrão do projeto. Use uma chave padrão de projeto diferente para cada local no projeto que contém recursos do BigQuery. Para mais informações sobre o uso de chaves padrão de projeto, consulte Definir uma chave padrão de projeto.
Para mais informações sobre o uso do CMEK com o BigQuery, consulte Chaves do Cloud KMS gerenciadas pelo cliente.
Criar um recurso protegido do BigQuery
Console
Antes de tentar criar um conjunto de dados do BigQuery usando a Autokey, verifique se você tem as permissões necessárias. Para mais informações sobre como criar conjuntos de dados, consulte Criar conjuntos de dados.
No Console do Google Cloud, acesse a página BigQuery.
Siga as instruções para Criar um conjunto de dados até chegar a Opções avançadas > Criptografia.
Em Criptografia, selecione Chave do Cloud KMS.
Em Tipo de chave, selecione Cloud KMS com Autokey e clique em Solicitar uma nova chave. Uma mensagem indica quando a chave foi criada e está pronta para uso.
Para concluir a criação do conjunto de dados, clique em Criar conjunto de dados.
Terraform
O exemplo do Terraform a seguir cria um identificador de chave e usa a chave retornada para proteger um novo conjunto de dados:
resource "google_kms_key_handle" "my_key_handle" {
provider = google-beta
project = "RESOURCE_PROJECT_ID"
name = "test-key-handle"
location = "LOCATION"
resource_type_selector = "bigquery.googleapis.com/Dataset"
}
resource "google_bigquery_dataset" "dataset" {
project = "RESOURCE_PROJECT_ID"
dataset_id = "DATASET_ID"
friendly_name = "DATASET_NAME"
description = "DATASET_DESCRIPTION"
location = "LOCATION"
default_table_expiration_ms = 3600000
default_encryption_configuration {
kms_key_name = google_kms_key_handle.my_key_handle.kms_key
}
}
Substitua:
RESOURCE_PROJECT_ID
: o ID do projeto de recurso na pasta Autokey em que você quer criar um recurso protegido.LOCATION
: o local em que você quer criar o recurso protegido.DATASET_ID
: o ID a ser usado para o novo conjunto de dados.DATASET_NAME
: um nome legível para o novo conjunto de dados.DATASET_DESCRIPTION
: uma descrição do novo conjunto de dados.
O Cloud KMS não permite que você exclua
recursos KeyHandle
. Se você estiver usando um padrão de criação e destruição, a tentativa
de recriar um KeyHandle
produzirá um erro ALREADY_EXISTS
. Para evitar esse
problema, importe um KeyHandle
criado anteriormente. Para mais informações,
consulte Criar e destruir padrões no Terraform nesta
página.
API
Solicite uma nova chave do Cloud KMS criando um
KeyHandle
:curl -H "Content-Type: application/json" \ -H "X-Goog-User-Project: USER_PROJECT" \ -H "Authorization: Bearer TOKEN" \ -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \ -d '{"resource_type_selector": "RESOURCE_TYPE"}'
Substitua:
USER_PROJECT
: o projeto a ser faturado com as cobranças associadas a essa solicitação.RESOURCE_PROJECT_ID
: o ID do projeto de recurso na pasta Autokey em que você quer criar um recurso protegido.LOCATION
: o local em que você quer criar o recurso protegido.RESOURCE_TYPE
: o tipo de recurso que você quer criar, por exemplo,bigquery.googleapis.com/Dataset
.
O resultado será assim:
{ "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata" } }
Anote o
OPERATION_ID
da saída. Você precisa desse valor para receber o ID do recurso da chave criada.Encontre a chave do Cloud KMS associada ao identificador de chave:
curl -H "X-Goog-User-Project: USER_PROJECT" \ -H "Authorization: Bearer TOKEN" \ -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Substitua:
USER_PROJECT
: o projeto a ser faturado com as cobranças associadas a essa solicitação.RESOURCE_PROJECT_ID
: o ID do projeto de recurso na pasta Autokey em que você quer criar um recurso protegido.LOCATION
: o local em que você quer criar o recurso protegido.OPERATION_ID
: o identificador da operação de solicitação de identificador de chave da saída da etapa anterior.
O resultado será assim:
{ "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "done": true, "response": { "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle", "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE", "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME", "resourceTypeSelector": "RESOURCE_TYPE" } }
O valor do elemento
kmsKey
na saída é o ID completo do recurso da chave criada pelo Autokey para esse recurso. É possível usar esse ID do recurso da mesma forma que você usaria o ID do recurso para qualquer outro recurso do Cloud KMS.Crie um conjunto de dados criptografado usando o comando
bq mk
com a flag--destination_kms_key
.bq --location=LOCATION mk \ --dataset \ --default_kms_key=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME \ --default_table_expiration=TABLE_EXPIRATION \ --description="DATASET_DESCRIPTION" \ RESOURCE_PROJECT_ID:DATASET_ID
Substitua:
LOCATION
: o local em que você quer criar o conjunto de dados.KEY_PROJECT_ID
: o ID do projeto principal.KEY_NAME
: o nome da chave retornada na saída da etapa anterior.TABLE_EXPIRATION
: o tempo de vida padrão para novas tabelas neste conjunto de dados, em segundos.DATASET_DESCRIPTION
: uma descrição do novo conjunto de dados.RESOURCE_PROJECT_ID
: o ID do projeto de recurso na pasta Autokey em que você quer criar um recurso protegido.DATASET_ID
: o ID do conjunto de dados que você está criando.
Para mais informações sobre a ferramenta
bq
, consulte Conhecer a ferramenta de linha de comando bq.
Como usar a chave automática com os recursos do Secret Manager
O Autokey cria uma única chave para proteger todos os segredos no mesmo projeto e local. Quando a chave é rotacionada, os novos segredos adicionados ao projeto usam a nova versão principal da chave.
O Secret Manager é compatível apenas com o Autokey do Cloud KMS ao criar recursos usando o Terraform ou a API REST.
Criar um recurso protegido do Secret Manager
Terraform
O exemplo do Terraform a seguir cria um identificador de chave e usa a chave retornada para proteger um novo segredo com a replicação automática:
resource "google_kms_key_handle" "my_key_handle" {
provider = google-beta
project = "RESOURCE_PROJECT_ID"
name = "test-key-handle"
location = "global"
resource_type_selector = "secretmanager.googleapis.com/Secret"
}
resource "google_secret_manager_secret" "my_secret" {
project = "RESOURCE_PROJECT_ID"
secret_id = "SECRET_ID"
replication {
auto {
customer_managed_encryption {
kms_key_name = google_kms_key_handle.my_key_handle.kms_key
}
}
}
}
Substitua:
RESOURCE_PROJECT_ID
: o ID do projeto de recurso na pasta Autokey em que você quer criar um recurso protegido.SECRET_ID
: o ID a ser usado para o novo secret.
Se você tentar criar um identificador de chave para um secret no mesmo projeto e
local em que um identificador de chave já existe, uma mensagem de erro vai retornar os
detalhes do identificador de chave. Se isso acontecer, verifique se você tem apenas
um bloco criando o identificador de chave. É possível reutilizar o identificador de chave usando
o ID (KEY_HANDLE
) para criar outros segredos que precisam
compartilhar a chave.
O Cloud KMS não permite que você exclua
recursos KeyHandle
. Se você estiver usando um padrão de criação e destruição, a tentativa
de recriar um KeyHandle
produzirá um erro ALREADY_EXISTS
. Para evitar esse
problema, importe um KeyHandle
criado anteriormente. Para mais informações,
consulte Criar e destruir padrões no Terraform nesta
página.
API
Solicite uma nova chave do Cloud KMS criando um
KeyHandle
:curl -H "Content-Type: application/json" \ -H "X-Goog-User-Project: USER_PROJECT" \ -H "Authorization: Bearer TOKEN" \ -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \ -d '{"resource_type_selector": "RESOURCE_TYPE"}'
Substitua:
USER_PROJECT
: o projeto a ser faturado com as cobranças associadas a essa solicitação.RESOURCE_PROJECT_ID
: o ID do projeto de recurso na pasta Autokey em que você quer criar um recurso protegido.LOCATION
: o local em que você quer criar o recurso protegido.RESOURCE_TYPE
: o tipo de recurso que você quer criar, por exemplo,secretmanager.googleapis.com/Secret
.
O resultado será assim:
{ "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata" } }
Anote o
OPERATION_ID
da saída. Você precisa desse valor para receber o ID do recurso da chave criada.Se você tentar criar um identificador de chave para um segredo no mesmo projeto e local em que um identificador de chave já existe, uma mensagem de erro vai retornar os detalhes do identificador de chave atual. Nesse caso, pule a próxima etapa e use o ID do recurso da chave no campo
existingKmsKey
para proteger seu novo segredo.Encontre a chave do Cloud KMS associada ao identificador de chave:
curl -H "X-Goog-User-Project: USER_PROJECT" \ -H "Authorization: Bearer TOKEN" \ -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Substitua:
USER_PROJECT
: o projeto a ser faturado com as cobranças associadas a essa solicitação.RESOURCE_PROJECT_ID
: o ID do projeto de recurso na pasta Autokey em que você quer criar um recurso protegido.LOCATION
: o local em que você quer criar o recurso protegido.OPERATION_ID
: o identificador da operação de solicitação de identificador de chave da saída da etapa anterior.
O resultado será assim:
{ "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "done": true, "response": { "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle", "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE", "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME", "resourceTypeSelector": "RESOURCE_TYPE" } }
O valor do elemento
kmsKey
na saída é o ID completo do recurso da chave criada pelo Autokey para esse recurso. É possível usar esse ID do recurso da mesma forma que você usaria o ID do recurso para qualquer outro recurso do Cloud KMS.Crie um secret criptografado com replicação automática usando o comando
gcloud secrets create
com a flag--kms-key-name
.gcloud secrets create "SECRET_ID" \ --replication-policy "automatic" \ --kms-key-name "projects/KEY_PROJECT_ID/locations/global/keyRings/autokey/cryptoKeys/KEY_NAME" \ --project "RESOURCE_PROJECT_ID"
Substitua:
SECRET_ID
: o ID a ser usado para o novo secret.KEY_PROJECT_ID
: o ID do projeto principal.KEY_NAME
: o nome da chave retornada na saída da etapa anterior.RESOURCE_PROJECT_ID
: o ID do projeto de recurso na pasta Autokey em que você quer criar um recurso protegido.
Padrões de criação e destruição no Terraform
O Cloud KMS não permite que você exclua recursos KeyHandle
. Se você estiver usando o Terraform e um padrão de criação e destruição, a tentativa de recriar um KeyHandle
vai produzir um erro ALREADY_EXISTS
. Para evitar esse problema, use um
bloco import
. Insira o bloco abaixo antes do
resource
para o recurso google_kms_key_handle
:
import {
to = google_kms_key_handle.KEY_HANDLE
id = "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE"
}