Configura y usa el modo sin llave del clúster

En este documento, se describe cómo configurar y usar la función de modo sin llave del clúster para Google Distributed Cloud (solo software) en Bare Metal. En lugar de las claves de cuenta de servicio, el modo sin llave usa tokens de corta duración y Workload Identity Federation para crear y proteger tus clústeres. Las credenciales de corta duración de la cuenta de servicio tienen la forma de tokens de acceso de OAuth 2.0. Los tokens de acceso vencen después de 1 hora de forma predeterminada, excepto los tokens de extracción de imágenes, que vencen después de 12 horas.

El modo sin llave solo está disponible para los clústeres de la versión 1.30 y posteriores.

Por el contrario, el modo con clave, el método estándar para crear y proteger clústeres, usa claves de cuenta de servicio descargadas. Cuando creas un clúster autoadministrado (administrador, híbrido o independiente), especificas la ruta de acceso a las claves descargadas. Luego, las claves se almacenan como secretos en el clúster y en cualquier clúster de usuario administrado. De forma predeterminada, las claves de cuenta de servicio no vencen y son un riesgo de seguridad si no se administran de forma adecuada.

El modo sin llave ofrece dos beneficios principales en comparación con el uso de claves de cuenta de servicio:

  • Mayor seguridad: Las claves de cuenta de servicio son un riesgo de seguridad si no se administran de forma correcta. Los tokens de OAuth 2.0 y Workload Identity Federation se consideran alternativas de prácticas recomendadas a las claves de cuenta de servicio. Para obtener más información sobre los tokens de cuenta de servicio, consulta Crea credenciales de cuenta de servicio de corta duración. Para obtener más información sobre la federación de Workload Identity, consulta Workload Identity Federation.

  • Reducción del mantenimiento: Las claves de las cuentas de servicio requieren más mantenimiento. La rotación y la protección periódicas de estas claves pueden ser una carga administrativa significativa.

Mientras esta función está en versión preliminar, existen algunas limitaciones conocidas.

Antes de comenzar

En las siguientes secciones, crearás cuentas de servicio y otorgarás los roles necesarios para el modo sin llave. Las instrucciones de configuración de este documento no reemplazan a las instrucciones de Configurar recursos de Google Cloud, sino que son obligatorias además de los requisitos previos de instalación estándar de solo software de Google Distributed Cloud. Las cuentas de servicio requeridas para el modo sin llave son similares a las que se describen en Configura recursos de Google Cloud, pero tienen un nombre único para no interferir con los clústeres que usan las claves predeterminadas de la cuenta de servicio.

Esta página está destinada a administradores, arquitectos y operadores que configuran, supervisan y administran el ciclo de vida de la infraestructura tecnológica subyacente. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud, consulta Tareas y roles comunes de los usuarios de GKE Enterprise.

En la siguiente tabla, se describen las cuentas de servicio necesarias para el modo sin llave:

Cuenta de servicio Objetivo Funciones
ADMIN_SA Usas esta cuenta de servicio para generar tokens. Cada token tiene los privilegios asociados con los roles de la cuenta de servicio. roles/gkehub.admin
roles/logging.admin
roles/monitoring.admin
roles/monitoring.dashboardEditor
roles/iam.serviceAccountAdmin
roles/iam.serviceAccountTokenCreator
baremetal-controller El agente de Connect usa esta cuenta de servicio para mantener una conexión entre tu clúster y Google Cloud, y para registrar tus clústeres con una flota. Esta cuenta de servicio también actualiza los tokens de la cuenta de servicio baremetal-gcr. roles/gkehub.admin
roles/monitoring.dashboardEditor
roles/serviceusage.serviceUsageViewer
baremetal-cloud-ops El agente de Stackdriver usa esta cuenta de servicio para exportar registros y métricas de clústeres a Cloud Logging y Cloud Monitoring. roles/logging.logWriter
roles/monitoring.metricWriter
roles/stackdriver.resourceMetadata.writer
roles/opsconfigmonitoring.resourceMetadata.writer
roles/monitoring.dashboardEditor
roles/monitoring.viewer
roles/serviceusage.serviceUsageViewer
roles/kubernetesmetadata.publisher
baremetal-gcr Google Distributed Cloud usa esta cuenta de servicio para descargar imágenes de contenedor de Container Registry. Ninguna

