Ejecuta tus propias autoridades de certificación y claves en GKE


En esta página, se muestra cómo configurar el plano de control de tu clúster de Google Kubernetes Engine (GKE) con las autoridades certificadoras (AC) y las claves que administras. Esta orientación está dirigida a los administradores de seguridad que tienen requisitos específicos de cumplimiento o políticas de la organización para controlar la emisión y firma de credenciales.

En esta página, se describe una parte de un conjunto de funciones opcionales del plano de control en GKE que te permiten realizar tareas como verificar la postura de seguridad del plano de control o configurar la encriptación y la firma de credenciales en el plano de control con las claves que administras. Para obtener más información, consulta Acerca de la autoridad del plano de control de GKE.

De forma predeterminada, Google Cloud aplica varias medidas de seguridad al plano de control administrado. En esta página, se describen las funciones opcionales que te brindan más visibilidad o control sobre el plano de control de GKE.

Ya deberías conocer los siguientes conceptos:

Componentes de credenciales del plano de control

Los clústeres de GKE usan AC y claves específicas para emitir credenciales en el clúster, como certificados X.509 o tokens de ServiceAccount. Puedes crear claves en Cloud Key Management Service (Cloud KMS) y AC en Certificate Authority Service (servicio de AC) y configurar tus clústeres para que usen estos recursos en lugar de las AC y las claves administradas por Google Cloud.

Para obtener más información sobre los componentes específicos que creas, consulta Claves y AC autoadministradas.

Uso con otras funciones de autoridad del plano de control de GKE

La autoridad del plano de control de GKE proporciona las siguientes funciones relacionadas con las claves administradas por el cliente:

Objetivos

  • Crea claves en Cloud KMS
  • Crea AC en el servicio de AC
  • Otorga roles de Identity and Access Management (IAM) al agente de servicio de GKE
  • Crea un clúster de GKE que use tus AC y claves
  • Verifica que el clúster use tus AC y claves

Costos

En este documento, usarás los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios. Es posible que los usuarios nuevos de Google Cloud califiquen para obtener una prueba gratuita.

Cuando finalices las tareas que se describen en este documento, puedes borrar los recursos que creaste para evitar que continúe la facturación. Para obtener más información, consulta Cómo realizar una limpieza.

Antes de comenzar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Make sure that billing is enabled for your Google Cloud project.

  5. Enable the Kubernetes Engine, Certificate Authority Service, and Cloud Key Management Service APIs:

    gcloud services enable container.googleapis.com privateca.googleapis.com cloudkms.googleapis.com
  6. Install the Google Cloud CLI.
  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Kubernetes Engine, Certificate Authority Service, and Cloud Key Management Service APIs:

    gcloud services enable container.googleapis.com privateca.googleapis.com cloudkms.googleapis.com
  10. Asegúrate de que tu entorno sea apto para usar las funciones de autoridad del plano de control de GKE. Para habilitar estas funciones, comunícate con tu equipo de ventas de Google Cloud .
  11. Para hacer un seguimiento confiable de la emisión y el uso de credenciales, asegúrate de que los siguientes registros de auditoría de acceso a los datos estén habilitados:
    • Cloud KMS: DATA_READ
    • Servicio de CA: ADMIN_READ y ADMIN_WRITE

    Para habilitar estos tipos de registros, consulta Habilita los registros de auditoría de acceso a los datos.

Roles y permisos requeridos

Para obtener los permisos que necesitas para ejecutar tus propias AC y claves, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Requisitos

Debes usar la versión 1.31.1-gke.1846000 de GKE o una posterior.

Limitaciones

Se aplica la siguiente limitación:

  • Solo puedes usar claves de Cloud KMS. No puedes usar otro proveedor de KMS ni otro proveedor de encriptación.
  • No se admiten las claves de Cloud External Key Manager (Cloud EKM).
  • Solo puedes usar AC del servicio de AC.

Prepare el entorno

En esta sección, identificarás los proyectos de Google Cloud que usarás en este instructivo y crearás un llavero en Cloud KMS para almacenar tus claves.

Identifica proyectos

