Nesta página, descrevemos como criar secrets regionais e ativar chaves gerenciadas pelo cliente de criptografia de chaves (CMEK, na sigla em inglês) para secrets regionais. Um secret regional refere-se a um secret (dados sensíveis, como senhas ou chaves de API) armazenado e gerenciados em um local específico.
Antes de começar
- Ative a API Secret Manager uma vez por projeto.
- Atribua o papel Administrador do Secret Manager (
roles/secretmanager.admin
) no projeto, na pasta ou na organização. Autentique-se na API Secret Manager usando uma das seguintes maneiras:
- Se você usa bibliotecas de cliente para acessar a API Secret Manager, defina Application Default Credentials.
- Se você usa a Google Cloud CLI para acessar a API Secret Manager, use suas credenciais da Google Cloud CLI para fazer a autenticação.
- Para autenticar uma chamada REST, use as credenciais da Google Cloud CLI ou o Application Default Credentials.
Configurar o Secret Manager para usar um endpoint regional
Nesta seção, descrevemos como configurar endpoints regionais para acessar o Secret Manager do Google Cloud. Os endpoints regionais são endpoints de solicitação que permitem apenas prossiga se o recurso afetado existir no local especificado pelo endpoint. O uso de endpoints regionais permite executar cargas de trabalho de maneira compatível com residência de dados e requisitos de soberania de dados.
Os endpoints regionais usam o seguinte formato:
SERVICE_NAME.LOCATION.rep.googleapis.com
Para usar endpoints regionais, atualize sua configuração com o endereço de endpoint, dependendo de como você acessa o serviço do Secret Manager.
gcloud
Se quiser configurar a Google Cloud CLI para usar endpoints regionais, conclua o etapas a seguir:
Verifique se você está usando a Google Cloud CLI 402.0.0 ou uma versão mais recente.
Defina a propriedade
api_endpoint_overrides/secretmanager
como o endpoint regional que você usar:gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.LOCATION.rep.googleapis.com/
Substitua LOCATION pelo nome do local compatível do Google Cloud. como
me-central2
.
REST
Para se conectar ao serviço Secret Manager usando a API, substitua o
o URL genérico do endpoint de API (https://secretmanager.googleapis.com/v1/
) com o
o endpoint regional que você quer usar. Os endpoints regionais usam o
formato:
https://secretmanager.LOCATION.rep.googleapis.com/v1/
Substitua LOCATION pelo nome do local compatível do Google Cloud.
como me-central2
.
Para saber quais locais são compatíveis, consulte Locais do Secret Manager.
Criar um secret regional
É possível criar secrets regionais usando o console do Google Cloud. Como alternativa, use a API Secret Manager ou a Google Cloud CLI.
Console
Acesse a página do Secret Manager no console do Google Cloud:
Clique na guia Secrets regionais e depois em Criar secret regional.
Na página Criar secret regional, insira um nome para o secret no Nome. Um nome de secret pode ter letras maiúsculas e minúsculas. números, hifens e sublinhados. O tamanho máximo permitido para um nome é 255 caracteres.
Insira um valor de secret. O valor do secret pode estar em qualquer formato, mas não pode ser maior que 64 KiB. Também é possível fazer upload de um arquivo de texto contendo o valor do secret usando a opção Fazer upload do arquivo. Essa ação cria automaticamente a versão do secret.
Selecione um local em Região lista.
Clique em Criar secret.
gcloud
Para criar um secret regional, use o gcloud beta secrets create.
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_ID: o ID do secret ou o identificador totalmente qualificado para o secret
- LOCATION: o local do Google Cloud em que você quer armazenar os dados do secret
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud secrets create SECRET_ID \ --location=LOCATION
Windows (PowerShell)
gcloud secrets create SECRET_ID ` --location=LOCATION
Windows (cmd.exe)
gcloud secrets create SECRET_ID ^ --location=LOCATION
A resposta contém o secret regional recém-criado.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: o local do Google Cloud em que você quer armazenar os dados do secret
- PROJECT_ID: o ID do projeto do Google Cloud
- SECRET_ID: o ID do secret ou o identificador totalmente qualificado para o secret
Método HTTP e URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID
Corpo JSON da solicitação:
{}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
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
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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
Você receberá uma resposta JSON semelhante a esta:
{ "name": "/projects/my-project/locations/me-central2/secrets/my-drz-secret", "createTime": "2024-03-25T08:24:13.153705Z", "etag": "\"161477e6071da9\"" }
Criar um secret regional com criptografia CMEK
A CMEK adiciona uma camada extra de segurança e controle sobre os dados sensíveis armazenados como secrets regionais. É possível usar a CMEK para atingir as seguintes metas:
- Tenha controle total sobre as chaves de criptografia usadas para proteger os secrets.
- Use seu próprio sistema de gerenciamento de chaves com uma segurança potencialmente mais rígida políticas, recursos de auditoria e recursos de conformidade.
- Cumpra os regulamentos de soberania de dados mantendo as chaves infraestrutura própria.
- Defina controles de acesso refinados para suas chaves de criptografia, especificando quem pode usá-los e para quais finalidades.
Para ativar a CMEK e criar as chaves e os keyrings de CMEK necessários para esta etapa, consulte Ative as chaves de criptografia gerenciadas pelo cliente para o Secret Manager.
Console
Acesse a página do Secret Manager no console do Google Cloud:
Clique na guia Secrets regionais e depois em Criar secret regional.
Selecione um local em Região lista.
Em Criptografia, selecione Chave de criptografia gerenciada pelo cliente (CMEK) e escolha sua chave CMEK na lista Chave de criptografia. Verifique se a chave CMEK no local especificado e que o projeto do Secret Manager tem as permissões necessárias para usá-lo.
Clique em Criar secret.
gcloud
Para criar um secret regional, use o gcloud beta secrets create.
Antes de usar os dados do comando abaixo, faça estas substituições:
- SECRET_ID: o ID do secret ou o identificador totalmente qualificado para o secret
- LOCATION: o local do Google Cloud em que você quer armazenar os dados do secret
- CMEK KEY: o caminho totalmente qualificado para a chave CMEK específica no Cloud Key Management Service que protegerá o secret
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
A resposta contém o secret regional recém-criado.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: o local do Google Cloud em que você quer armazenar os dados do secret
- PROJECT_ID: o ID do projeto do Google Cloud
- SECRET_ID: o ID do secret ou o identificador totalmente qualificado para o secret
- KMS_PROJECT_ID: o ID do projeto do Google Cloud que contém o keyring
- KEY_RING: o nome do keyring no Cloud Key Management Service que contém a chave
- YOUR_CMEK_KEY: a chave de criptografia gerenciada pelo cliente (CMEK) específica que você criou no keyring escolhido no Cloud Key Management Service
Método HTTP e URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID
Corpo JSON da solicitação:
{"customer_managed_encryption": {"kms_key_name":"projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/MY_CMEK_KEY"}}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
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
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/1034382619294/locations/me-central2/secrets/my-drz-secret", "createTime": "2024-03-27T13:30:07.437859Z", "etag": "\"1614a467b60423\"", "customerManagedEncryption": { "kmsKeyName": "projects/my-project/locations/me-central2/keyRings/test_keyring_to_check_rep/cryptoKeys/cmek-key-2" } }
Usar a sintaxe correta para recursos regionais
Quando você acessa secrets regionais e as versões deles usando a API Secret Manager ou a CLI gcloud, verifique se você está usando a sintaxe de recurso correta ao fazer as chamadas de API. Use o seguinte como exemplo:
Sintaxe para um secret regional
projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_NAME
Sintaxe para a versão de um secret regional
projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_NAME/versions/VERSION_ID
Forneça os valores a seguir:
LOCATION
: o local do Google Cloud em que o secret está.PROJECT_ID
: o ID do projeto do Google Cloud que contém o secretSECRET_NAME
: o nome do secretVERSION_ID
: número da versão ou alias relacionado à versão específica do secret
Gerenciar secrets regionais
Você interage com os secrets regionais e as versões deles e executa todo o gerenciamento (como definir expiração, rotação, adição de rótulos e anotações) no da mesma forma que o padrão global segredos. Consulte a lista a seguir para ver algumas tarefas usadas com frequência:
- Acessar uma versão do secret
- Listar secrets e ver detalhes do secret
- Editar um secret
- Criar programações de rotação
- Excluir um secret
- Adicionar uma versão do secret
- Mais detalhes da versão do secret
- Configurar notificações sobre um secret
A seguir
- Saiba mais sobre a geração de registros de auditoria.