Crea recursos protegidos con Autokey de Cloud KMS

En esta página, se muestra cómo crear recursos protegidos mediante claves creadas por Autokey de Cloud KMS para la encriptación. Para obtener más información sobre Autokey, consulta Descripción general de Autokey.

Antes de comenzar

Si quieres obtener los permisos que necesitas para usar Autokey a fin de crear recursos protegidos, pídele a tu administrador que te otorgue el usuario de Autokey de Cloud KMS (roles/cloudkms.autokeyUser) en la carpeta o el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Es posible que también puedas obtener los permisos necesarios a través de funciones personalizadas o, también, otras funciones predefinidas.

También necesitas permisos para crear recursos en la carpeta de Autokey o en un proyecto de recursos dentro de la carpeta. Si quieres obtener más información sobre los permisos necesarios para crear cada recurso, consulta la documentación específica del servicio. Para encontrar esta documentación, localiza el servicio en la tabla de integraciones de CMEK y visita el vínculo del tipo de recurso que deseas crear.

Usa Autokey con recursos de Compute Engine

Autokey crea una clave nueva para cada disco, imagen e imagen de máquina en la misma ubicación que el recurso que se está creando.

Autokey no crea claves nuevas para las instantáneas. Las instantáneas deben usar la misma clave que se usó para encriptar el disco. Si creas una instantánea con Google Cloud Console, la clave de encriptación que usa el disco se aplica de forma automática a la instantánea. Si creas una instantánea con gcloud CLI, Terraform o la API de Cloud KMS, debes identificar la clave que se usó para encriptar el disco y usarla para encriptar la instantánea.

Para obtener más información sobre el uso de CMEK con instantáneas, consulta Crea una instantánea desde un disco encriptado con CMEK.

Crea un recurso protegido de Compute Engine

Console

Para crear un disco, completa los siguientes pasos:

  1. En la consola de Google Cloud, ve a la página Discos.

    Ir a Discos

  2. Haz clic en Crear disco y, luego, escribe las propiedades del disco nuevo.

  3. En Encriptación, selecciona Clave de Cloud KMS.

  4. En Tipo de clave, selecciona Cloud KMS con Autokey y, luego, haz clic en Solicitar una clave nueva. Un mensaje indica cuando tu clave se creó correctamente y está lista para usarse.

  5. Para terminar de crear el disco, haz clic en Crear.

Puedes seguir un proceso similar para crear recursos protegidos de instancia de VM, imagen y, también, imagen de máquina.

Terraform

En la siguiente muestra de Terraform, se crea un controlador de clave y se usa la clave que se muestra para proteger un recurso de disco persistente nuevo:

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 = my_key_handle.kms_key
  }
}

Reemplaza lo siguiente:

  • RESOURCE_PROJECT_ID: Es el ID del proyecto del recurso dentro de la carpeta de Autokey en la que deseas crear un recurso protegido.
  • KEY_HANDLE: Es un ID que se usará para el controlador de clave.
  • LOCATION: Es la ubicación en la que deseas crear el recurso protegido.
  • DISK_NAME: Es el nombre del disco nuevo.
  • ZONE: Es la zona del recurso protegido. Debe ser una zona dentro de la ubicación en la que crearás el recurso. Por ejemplo, si creas el recurso en la ubicación us-central1, la zona podría ser us-central1-a.