Te recomendamos que uses proyectos Google Cloud separados de la siguiente manera:

  • Proyecto de claves: Contiene todas las claves y AC.
  • Proyecto del clúster: Contiene tus clústeres de GKE.

De manera opcional, puedes usar el mismo proyecto para tus claves, AC y clústeres de GKE, pero te recomendamos que uses proyectos separados para que los equipos que administran las operaciones criptográficas en tu organización estén separados de los equipos que administran las operaciones de clúster.

Crea un llavero de claves

Crea un llavero de claves en el proyecto de claves para contener todas las claves de un clúster específico. Debes crear el llavero de claves en la misma ubicación que tu clúster de GKE.

Ejecuta el siguiente comando:

gcloud kms keyrings create KEY_RING_NAME \
    --location=us-central1 \
    --project=KEY_PROJECT_ID

Reemplaza lo siguiente:

  • KEY_RING_NAME: Es un nombre para tu llavero de claves.
  • KEY_PROJECT_ID: Es el ID del proyecto de claves.

Crea claves

Para cada una de las autoridades de credenciales, como las claves de cuentas de servicio y las AC, debes crear una clave con Cloud KMS. En esta sección, se muestra cómo crear las claves que GKE usa para firmar y verificar credenciales en el clúster. Puedes especificar tus propias propiedades para estas claves según las necesidades de tu organización. Para obtener más información, consulta la página Crea una clave y la referencia de la API de projects.locations.keyRings.cryptoKeys.

Ten en cuenta lo siguiente cuando crees estos recursos en Cloud KMS:

  • Si tienes un llavero de claves existente en tu proyecto de claves, puedes usarlo para almacenar todas las claves que crees para usar con tu clúster.
  • Para minimizar la latencia, el llavero debe estar en la misma ubicación Google Cloud que el clúster.
  • Las claves deben especificar asymmetric-signing como el propósito de la clave.
  • Usa los siguientes algoritmos según el tipo de clave:
    • Claves de firma de ServiceAccount: Un algoritmo PKCS1 de firma RSA seguro, como rsa-sign-pkcs1-4096-sha256 o rsa-sign-pkcs1-3072-sha256.
    • Claves de la autoridad certificadora: Un algoritmo sólido como ec-sign-p256-sha256
  • Se admiten claves de hardware de Cloud HSM, pero el nivel de protección software es suficiente para la mayoría de los casos de uso. Para obtener detalles sobre las claves de hardware, consulta Cloud HSM.
  • No modifiques la duración predeterminada para la destrucción de claves.
  • GKE no te impide borrar las claves de Cloud KMS, incluso las claves de servicio de AC, que usa el clúster. Antes de borrar claves o AC, asegúrate de que los recursos no se usen.

Para crear tus claves, ejecuta los siguientes comandos:

  1. Crea la clave de firma de la cuenta de servicio de Kubernetes, que también especificas como la clave de verificación de la cuenta de servicio durante la creación del clúster:

    gcloud kms keys create sa-signing-key \
        --keyring=KEY_RING_NAME \
        --location=us-central1\
        --purpose="asymmetric-signing" \
        --protection-level=hsm \
        --default-algorithm=rsa-sign-pkcs1-4096-sha256 \
        --project=KEY_PROJECT_ID
    

    Reemplaza KEY_PROJECT_ID por el ID del proyecto de tu proyecto de claves dedicado.

  2. Crea la clave de AC raíz del clúster:

    gcloud kms keys create cluster-ca-key \
        --keyring=KEY_RING_NAME \
        --location=us-central1\
        --purpose="asymmetric-signing" \
        --protection-level=hsm \
        --default-algorithm=ec-sign-p256-sha256 \
        --project=KEY_PROJECT_ID
    
  3. Crea la clave de AC raíz del par de etcd:

    gcloud kms keys create etcd-peer-ca-key \
        --keyring=KEY_RING_NAME \
        --location=us-central1\
        --purpose="asymmetric-signing" \
        --protection-level=hsm \
        --default-algorithm=ec-sign-p256-sha256 \
        --project=KEY_PROJECT_ID
    
  4. Crea la clave de AC raíz de la API de etcd:

    gcloud kms keys create etcd-api-ca-key \
        --keyring=KEY_RING_NAME \
        --location=us-central1\
        --purpose="asymmetric-signing" \
        --protection-level=hsm \
        --default-algorithm=ec-sign-p256-sha256 \
        --project=KEY_PROJECT_ID
    
  5. Crea la clave de AC raíz de agregación:

    gcloud kms keys create aggregation-ca-key \
        --keyring=KEY_RING_NAME \
        --location=us-central1\
        --purpose="asymmetric-signing" \
        --protection-level=hsm \
        --default-algorithm=ec-sign-p256-sha256 \
        --project=KEY_PROJECT_ID
    

