Criar secrets regionais

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

  1. Ative a API Secret Manager uma vez por projeto.
  2. Atribua o papel Administrador do Secret Manager (roles/secretmanager.admin) no projeto, na pasta ou na organização.
  3. 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:

  1. Verifique se você está usando a Google Cloud CLI 402.0.0 ou uma versão mais recente.

  2. 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

  1. Acesse a página do Secret Manager no console do Google Cloud:

    Acessar o Secret Manager

  2. Clique na guia Secrets regionais e depois em Criar secret regional.

  3. 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.

  4. 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.

  5. Selecione um local em Região lista.

  6. 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

  1. Acesse a página do Secret Manager no console do Google Cloud:

    Acessar o Secret Manager

  2. Clique na guia Secrets regionais e depois em Criar secret regional.

  3. Digite um nome e um valor de secret.

  4. Selecione um local em Região lista.

  5. 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.

  6. 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 secret
  • SECRET_NAME: o nome do secret
  • VERSION_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:

A seguir