API

  1. Para solicitar una clave nueva de Cloud KMS, crea un 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"}'
    

    Reemplaza lo siguiente:

    • USER_PROJECT: Es el proyecto al que se facturarán los cargos asociados con esta solicitud.
    • RESOURCE_PROJECT_ID: Es el ID del proyecto de recurso dentro de la carpeta de Autokey en la que deseas crear un recurso protegido.
    • LOCATION: Es la ubicación en la que deseas crear el recurso protegido.
    • RESOURCE_TYPE: Es el tipo de recurso que deseas crear, por ejemplo, compute.googleapis.com/Disk.

    El resultado es similar al siguiente:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    Toma nota del OPERATION_ID del resultado. Necesitas este valor para obtener el ID de recurso de la clave creada.

  2. Busca la clave de Cloud KMS asociada con el controlador de clave:

    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
    

    Reemplaza lo siguiente:

    • USER_PROJECT: Es el proyecto al que se facturarán los cargos asociados con esta solicitud.
    • RESOURCE_PROJECT_ID: Es el ID del proyecto de recurso dentro de la carpeta de Autokey en la que deseas crear un recurso protegido.
    • LOCATION: Es la ubicación en la que deseas crear el recurso protegido.
    • OPERATION_ID: Es el identificador de la operación de solicitud del controlador de clave del resultado del paso anterior.

    El resultado es similar al siguiente:

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

    El valor del elemento kmsKey en el resultado es el ID de recurso completo de la clave que crea Autokey para este recurso. Puedes usar este ID de recurso de la misma manera en que usarías el ID de recurso para cualquier otro recurso de Cloud KMS.

  3. Crea un disco encriptado con el comando gcloud compute disks create y la marca --kms-key:

    gcloud compute disks create DISK_NAME \
      --kms-key projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME
    

    Reemplaza lo siguiente:

    • DISK_NAME: Es el nombre del disco nuevo.
    • KEY_PROJECT_ID: Es el ID del proyecto clave.
    • LOCATION: Es la ubicación en la que deseas crear el recurso.
    • KEY_NAME: Es el nombre de la clave que se muestra en el resultado del paso anterior.

Usa Autokey con recursos de Cloud Storage

Autokey crea una clave nueva en la misma ubicación que el bucket. La clave que crea Autokey se asigna como la clave predeterminada del bucket.

Autokey no crea claves para objetos. De forma predeterminada, los objetos creados en un bucket usan la clave predeterminada del bucket. Si deseas encriptar un objeto con una clave que no sea la predeterminada del bucket, puedes crear una CMEK de forma manual y usarla cuando crees el objeto.

Si deseas cambiar la clave predeterminada asignada a un bucket, puedes usar cualquier CMEK existente, incluidas las claves creadas por Autokey.

Crea un recurso protegido de Cloud Storage

Console

  1. En la consola de Google Cloud, ve a la página Crear un bucket.

    Ir a Crear un bucket

  2. Sigue las instrucciones para crear un bucket nuevo hasta llegar a Elige cómo proteger los datos de objetos.

  3. En Elige cómo proteger los datos de objetos, expande la sección Encriptación de datos y, luego, selecciona Clave de Cloud KMS.

  4. En Tipo de clave, selecciona Cloud KMS con Autokey y, luego, haz clic en Solicitar una clave nueva. Un mensaje indica cuando tu clave se creó correctamente y está lista para usarse.

  5. Para terminar de crear el bucket, haz clic en Crear.

Terraform

En la siguiente muestra de Terraform, se crea un controlador de clave y se usa la clave que se muestra para proteger un bucket de almacenamiento nuevo:

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      = my_key_handle.kms_key
  }
}

Reemplaza lo siguiente:

  • RESOURCE_PROJECT_ID: Es el ID del proyecto del recurso dentro de la carpeta de Autokey en la que deseas crear un recurso protegido.
  • KEY_HANDLE: Es un ID que se usará para el controlador de clave.
  • LOCATION: Es la ubicación en la que deseas crear el recurso protegido.
  • BUCKET_NAME: Es el nombre del bucket nuevo.