Crea las AC

Después de crear las claves para cada una de las funciones del plano de control, usa cada clave para crear los grupos de AC y las AC raíz correspondientes con el servicio de AC:

  1. Crea el grupo de AC del clúster:

    gcloud privateca pools create cluster-ca-pool \
        --location=us-central1 \
        --tier=enterprise \
        --project=KEY_PROJECT_ID \
        --no-publish-crl --no-publish-ca-cert
    

    Las marcas --no-publish-crl y --no-publish-ca-cert son opcionales. Si omites estas marcas, se publicarán certificados en un bucket de Cloud Storage. Para obtener más información, consulta Habilita la publicación de certificados de AC y CRL para las AC en un grupo de AC.

  2. Crea la AC raíz del clúster:

    gcloud privateca roots create cluster-root-ca \
        --pool=cluster-ca-pool \
        --location=us-central1 \
        --kms-key-version=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/cluster-ca-key/cryptoKeyVersions/1 \
        --subject="CN=cluster-ca, O=ORGANIZATION" \
        --project=KEY_PROJECT_ID \
        --auto-enable
    

    Reemplaza ORGANIZATION por el nombre de tu organización.

  3. Crea el grupo de AC de pares de etcd:

    gcloud privateca pools create etcd-peer-ca-pool \
        --location=us-central1 \
        --tier=enterprise \
        --project=KEY_PROJECT_ID \
        --no-publish-crl --no-publish-ca-cert
    
  4. Crea la AC raíz del par de etcd:

    gcloud privateca roots create etcd-peer-root-ca \
        --pool=etcd-peer-ca-pool \
        --location=us-central1 \
        --kms-key-version=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/etcd-peer-ca-key/cryptoKeyVersions/1 \
        --subject="CN=etcd-peer-ca, O=ORGANIZATION" \
        --project=KEY_PROJECT_ID \
        --auto-enable
    
  5. Crea el grupo de AC de la API de etcd:

    gcloud privateca pools create etcd-api-ca-pool \
        --location=us-central1 \
        --tier=enterprise \
        --project=KEY_PROJECT_ID \
        --no-publish-crl --no-publish-ca-cert
    
  6. Crea la AC raíz de la API de etcd:

    gcloud privateca roots create etcd-api-root-ca \
        --pool=etcd-api-ca-pool \
        --location=us-central1 \
        --kms-key-version=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/etcd-api-ca-key/cryptoKeyVersions/1 \
        --subject="CN=etcd-api-ca, O=ORGANIZATION" \
        --project=KEY_PROJECT_ID \
        --auto-enable
    
  7. Crea el grupo de AC de agregación:

    gcloud privateca pools create aggregation-ca-pool \
        --location=us-central1 \
        --tier=enterprise \
        --project=KEY_PROJECT_ID \
        --no-publish-crl --no-publish-ca-cert
    
  8. Crea la AC raíz de agregación:

    gcloud privateca roots create aggregation-root-ca \
        --pool=aggregation-ca-pool \
        --location=us-central1 \
        --kms-key-version=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/aggregation-ca-key/cryptoKeyVersions/1 \
        --subject="CN=aggregation-ca, O=ORGANIZATION" \
        --project=KEY_PROJECT_ID \
        --auto-enable
    

Otorga roles de IAM al agente de servicio de GKE

