Crea recursos protegidos con la clave automática de Cloud KMS

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

Antes de comenzar

Si quieres obtener los permisos que necesitas para usar la clave automática y crear recursos protegidos, pídele a tu administrador que te otorgue el rol de IAM Usuario de clave automática 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 los roles personalizados o de otros roles predefinidos.

También necesitas permisos de creación de recursos en la carpeta 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, ubica el servicio en la tabla de integraciones de CMEK y visita el vínculo del tipo de recurso que quieres 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 crea.

La tecla automática 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 mediante la consola de Google Cloud, la clave de encriptación que usó 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 clave automática y, luego, haz clic en Solicitar una clave nueva. Un mensaje indica cuándo se creó correctamente la clave 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 imágenes de máquina, imágenes y instancias de VM.

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 Clave automática 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 que se encuentre 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. Crea un KeyHandle para solicitar una clave nueva de Cloud KMS:

    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 del recurso dentro de la carpeta Autokey en el 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 del recurso dentro de la carpeta Autokey en el 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 creada por 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 mediante el comando gcloud compute disks create con 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

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

Autokey no crea claves para objetos. 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 Clave automática.

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 que llegues 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 clave automática y, luego, haz clic en Solicitar una clave nueva. Un mensaje indica cuándo se creó correctamente la clave 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 Clave automática 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. Crea un KeyHandle para solicitar una clave nueva de Cloud KMS:

    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 del recurso dentro de la carpeta Autokey en el 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 del recurso dentro de la carpeta Autokey en el 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 creada por 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 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 seguir los requisitos de nomenclatura de 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 la clave automática 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.

La clave automática 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 en un conjunto de datos con una clave que no sea la predeterminada del conjunto de datos, 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 en el proyecto que contenga recursos de BigQuery. Para obtener más información sobre el uso de claves predeterminadas de proyecto, consulta Configura una clave predeterminada para el 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 Cómo crear 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 que llegues a Opciones avanzadas > Encriptación.

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

  4. En Tipo de clave, selecciona Cloud KMS con clave automática y, luego, haz clic en Solicitar una clave nueva. Un mensaje indica cuándo se creó correctamente la clave 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 Clave automática 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 conjunto de datos nuevo.

API

  1. Crea un KeyHandle para solicitar una clave nueva de Cloud KMS:

    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 del recurso dentro de la carpeta Autokey en el 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 del recurso dentro de la carpeta Autokey en el 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 creada por 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 conjunto de datos encriptado con 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 el ciclo de vida predeterminado de las tablas nuevas en este conjunto de datos, en segundos.
    • DATASET_DESCRIPTION: Es una descripción para el conjunto de datos nuevo.
    • RESOURCE_PROJECT_ID: Es el ID del proyecto del recurso dentro de la carpeta Autokey en el que deseas crear un recurso protegido.
    • DATASET_ID: Es el ID del conjunto de datos que vas a crear.

    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

La clave automática 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 agregan al proyecto usan la versión principal nueva de la clave.

Secret Manager solo es compatible con la clave automática 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 la 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 Clave automática 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 la misma ubicación en los que ya existe un controlador de clave, aparecerá un mensaje de error que mostrará los detalles del controlador de clave existente. Si esto sucede, asegúrate de tener solo un bloque que cree el controlador de clave. Puedes volver a usar el controlador de clave con su ID (KEY_HANDLE) para crear secretos adicionales que deban compartir la clave.

API

  1. Crea un KeyHandle para solicitar una clave nueva de Cloud KMS:

    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 del recurso dentro de la carpeta Autokey en el 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 la misma ubicación en los que ya existe un controlador 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 del recurso dentro de la carpeta Autokey en el 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 creada por 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 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 del recurso dentro de la carpeta Autokey en el que deseas crear un recurso protegido.

¿Qué sigue?