API

  1. Para solicitar una clave nueva de Cloud KMS, crea un 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"}'
    

    Reemplaza lo siguiente:

    • USER_PROJECT: Es el proyecto al que se facturarán los cargos asociados con esta solicitud.
    • RESOURCE_PROJECT_ID: Es el ID del proyecto de recurso dentro de la carpeta de Autokey en la que deseas crear un recurso protegido.
    • LOCATION: Es la ubicación en la que deseas crear el recurso protegido.
    • RESOURCE_TYPE: Es el tipo de recurso que deseas crear, por ejemplo, storage.googleapis.com/Bucket.

    El resultado es similar al siguiente:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    Toma nota del OPERATION_ID del resultado. Necesitas este valor para obtener el ID de recurso de la clave creada.

  2. Busca la clave de Cloud KMS asociada con el controlador de clave:

    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
    

    Reemplaza lo siguiente:

    • USER_PROJECT: Es el proyecto al que se facturarán los cargos asociados con esta solicitud.
    • RESOURCE_PROJECT_ID: Es el ID del proyecto de recurso dentro de la carpeta de Autokey en la que deseas crear un recurso protegido.
    • LOCATION: Es la ubicación en la que deseas crear el recurso protegido.
    • OPERATION_ID: Es el identificador de la operación de solicitud del controlador de clave del resultado del paso anterior.

    El resultado es similar al siguiente:

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

    El valor del elemento kmsKey en el resultado es el ID de recurso completo de la clave que crea Autokey para este recurso. Puedes usar este ID de recurso de la misma manera que usarías el ID de recurso para cualquier otro recurso de Cloud KMS.

  3. Crea un bucket encriptado con el comando gcloud storage buckets create, con la marca --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
    

    Reemplaza lo siguiente:

    • BUCKET_NAME: Es el nombre del bucket nuevo. El nombre del bucket debe cumplir con los requisitos para asignar nombres a los buckets.
    • LOCATION: Es la ubicación en la que deseas crear el bucket.
    • KEY_PROJECT_ID: Es el ID del proyecto clave.
    • LOCATION: Es la ubicación en la que deseas crear el recurso.
    • KEY_NAME: Es el nombre de la clave que se muestra en el resultado del paso anterior.

Usa Autokey con recursos de BigQuery

Cloud KMS está disponible en varias ediciones de BigQuery. Asegúrate de que la edición de BigQuery que usas sea compatible con Cloud KMS antes de intentar usar Autokey para proteger los recursos de BigQuery. Para obtener más información sobre las ediciones de BigQuery, consulta Información sobre las ediciones de BigQuery.

Para cada conjunto de datos nuevo, Autokey crea una clave nueva en la misma ubicación que el recurso, que se convierte en la clave predeterminada del conjunto de datos.

Autokey no crea claves para tablas, consultas, tablas temporales ni modelos. De forma predeterminada, estos recursos están protegidos por la clave predeterminada del conjunto de datos. Si deseas proteger un recurso de un conjunto de datos con una clave distinta de la predeterminada, puedes crear una CMEK de forma manual y usarla cuando crees el recurso.

Para las consultas y las tablas temporales que no están dentro de un conjunto de datos, usa las claves predeterminadas del proyecto. Usa una clave predeterminada diferente para cada ubicación del proyecto que contenga recursos de BigQuery. Para obtener más información sobre cómo usar las claves predeterminadas del proyecto, consulta Configura una clave predeterminada del proyecto.

Para obtener más información sobre el uso de CMEK con BigQuery, consulta Claves de Cloud KMS administradas por el cliente.

Crea un recurso protegido de BigQuery

Console

Antes de intentar crear un conjunto de datos de BigQuery con Autokey, asegúrate de tener los permisos necesarios. Para obtener más información sobre la creación de conjuntos de datos, consulta Crea conjuntos de datos.

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a BigQuery

  2. Sigue las instrucciones para Crear un conjunto de datos hasta llegar a Opciones avanzadas > Encriptación.

  3. En Encriptación, selecciona Clave de Cloud KMS.

  4. En Tipo de clave, selecciona Cloud KMS con Autokey y, luego, haz clic en Solicitar una clave nueva. Un mensaje indica cuando tu clave se creó correctamente y está lista para usarse.

  5. Para terminar de crear el conjunto de datos, haz clic en Crear conjunto de datos.