El agente de servicio de GKE requiere acceso a los recursos que creaste en Cloud KMS y en el servicio de AC. El agente de servicio usa estos recursos para firmar, verificar y emitir credenciales en el clúster. Puedes usar los siguientes roles predefinidos de IAM:

Para otorgar estos roles al agente de servicio de GKE, haz lo siguiente:

  1. Busca el número de proyecto de tu clúster:

    gcloud projects describe CLUSTER_PROJECT_ID \
        --format='value(projectNumber)'
    

    Reemplaza CLUSTER_PROJECT_ID por el ID del proyecto de tu proyecto de clúster.

  2. Otorga el rol de usuario de claves criptográficas de KMS de Kubernetes Engine en la clave de firma de la cuenta de servicio que creaste en Crea claves:

    gcloud kms keys add-iam-policy-binding sa-signing-key \
      --location=us-central1 \
      --keyring=KEY_RING_NAME \
      --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
      --role=roles/container.cloudKmsKeyUser \
      --project=KEY_PROJECT_ID
    

    Reemplaza CLUSTER_PROJECT_NUMBER por el número del proyecto del clúster.

  3. Otorga el rol de administrador de certificados del servicio de AC en los grupos de AC que creaste en Crea las AC:

    gcloud privateca pools add-iam-policy-binding cluster-ca-pool \
        --location=us-central1 \
        --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
        --role=roles/privateca.certificateManager \
        --project=KEY_PROJECT_ID
    
    gcloud privateca pools add-iam-policy-binding etcd-peer-ca-pool \
        --location=us-central1 \
        --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
        --role=roles/privateca.certificateManager \
        --project=KEY_PROJECT_ID
    
    gcloud privateca pools add-iam-policy-binding etcd-api-ca-pool \
        --location=us-central1 \
        --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
        --role=roles/privateca.certificateManager \
        --project=KEY_PROJECT_ID
    
    gcloud privateca pools add-iam-policy-binding aggregation-ca-pool \
        --location=us-central1 \
        --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
        --role=roles/privateca.certificateManager \
        --project=KEY_PROJECT_ID
    

Configura AC y claves en un clúster nuevo

Después de crear claves, grupos de AC, AC raíz y otorgar roles de IAM al agente de servicio de GKE, crea un clúster nuevo que use estos recursos.

Las marcas que especificas en el comando de creación de clústeres requieren las siguientes rutas de acceso a los recursos como valores:

  • Es la ruta de acceso a una versión de clave en Cloud KMS para la clave de firma de la cuenta de servicio que creaste en Crea claves. Especifica esta ruta de acceso para la marca service-account-signing-keys y para la marca service-account-verification-keys.
  • Es la ruta de acceso a cada uno de los grupos de AC que creaste en Crea las AC.

Para configurar un clúster nuevo que use tus claves y AC, sigue estos pasos:

  1. Busca la ruta de acceso a la versión más reciente de la clave de firma de la cuenta de servicio habilitada:

    gcloud kms keys versions list \
        --key=sa-signing-key \
        --keyring=KEY_RING_NAME \
        --location=us-central1 \
        --project=KEY_PROJECT_ID \
        --filter="STATE=ENABLED" --sort-by=~ --format="value(name)" | sed 1q
    

    Reemplaza KEY_PROJECT_ID por el ID del proyecto de claves.

    El resultado es similar a este:

    projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1
    
  2. Busca las rutas de acceso a cada uno de los grupos de AC que creaste:

    gcloud privateca pools list --format="get(name)" \
        --project=KEY_PROJECT_ID
    

    El resultado es similar a este:

    projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool
    projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool
    projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool
    projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool
    

    Asegúrate de que el resultado contenga todos los grupos de AC que creaste para GKE.

Crea un clúster

