Esta página descreve como pode criar novos segredos com chaves de encriptação geridas pelo cliente (CMEK) e atualizar os segredos existentes para usar chaves CMEK.
Vista geral
A CMEK adiciona uma camada adicional de segurança e controlo sobre os seus dados confidenciais armazenados como segredos regionais. Pode usar as CMEK para atingir os seguintes objetivos:
- Ter controlo total sobre as chaves de encriptação usadas para proteger os seus segredos.
- Use o seu próprio sistema de gestão de chaves com políticas de segurança potencialmente mais rigorosas, capacidades de auditoria e funcionalidades de conformidade.
- Aja em conformidade com os regulamentos de soberania dos dados mantendo as chaves na sua própria infraestrutura.
- Defina controlos de acesso detalhados para as suas chaves de encriptação, especificando quem as pode usar e para que fins.
Limitações:
A utilização de CMEK com segredos regionais tem as seguintes limitações:
- O serviço de gestão de chaves na nuvem Autokey (pré-visualização) não é suportado para segredos regionais.
- A localização da chave CMEK tem de ser a mesma que a localização do segredo regional.
Antes de começar
- Ative a API Secret Manager, uma vez por projeto.
- Atribua a função de administrador do Secret Manager (
roles/secretmanager.admin
) no projeto, na pasta ou na organização. Autentique-se na API Secret Manager de uma das seguintes formas:
- Se usar bibliotecas cliente para aceder à API Secret Manager, configure as Credenciais padrão da aplicação.
- Se usar a CLI Google Cloud para aceder à Secret Manager API, use as suas credenciais da CLI Google Cloud para autenticar.
- Para autenticar uma chamada REST, use as credenciais da CLI do Google Cloud ou as Credenciais padrão da aplicação.
Para ativar a CMEK e criar as chaves CMEK e os conjuntos de chaves necessários para este passo, consulte o artigo Ative chaves de encriptação geridas pelo cliente para o Secret Manager.
Crie um segredo regional com encriptação CMEK
Para criar um novo segredo com encriptação CMEK, use um dos seguintes métodos:
Consola
-
Na Google Cloud consola, aceda à página Secret Manager.
-
Na página Secret Manager, clique no separador Segredos regionais e, de seguida, clique em Criar segredo regional.
-
Na página Criar segredo regional, introduza um nome para o segredo no campo Nome. Um nome de secret pode conter letras maiúsculas e minúsculas, números, hífenes e sublinhados. O comprimento máximo permitido para um nome é de 255 carateres.
-
Introduza um valor para o segredo (por exemplo,
abcd1234
). O valor do segredo pode estar em qualquer formato, mas não pode ser superior a 64 KiB. Também pode carregar um ficheiro de texto que contenha o valor secreto através da opção Carregar ficheiro. Esta ação cria automaticamente a versão do Secret. -
Escolha a localização onde quer que o seu segredo regional seja armazenado na lista Região.
-
Em Encriptação, selecione Chave de encriptação gerida pelo cliente (CMEK) e, de seguida, escolha a sua chave CMEK na lista Chave de encriptação. Certifique-se de que a chave CMEK existe na localização especificada e que o projeto do Secret Manager tem as autorizações necessárias para usar a chave.
-
Clique em Criar segredo.
gcloud
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
- SECRET_ID: o ID do segredo ou o identificador totalmente qualificado do segredo
- LOCATION: a Google Cloud localização onde quer criar o segredo
- CMEK_KEY: o caminho totalmente qualificado para a chave CMEK específica no Cloud Key Management Service que vai proteger o segredo
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets create SECRET_ID --location=LOCATION \ --regional-kms-key-name=CMEK_KEY
Windows (PowerShell)
gcloud secrets create SECRET_ID --location=LOCATION ` --regional-kms-key-name=CMEK_KEY
Windows (cmd.exe)
gcloud secrets create SECRET_ID --location=LOCATION ^ --regional-kms-key-name=CMEK_KEY
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: a Google Cloud localização onde quer criar o segredo.
- PROJECT_ID: o Google Cloud ID do projeto.
- SECRET_ID: o ID do segredo ou o identificador totalmente qualificado do segredo.
- KMS_PROJECT_ID: o ID do seu Google Cloud projeto que está a executar o Cloud Key Management Service.
- KMS_KEY_LOCATION: o nome da localização da sua chave do Cloud KMS. Tem de ser a mesma localização que o seu segredo.
- YOUR_KEY_RING: o nome do conjunto de chaves no Cloud KMS onde armazenou a sua chave CMEK.
- YOUR_CMEK_KEY: a chave de encriptação gerida pelo cliente (CMEK) específica que criou no conjunto de chaves escolhido no Cloud KMS.
Método HTTP e URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID
Corpo JSON do pedido:
{"customer_managed_encryption": {"kms_key_name": "projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/YOUR_KEY_RING/cryptoKeys/YOUR_CMEK_KEY"}}
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID", "createTime": "2024-03-27T13:30:07.437859Z", "etag": "\"1614a467b60423\"" "customerManagedEncryption": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/secret-manager-cmek/cryptoKeys/my-cmek-key" } }
Atualize um segredo existente para usar a CMEK
Para atualizar um segredo existente para usar as CMEK, use um dos seguintes métodos:
Consola
-
Na Google Cloud consola, aceda à página Secret Manager.
-
Na página Secret Manager, clique no separador Segredos regionais.
-
Para editar um segredo, use um dos seguintes métodos:
-
Localize o segredo na lista e clique no menu
Ações associado a esse segredo. No menu Ações, clique em Editar. -
Clique no nome do segredo para aceder à página de detalhes do segredo. Na página de detalhes do segredo, clique em
Editar segredo.
-
-
Na página Editar segredo, aceda à secção Encriptação.
-
Em Encriptação, selecione Chave de encriptação gerida pelo cliente (CMEK) e, de seguida, selecione a sua chave CMEK na lista Chave de encriptação. Certifique-se de que a chave CMEK existe na localização especificada e que o projeto do Secret Manager tem as autorizações necessárias para usar a chave.
-
Clique em Atualizar chave secreta.
gcloud
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
- SECRET_ID: o ID do segredo ou o identificador totalmente qualificado do segredo
- LOCATION: a Google Cloud localização do segredo
- CMEK_KEY: o caminho totalmente qualificado para a chave CMEK específica no Cloud Key Management Service que vai proteger o segredo
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets update SECRET_ID --location=LOCATION \ --regional-kms-key-name=CMEK_KEY
Windows (PowerShell)
gcloud secrets update SECRET_ID --location=LOCATION ` --regional-kms-key-name=CMEK_KEY
Windows (cmd.exe)
gcloud secrets update SECRET_ID --location=LOCATION ^ --regional-kms-key-name=CMEK_KEY
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: a Google Cloud localização do segredo.
- PROJECT_ID: o Google Cloud ID do projeto.
- SECRET_ID: o ID do segredo ou o identificador totalmente qualificado do segredo.
- KMS_PROJECT_ID: o ID do seu Google Cloud projeto que está a executar o Cloud Key Management Service.
- KMS_KEY_LOCATION: a localização da sua chave do Cloud KMS. Tem de ser a mesma localização que o seu segredo.
- YOUR_KEY_RING: o nome do conjunto de chaves no Cloud KMS onde armazenou a sua chave CMEK.
- YOUR_CMEK_KEY: a chave de encriptação gerida pelo cliente (CMEK) específica que criou no conjunto de chaves escolhido no Cloud KMS.
Método HTTP e URL:
PATCH https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=customer_managed_encryption
Corpo JSON do pedido:
{"customer_managed_encryption": {"kms_key_name": "projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/YOUR_KEY_RING/cryptoKeys/YOUR_CMEK_KEY"}}"
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=customer_managed_encryption"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=customer_managed_encryption" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID", "createTime": "2024-03-27T13:30:07.437859Z", "etag": "\"16211daf5f29c5\"" "customerManagedEncryption": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/secret-manager-cmek/cryptoKeys/my-cmek-key" } }