Terraform

En la siguiente muestra de Terraform, se crea un controlador de clave y se usa la clave que se muestra para proteger un conjunto de datos nuevo:

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" {
  dataset_id                  = "DATASET_ID"
  friendly_name               = "DATASET_NAME"
  description                 = "DATASET_DESCRIPTION"
  location                    = "LOCATION"
  default_table_expiration_ms = 3600000

  default_encryption_configuration {
    kms_key_name = my_key_handle.kms_key
  }
}

Reemplaza lo siguiente:

  • RESOURCE_PROJECT_ID: Es el ID del proyecto del recurso dentro de la carpeta de Autokey en la que deseas crear un recurso protegido.
  • LOCATION: Es la ubicación en la que deseas crear el recurso protegido.
  • DATASET_ID: Es el ID que se usará para el conjunto de datos nuevo.
  • DATASET_NAME: Es un nombre sencillo para el conjunto de datos nuevo.
  • DATASET_DESCRIPTION: Es una descripción para el nuevo conjunto de datos.

API

  1. Para solicitar una clave nueva de Cloud KMS, crea un 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"}'
    

    Reemplaza lo siguiente:

    • USER_PROJECT: Es el proyecto al que se facturarán los cargos asociados con esta solicitud.
    • RESOURCE_PROJECT_ID: Es el ID del proyecto de recurso dentro de la carpeta de Autokey en la que deseas crear un recurso protegido.
    • LOCATION: Es la ubicación en la que deseas crear el recurso protegido.
    • RESOURCE_TYPE: Es el tipo de recurso que deseas crear, por ejemplo, bigquery.googleapis.com/Dataset.

    El resultado es similar al siguiente:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    Toma nota del OPERATION_ID del resultado. Necesitas este valor para obtener el ID de recurso de la clave creada.

  2. Busca la clave de Cloud KMS asociada con el controlador de clave:

    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
    

    Reemplaza lo siguiente:

    • USER_PROJECT: Es el proyecto al que se facturarán los cargos asociados con esta solicitud.
    • RESOURCE_PROJECT_ID: Es el ID del proyecto de recurso dentro de la carpeta de Autokey en la que deseas crear un recurso protegido.
    • LOCATION: Es la ubicación en la que deseas crear el recurso protegido.
    • OPERATION_ID: Es el identificador de la operación de solicitud del controlador de clave del resultado del paso anterior.

    El resultado es similar al siguiente:

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

    El valor del elemento kmsKey en el resultado es el ID de recurso completo de la clave que crea Autokey para este recurso. Puedes usar este ID de recurso de la misma manera que usarías el ID de recurso para cualquier otro recurso de Cloud KMS.

  3. Crea un conjunto de datos encriptado mediante el comando bq mk con la marca --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
    

    Reemplaza lo siguiente:

    • LOCATION: Es la ubicación en la que deseas crear el conjunto de datos.
    • KEY_PROJECT_ID: Es el ID del proyecto clave.
    • KEY_NAME: Es el nombre de la clave que se muestra en el resultado del paso anterior.
    • TABLE_EXPIRATION: Es la vida útil predeterminada, en segundos, de las tablas nuevas en este conjunto de datos.
    • DATASET_DESCRIPTION: Es una descripción para el nuevo conjunto de datos.
    • RESOURCE_PROJECT_ID: Es el ID del proyecto de recurso dentro de la carpeta de Autokey en la que deseas crear un recurso protegido.
    • DATASET_ID: Es el ID del conjunto de datos que estás creando.

    Para obtener más información sobre la herramienta de bq, consulta Explora la herramienta de línea de comandos de bq.

Usa Autokey con recursos de Secret Manager