En esta sección, crearás un clúster con diferentes opciones especificadas según las funciones de autoridad del plano de control de GKE que desees configurar. Solo puedes configurar estas funciones en un clúster durante su creación. Los siguientes comandos crean clústeres en modo Autopilot. Para crear clústeres de modo estándar, usa las mismas marcas con el comando gcloud container clusters create.

  • Para configurar solo las AC y las claves que creaste en este instructivo, ejecuta el siguiente comando:

    gcloud container clusters create-auto example-cluster \
        --location=us-central1 \
        --project=CLUSTER_PROJECT_ID \
        --cluster-version=VERSION \
        --service-account-signing-keys=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1 \
        --service-account-verification-keys=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1 \
        --cluster-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool \
        --etcd-peer-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool \
        --etcd-api-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool \
        --aggregation-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool
    

    Reemplaza lo siguiente:

    • CLUSTER_PROJECT_ID: Es el ID del proyecto del clúster.
    • VERSION: Es la versión de GKE del clúster. Debe ser 1.31.1-gke.1846000 o una versión posterior.
  • Para configurar las AC y las claves, así como la encriptación del disco de arranque del plano de control y la encriptación de etcd, haz lo siguiente:

    1. Realiza todos los pasos de configuración de claves en Cómo encriptar etcd y los discos de inicio del plano de control.
    2. Para encontrar las rutas de acceso a cada una de las claves, sigue las instrucciones que se indican en Cómo usar claves de encriptación en un clúster.
    3. Crea un clúster:

      gcloud container clusters create-auto example-cluster \
          --location=us-central1 \
          --project=CLUSTER_PROJECT_ID \
          --cluster-version=VERSION \
          --service-account-signing-keys=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1 \
          --service-account-verification-keys=projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1 \
          --cluster-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool \
          --etcd-peer-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool \
          --etcd-api-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool \
          --aggregation-ca=projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool \
          --control-plane-disk-encryption-key=PATH_TO_DISK_KEY \
          --gkeops-etcd-backup-encryption-key=PATH_TO_ETCD_BACKUP_KEY
      

      Reemplaza lo siguiente:

      • CLUSTER_PROJECT_ID: Es el ID del proyecto del clúster.
      • VERSION: Es la versión de GKE del clúster. Debe ser 1.31.1-gke.1846000 o una versión posterior.
      • PATH_TO_DISK_KEY: Es la ruta de acceso a la clave de encriptación del disco.
      • PATH_TO_ETCD_BACKUP_KEY: Es la ruta de acceso a la clave de encriptación de la copia de seguridad interna de etcd.

    También puedes usar estas marcas cuando creas un clúster nuevo en modo estándar.

Verifica que el clúster use las claves y las AC especificadas

En esta sección, se muestra cómo verificar las claves y las AC que se usaron durante la creación del clúster. Puedes realizar esta verificación con Cloud Logging o con Google Cloud CLI.

Usa el registro para verificar las claves y las AC

Para verificar las claves y las AC con Logging, haz lo siguiente:

  1. En la consola de Google Cloud , ve a la página Explorador de registros:

    Ir al Explorador de registros

  2. Especifica la siguiente consulta:

    resource.type="gke_cluster"
    resource.labels.cluster_name="CLUSTER_NAME"
    resource.labels.location="CLUSTER_LOCATION"
    protoPayload.serviceName="container.googleapis.com"
    protoPayload.methodName=~"google.container.v(1|1alpha1|1beta1).ClusterManager.CreateCluster"
    protoPayload.request.cluster.userManagedKeysConfig:*
    

    protoPayload.request.cluster.userManagedKeysConfig:* filtra los resultados de los registros de creación de clústeres que incluyen las claves y las AC que administras.

  3. Haz clic en Ejecutar consulta.

En los resultados, expande el registro de creación de tu clúster. Verifica que las rutas de acceso a las claves y las AC sean las mismas que creaste para ese clúster, como en el siguiente ejemplo:

# lines omitted for clarity
userManagedKeysConfig: {
  aggregationCa: "projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool"
  clusterCa: "projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool"
  etcdApiCa: "projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool"
  etcdPeerCa: "projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool"
  serviceAccountSigningKeys: [
    0: "projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1"
  ]
  serviceAccountVerificationKeys: [
    0: "projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1"
  ]
}

Usa gcloud CLI para verificar las claves y las AC

Para verificar que el clúster use las AC y las claves que creaste, ejecuta el siguiente comando:

