Crea Secrets regionales

En esta página, se describe cómo crear Secrets regionales y habilitar servicios administrados por el cliente claves de encriptación (CMEK) para Secrets regionales. Un secreto regional es un secreto (datos sensibles, como contraseñas o claves de API) que se almacena y administrarse dentro de una ubicación específica.

Antes de comenzar

  1. Habilita la API de Secret Manager una vez por proyecto.
  2. Asigna el rol Administrador de Secret Manager (roles/secretmanager.admin) en el proyecto, la carpeta o la organización.
  3. Autentícate en la API de Secret Manager de una de las siguientes maneras:

    • Si usas bibliotecas cliente para acceder a la API de Secret Manager, configura en Credencial predeterminada de la aplicación.
    • Si usas Google Cloud CLI para acceder a la API de Secret Manager, usa tus credenciales de Google Cloud CLI para autenticarte.
    • Para autenticar una llamada de REST, usa las credenciales de Google Cloud CLI o las credenciales predeterminadas de la aplicación.

Configura Secret Manager para usar un extremo regional

En esta sección, se describe cómo configurar extremos regionales para acceder a Secret Manager de Google Cloud. Los extremos regionales son extremos de solicitudes que solo permiten que las solicitudes continuaremos si el recurso afectado existe en la ubicación que especificó el extremo. Usar extremos regionales te permite ejecutar tus cargas de trabajo de manera que se cumplan las con requisitos de residencia y soberanía de los datos.

Los extremos regionales usan el siguiente formato:

SERVICE_NAME.LOCATION.rep.googleapis.com

Para usar extremos regionales, debes actualizar tu configuración con los del extremo del sistema según cómo accedas al servicio de Secret Manager.

gcloud

Si deseas configurar Google Cloud CLI para usar extremos regionales, completa los los siguientes pasos:

  1. Asegúrate de usar la versión 402.0.0 de Google Cloud CLI o una más reciente.

  2. Configura la propiedad api_endpoint_overrides/secretmanager en el extremo regional que usar:

    gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.LOCATION.rep.googleapis.com/

    Reemplaza LOCATION por el nombre de la ubicación admitida de Google Cloud. como me-central2.

REST

Para conectarte al servicio de Secret Manager con la API, reemplaza el URL genérica del extremo de API (https://secretmanager.googleapis.com/v1/) con el extremo regional específico que quieres usar. Los extremos regionales usan el con el siguiente formato:

https://secretmanager.LOCATION.rep.googleapis.com/v1/

Reemplaza LOCATION por el nombre de la ubicación admitida de Google Cloud. como me-central2.

Para ver qué ubicaciones se admiten, consulta Ubicaciones de Secret Manager.

Crea un Secret regional

Puedes crear Secrets regionales a través de la consola de Google Cloud. Por otro lado, puedes usar la API de Secret Manager o Google Cloud CLI.

Console

  1. Ve a la página Secret Manager en la consola de Google Cloud.

    Ir a Secret Manager

  2. Haz clic en la pestaña Secretos regionales y, luego, en Crear Secret regional.

  3. En la página Crear secreto regional, ingresa un nombre para el secreto. Name. El nombre de un secreto puede contener letras mayúsculas y minúsculas, números, guiones y guiones bajos. La longitud máxima permitida para un nombre es 255 caracteres.

  4. Ingresa un valor secreto. El valor del Secret puede tener cualquier formato, pero no debe ser mayor a 64 KiB. También puedes subir un archivo de texto con el valor secreto usando la opción Subir archivo. Esta acción crea automáticamente la versión del Secret.

  5. Selecciona una ubicación de la Región. lista.

  6. Haz clic en Crear secreto.

gcloud

Para crear un Secret regional, usa el Comando gcloud beta secret create.

Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

  • SECRET_ID: Es el ID del secreto o el identificador completamente calificado del secreto.
  • LOCATION: Es la ubicación de Google Cloud. en la que quieres almacenar los datos del Secret

Ejecuta el siguiente comando:

Linux, macOS o 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

La respuesta contiene el Secret regional recién creado.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: Es la ubicación de Google Cloud. en la que quieres almacenar los datos del Secret
  • PROJECT_ID: El ID del proyecto de Google Cloud
  • SECRET_ID: Es el ID del secreto o el identificador completamente calificado del secreto.

Método HTTP y URL:

POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID

Cuerpo JSON de la solicitud:

{}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "/projects/my-project/locations/me-central2/secrets/my-drz-secret",
  "createTime": "2024-03-25T08:24:13.153705Z",
  "etag": "\"161477e6071da9\""
}