Autokey crea una clave única para proteger todos los secretos del mismo proyecto y la misma ubicación. Cuando la clave rota, los secretos nuevos que se agreguen al proyecto usarán la versión principal nueva de la clave.

Secret Manager solo es compatible con Autokey de Cloud KMS cuando se crean recursos con Terraform o la API de REST.

Crea un recurso protegido de Secret Manager

Terraform

En la siguiente muestra de Terraform, se crea un controlador de clave y se usa la clave que se muestra para proteger un secreto nuevo con replicación 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" {
  secret_id = "SECRET_ID"

  replication {
    auto {
      customer_managed_encryption {
        kms_key_name = my_key_handle.kms_key
      }
    }
  }
}

Reemplaza lo siguiente:

  • RESOURCE_PROJECT_ID: Es el ID del proyecto del recurso dentro de la carpeta de Autokey en la que deseas crear un recurso protegido.
  • SECRET_ID: Es el ID que se usará para el secreto nuevo.

Si intentas crear un controlador de clave para un secreto en el mismo proyecto y en la misma ubicación para los que ya existe un identificador de clave, aparecerá un mensaje de error con los detalles del identificador de clave existente. Si esto sucede, asegúrate de que solo un bloque cree el controlador de clave. Puedes volver a usar el controlador de clave con su ID (KEY_HANDLE) para crear secretos adicionales que deberían compartir la clave.

API

  1. Para solicitar una clave nueva de Cloud KMS, crea un 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"}'
    

    Reemplaza lo siguiente:

    • USER_PROJECT: Es el proyecto al que se facturarán los cargos asociados con esta solicitud.
    • RESOURCE_PROJECT_ID: Es el ID del proyecto de recurso dentro de la carpeta de Autokey en la que deseas crear un recurso protegido.
    • LOCATION: Es la ubicación en la que deseas crear el recurso protegido.
    • RESOURCE_TYPE: Es el tipo de recurso que deseas crear, por ejemplo, secretmanager.googleapis.com/Secret.

    El resultado es similar al siguiente:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    Toma nota del OPERATION_ID del resultado. Necesitas este valor para obtener el ID de recurso de la clave creada.

    Si intentas crear un controlador de clave para un secreto en el mismo proyecto y en la misma ubicación para los que ya existe un identificador de clave, aparecerá un mensaje de error con los detalles del controlador de clave existente. En este caso, omite el siguiente paso y usa el ID de recurso de la clave en el campo existingKmsKey para proteger tu secreto nuevo.

  2. Busca la clave de Cloud KMS asociada con el controlador de clave:

    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
    

    Reemplaza lo siguiente:

    • USER_PROJECT: Es el proyecto al que se facturarán los cargos asociados con esta solicitud.
    • RESOURCE_PROJECT_ID: Es el ID del proyecto de recurso dentro de la carpeta de Autokey en la que deseas crear un recurso protegido.
    • LOCATION: Es la ubicación en la que deseas crear el recurso protegido.
    • OPERATION_ID: Es el identificador de la operación de solicitud del controlador de clave del resultado del paso anterior.

    El resultado es similar al siguiente:

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

    El valor del elemento kmsKey en el resultado es el ID de recurso completo de la clave que crea Autokey para este recurso. Puedes usar este ID de recurso de la misma manera que usarías el ID de recurso para cualquier otro recurso de Cloud KMS.

  3. Crea un secreto encriptado con replicación automática mediante el comando gcloud secrets create, con la marca --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"
    

    Reemplaza lo siguiente:

    • SECRET_ID: Es el ID que se usará para el secreto nuevo.
    • KEY_PROJECT_ID: Es el ID del proyecto clave.
    • KEY_NAME: Es el nombre de la clave que se muestra en el resultado del paso anterior.
    • RESOURCE_PROJECT_ID: Es el ID del proyecto de recurso dentro de la carpeta de Autokey en la que deseas crear un recurso protegido.

¿Qué sigue?