gcloud container clusters describe example-cluster \
    --location=us-central1 \
    --project=CLUSTER_PROJECT_ID

El resultado debe incluir el campo userManagedKeysConfig como en el siguiente ejemplo:

# lines omitted for clarity
userManagedKeysConfig:
  sa-signing-key: projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1
  sa-verification-key: projects/KEY_PROJECT_ID/locations/us-central1/keyRings/KEY_RING_NAME/cryptoKeys/sa-signing-key/cryptoKeyVersions/1
  cluster-ca: projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool
  etcd-peer-ca: projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool
  etcd-api-ca: projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool
  aggregation-ca: projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool

Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.

Borra los proyectos

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

Borra los recursos individuales

  1. Borra el clúster:

    gcloud container clusters delete example-cluster \
        --location=us-central1 \
        --project=CLUSTER_PROJECT_ID
    
  2. Inhabilita las AC raíz:

    gcloud privateca roots disable cluster-root-ca \
        --location=us-central1 \
        --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool \
        --project=KEY_PROJECT_ID
    
    gcloud privateca roots disable etcd-peer-root-ca \
        --location=us-central1 \
        --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool \
        --project=KEY_PROJECT_ID
    
    gcloud privateca roots disable etcd-api-root-ca \
        --location=us-central1 \
        --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool \
        --project=KEY_PROJECT_ID
    
    gcloud privateca roots disable aggregation-root-ca \
        --location=us-central1 \
        --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool \
        --project=KEY_PROJECT_ID
    
  3. Borra las AC raíz:

    gcloud privateca roots delete cluster-root-ca \
        --location=us-central1 \
        --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/cluster-ca-pool \
        --project=KEY_PROJECT_ID
    
    gcloud privateca roots delete etcd-peer-root-ca \
        --location=us-central1 \
        --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-peer-ca-pool \
        --project=KEY_PROJECT_ID
    
    gcloud privateca roots delete etcd-api-root-ca \
        --location=us-central1 \
        --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/etcd-api-ca-pool \
        --project=KEY_PROJECT_ID
    
    gcloud privateca roots delete aggregation-root-ca \
        --location=us-central1 \
        --pool=projects/KEY_PROJECT_ID/locations/us-central1/caPools/aggregation-ca-pool \
        --project=KEY_PROJECT_ID
    
  4. Borra los grupos de AC:

    gcloud privateca pools delete cluster-ca-pool --location=us-central1 \
        --project=KEY_PROJECT_ID
    
    gcloud privateca pools delete etcd-peer-ca-pool --location=us-central1 \
        --project=KEY_PROJECT_ID
    
    gcloud privateca pools delete etcd-api-ca-pool --location=us-central1 \
        --project=KEY_PROJECT_ID
    
    gcloud privateca pools delete aggregation-ca-pool --location=us-central1 \
        --project=KEY_PROJECT_ID
    
  5. Borra las claves:

    gcloud kms keys versions destroy 1 \
        --location=us-central1 \
        --keyring=KEY_RING_NAME \
        --key=sa-signing-key \
        --project=KEY_PROJECT_ID
    
    gcloud kms keys versions destroy 1 \
        --location=us-central1 \
        --keyring=KEY_RING_NAME \
        --key=cluster-ca-key \
        --project=KEY_PROJECT_ID
    
    gcloud kms keys versions destroy 1 \
        --location=us-central1 \
        --keyring=KEY_RING_NAME \
        --key=etcd-peer-ca-key \
        --project=KEY_PROJECT_ID
    
    gcloud kms keys versions destroy 1 \
        --location=us-central1 \
        --keyring=KEY_RING_NAME \
        --key=etcd-api-ca-key \
        --project=KEY_PROJECT_ID
    
    gcloud kms keys versions destroy 1 \
        --location=us-central1 \
        --keyring=KEY_RING_NAME \
        --key=aggregation-ca-key \
        --project=KEY_PROJECT_ID
    

No puedes borrar los llaveros de Cloud KMS. Sin embargo, los llaveros de claves no generan costos adicionales.

¿Qué sigue?