Crea y configura cuentas de servicio para el modo sin llave

En las siguientes secciones, se incluyen instrucciones para crear las cuentas de servicio necesarias y otorgarles los roles necesarios para el modo sin llave. Para obtener una lista de las cuentas de servicio y sus roles obligatorios, consulta la tabla de la sección anterior.

Crea cuentas de servicio

Para crear las cuentas de servicio del modo sin llave, sigue estos pasos:

  1. En tu estación de trabajo de administrador, accede a Google Cloud CLI:

    gcloud auth login
    
  2. De manera opcional, crea la cuenta de servicio administrativa:

    El nombre de la cuenta de servicio ADMIN_SA es arbitrario. Incluso puedes usar una cuenta de servicio existente, si tiene los roles identificados en la tabla de la sección anterior, pero no se recomienda porque va en contra del principio de privilegio mínimo.

    gcloud iam service-accounts create ADMIN_SA \
        --project=PROJECT_ID
    

    Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

  3. Crea las cuentas de servicio estándar para la función sin llave:

    Las cuentas de servicio estándar para la función sin llave tienen nombres predeterminada que se pueden personalizar, si lo deseas.

    gcloud iam service-accounts create baremetal-controller \
        --project=PROJECT_ID
    
    gcloud iam service-accounts create baremetal-cloud-ops \
        --project=PROJECT_ID
    
    gcloud iam service-accounts create baremetal-gcr \
        --project=PROJECT_ID
    

    Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

Agrega vinculaciones de políticas de Identity and Access Management para las cuentas de servicio

  1. Agrega vinculaciones de políticas de IAM para los roles necesarios de la cuenta de servicio ADMIN_SA:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/gkehub.admin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/logging.admin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.admin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.dashboardEditor
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/iam.serviceAccountAdmin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/iam.serviceAccountTokenCreator
    
  2. Agrega vinculaciones de políticas de IAM para los roles necesarios de la cuenta de servicio baremetal-controller:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/gkehub.admin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.dashboardEditor
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/serviceusage.serviceUsageViewer
    
  3. Agrega vinculaciones de políticas de IAM para los roles necesarios de la cuenta de servicio baremetal-cloud-ops:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/logging.logWriter
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.dashboardEditor
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.metricWriter
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/opsconfigmonitoring.resourceMetadata.writer
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/stackdriver.resourceMetadata.writer
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.viewer
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/serviceusage.serviceUsageViewer
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/kubernetesmetadata.publisher
    
  4. Otorga a la cuenta de servicio baremetal-controller la capacidad de generar tokens de acceso en nombre de la cuenta de servicio baremetal-gcr:

    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-gcr@PROJECT_ID.iam.gserviceaccount.com \
        --member=serviceAccount:baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/iam.serviceAccountTokenCreator
    

Configura Workload Identity Federation para tus clústeres

Para proporcionar acceso de Google Cloud con Workload Identity Federation for GKE, crea una política de permisos de IAM que otorgue acceso en un recurso específico de Google Cloud a una principal que corresponda a la identidad de tu aplicación. En este caso, Workload Identity Federation for GKE otorga acceso a operadores específicos en el clúster. Para obtener más información sobreWorkload Identity Federation for GKE, consulta Workload Identity Federation en la documentación de IAM.

Agrega vinculaciones de políticas de IAM para el operador de clústeres