Crea un Secret regional con encriptación CMEK

CMEK agrega una capa adicional de seguridad. y control sobre tus datos sensibles almacenados como Secrets regionales. Puedes usar CMEK para cumplir los siguientes objetivos:

  • Ten el control total de las claves de encriptación que se usan para proteger tus secretos.
  • Usa tu propio sistema de administración de claves con medidas de seguridad potencialmente más estrictas políticas de seguridad, capacidades de auditoría y funciones de cumplimiento.
  • Cumple con las reglamentaciones de soberanía de los datos manteniendo las claves dentro de tu propia infraestructura.
  • Define controles de acceso detallados para tus claves de encriptación y especifica quiénes pueden usarlos y con qué fines.

Para habilitar CMEK y crear las CMEK y los llaveros de claves que necesitas para este paso, consulta Habilita las claves de encriptación administradas por el cliente para Secret Manager.

Console

  1. Ve a la página Secret Manager en la consola de Google Cloud.

    Ir a Secret Manager

  2. Haz clic en la pestaña Secretos regionales y, luego, en Crear Secret regional.

  3. Ingresa un nombre y un valor para el secreto.

  4. Selecciona una ubicación de la Región. lista.

  5. En Encriptación, selecciona Clave de encriptación administrada por el cliente (CMEK) y, luego, elige tu clave CMEK de la lista Clave de encriptación. Asegúrate de que tu clave CMEK existe en la ubicación especificada y que tu proyecto de Secret Manager tenga los permisos necesarios para usarla.

  6. Haz clic en Crear secreto.

gcloud

Para crear un Secret regional, usa el Comando gcloud beta secret create.

Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

  • SECRET_ID: Es el ID del secreto o el identificador completamente calificado del secreto.
  • LOCATION: Es la ubicación de Google Cloud. en la que quieres almacenar los datos del Secret
  • CMEK KEY: Es la ruta completamente calificada a la clave CMEK específica en Cloud Key Management Service que protegerá el secreto.

Ejecuta el siguiente comando:

Linux, macOS o 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

La respuesta contiene el Secret regional recién creado.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: Es la ubicación de Google Cloud. en la que quieres almacenar los datos del Secret
  • PROJECT_ID: El ID del proyecto de Google Cloud
  • SECRET_ID: Es el ID del secreto o el identificador completamente calificado del secreto.
  • KMS_PROJECT_ID: Es el ID del proyecto de Google Cloud que contiene el llavero de claves.
  • KEY_RING: Es el nombre del llavero de claves en Cloud Key Management Service que contiene la clave.
  • YOUR_CMEK_KEY: La clave de encriptación administrada por el cliente (CMEK) específica que creaste en el llavero de claves elegido en Cloud Key Management Service

Método HTTP y URL:

POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID

Cuerpo JSON de la solicitud:

{"customer_managed_encryption": {"kms_key_name":"projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/MY_CMEK_KEY"}}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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"
  }
}

Usa la sintaxis correcta para recursos regionales

Cuando accedes a Secrets regionales y sus versiones con la API de Secret Manager o gcloud CLI, asegúrate de usar la sintaxis de recursos correcta mientras se realizan las llamadas a la API. Usa el siguiente ejemplo:

  • Sintaxis del Secret regional

    projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_NAME

  • Sintaxis de la versión del Secret regional

    projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_NAME/versions/VERSION_ID

Ingresa los siguientes valores:

  • LOCATION: Es la ubicación de Google Cloud en la que existe el secreto.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud que contiene el secreto.
  • SECRET_NAME: Es el nombre del secreto.
  • VERSION_ID: Es el número de versión o el alias relacionados con la versión específica del secreto.

Administra Secrets regionales

Interactúas con Secrets regionales y sus versiones, y realizas toda la administración operaciones (como establecer el vencimiento, la rotación, la adición de etiquetas y las anotaciones) en de la misma manera que la configuración global predeterminada Secret. Consulta la siguiente lista para conocer algunas de las tareas más usadas:

¿Qué sigue?