Los siguientes comandos otorgan a la cuenta de servicio de Kubernetes anthos-cluster-operator la capacidad de suplantar la identidad de la cuenta de servicio baremetal-controller y de interactuar con los recursos de Google Cloud en nombre del clúster:

  1. Para cada clúster sin claves (o clúster sin claves planificado), incluido el clúster de inicio, otorga a anthos-cluster-operator en el clúster la capacidad de suplantar la identidad de la cuenta de servicio baremetal-controller:

    En el siguiente comando, principalSet consta del grupo de identidades de la carga de trabajo y una cuenta de servicio de Kubernetes, anthos-cluster-operator, en el espacio de nombres kube-system.

    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/anthos-cluster-operator \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    

    Reemplaza lo siguiente:

    • PROJECT_NUM: El identificador único generado de forma automática para tu proyecto.

    • REGION: Es la ubicación de la membresía de la flota de tu clúster, que es global de forma predeterminada. Para obtener más información, consulta Ubicación de la membresía de la flota.

    • CLUSTER_NAME: el nombre del clúster De forma predeterminada, el nombre del clúster de arranque es bmctl-MACHINE_NAME.

  2. Verifica las vinculaciones de políticas de la cuenta de servicio baremetal-controller:

    gcloud iam service-accounts get-iam-policy \
        baremetal-controller@PROJECT_ID.iam.gserviceaccount.com
    

    La respuesta debería ser similar a la siguiente:

    bindings:
    - members:
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/anthos-cluster-operator
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/anthos-cluster-operator
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/anthos-cluster-operator
      role: roles/iam.workloadIdentityUser
    etag: BwYoN3QLig0=
    version: 1
    

Agrega vinculaciones de políticas de IAM para los operadores de Google Cloud Observability

Los siguientes comandos otorgan a las siguientes cuentas de servicio de Kubernetes de Google Cloud Observability la capacidad de suplantar la identidad de la cuenta de servicio baremetal-cloud-ops y de interactuar con los recursos de Google Cloud en nombre del clúster:

  • cloud-audit-logging
  • gke-metrics-agent
  • kubestore-collector
  • metadata-agent
  • stackdriver-log-forwarder
  1. Para cada clúster sin claves (o clúster sin claves planificado), incluido el clúster de inicio, otorga a los operadores de Google Cloud Observability en el clúster la capacidad de suplantar la identidad de la cuenta de servicio baremetal-cloud-ops:

    En cada uno de los siguientes comandos, principalSet consta del grupo de identidades de cargas de trabajo y una cuenta de servicio de Kubernetes, como cloud-audit-logging, en el espacio de nombres kube-system.

    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/cloud-audit-logging \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    
    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/gke-metrics-agent \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    
    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/kubestore-collector \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    
    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/metadata-agent \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    
    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/stackdriver-log-forwarder \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    
  2. Verifica las vinculaciones de políticas de la cuenta de servicio baremetal-cloud-ops:

    gcloud iam service-accounts get-iam-policy \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com
    

    La respuesta debería ser similar a la siguiente:

    bindings:
    - members:
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/cloud-audit-logging
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/gke-metrics-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/kubestore-collector
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/metadata-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/stackdriver-log-forwarder
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/cloud-audit-logging
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/gke-metrics-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/kubestore-collector
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/metadata-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/stackdriver-log-forwarder
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/cloud-audit-logging
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/gke-metrics-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/kubestore-collector
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/metadata-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/stackdriver-log-forwarder
      role: roles/iam.workloadIdentityUser
    etag: BwYhT4gL-dY=
    version: 1
    

Configuración del clúster

La diferencia más obvia en la configuración de los clústeres que usan el modo sin claves es que no especificas las rutas de acceso a las claves de cuenta de servicio descargadas.

  1. Cuando completes la configuración del clúster en el archivo de configuración, deja las rutas de acceso a las claves de la cuenta de servicio en la sección de credenciales en blanco, como se muestra en el siguiente ejemplo:

    gcrKeyPath:
    sshPrivateKeyPath: /home/USERNAME/.ssh/id_rsa
    gkeConnectAgentServiceAccountKeyPath:
    gkeConnectRegisterServiceAccountKeyPath:
    cloudOperationsServiceAccountKeyPath:
    ---
    apiVersion: v1
    kind: Namespace
    metadata:
      name: cluster-CLUSTER_NAME
    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: CLUSTER_NAME
      namespace: cluster-CLUSTER_NAME
    spec:
      type: admin
      profile: default
      anthosBareMetalVersion: 1.30.0-gke.1930
      ...
    
  2. De forma opcional, establece nombres personalizados para las cuentas de servicio del modo sin llave:

    Especificar nombres personalizados te permite usar cuentas de servicio existentes. Si especificas el mismo nombre personalizado para más de una cuenta de servicio, puedes consolidarlas en menos cuentas de servicio.

    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: CLUSTER_NAME
      namespace: cluster-CLUSTER_NAME
      annotations:
        baremetal.cluster.gke.io/controller-service-account: "CUSTOM_CONTROLLER_GSA"
        baremetal.cluster.gke.io/cloud-ops-service-account: "CUSTOM_CLOUD_OPS_GSA"
        baremetal.cluster.gke.io/gcr-service-account: "CUSTOM_GCR_GSA"
    spec:
      type: admin
      profile: default
      anthosBareMetalVersion: 1.30.0-gke.1930
        ...
    

Operación del clúster

Cuando tengas todo listo para crear, actualizar o borrar un clúster de modo sin llave, sigue estos pasos:

  1. Accede a Google Cloud CLI:

    gcloud auth login
    
  2. En tu estación de trabajo de administrador, crea y descarga una clave para la cuenta de servicio ADMIN_SA:

    gcloud iam service-accounts keys create TMP_KEY_FILE_PATH \
        --iam-account=ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com
    

    Reemplaza TMP_KEY_FILE_PATH por la ruta de acceso, incluido el nombre del archivo, del archivo de claves descargado.

  3. Autoriza el acceso a Google Cloud con la cuenta de servicio ADMIN_SA:

    gcloud auth activate-service-account ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --key-file=TMP_KEY_FILE_PATH
    
  4. Borra el archivo de claves JSON descargado:

    rm TMP_KEY_FILE_PATH
    
  5. En tu estación de trabajo de administrador, crea una variable de entorno GCP_ACCESS_TOKEN con el valor de un token de acceso que creó la cuenta de servicio ADMIN_SA:

    export GCP_ACCESS_TOKEN=$(gcloud auth print-access-token \
        --impersonate-service-account=ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com)
    

    De forma predeterminada, el token de acceso tiene una vida útil de 1 hora.

  6. Verifica que la cuenta de servicio de ADMIN_SA genere el token con el vencimiento correcto:

    curl "https://oauth2.googleapis.com/tokeninfo?access_token=$GCP_ACCESS_TOKEN"
    

    La respuesta debe incluir líneas similares a las siguientes:

    ...
    "expires_in": "3582",
    "email": "ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com)",
    ...
    

    El valor de vencimiento se indica en segundos y debe ser inferior a 3600, lo que indica que el token vencerá en menos de una hora.

  7. Ejecuta un comando bmctl para crear, actualizar o borrar un clúster de modo sin llave:

    Si bmctl detecta que se configuró la variable de entorno GCP_ACCESS_TOKEN, realiza la validación del token. Si el token es válido, bmctl lo usa para las operaciones de clúster del modo sin llave.

    En el caso de los clústeres que usan el modo sin llave, los siguientes comandos requieren que la variable de entorno GCP_ACCESS_TOKEN se establezca en un token de acceso activo y válido:

    • bmctl create cluster -c CLUSTER_NAME
    • bmctl reset cluster -c CLUSTER_NAME
    • bmctl upgrade cluster -c CLUSTER_NAME

Limitaciones

Mientras el modo sin llave esté en versión preliminar, las siguientes funciones no son compatibles con el uso de clústeres que se ejecutan en modo sin llave:

  • Usa un servidor proxy
  • Controles del servicio de VPC

¿Qué sigue?