En este documento se describe cómo configurar y usar la autenticación de clúster de Workload Identity para Google Distributed Cloud (solo software) en bare metal. En lugar de usar claves de cuentas de servicio, la autenticación de clústeres de Workload Identity usa tokens de corta duración y la federación de identidades de cargas de trabajo para crear y proteger tus clústeres. Las credenciales de corta duración de la cuenta de servicio tienen el formato de tokens de acceso de OAuth 2.0. Los tokens de acceso caducan al cabo de una hora de forma predeterminada, excepto los tokens de extracción de imágenes, que caducan al cabo de 12 horas.
La autenticación de clúster de Workload Identity solo está disponible al crear clústeres con la versión 1.30 o posterior. No puedes configurar un clúster para que use la autenticación de clúster de Workload Identity durante una actualización.
Por el contrario, el modo con clave, el método estándar para crear y proteger clústeres, utiliza claves de cuenta de servicio descargadas. Cuando creas un clúster autogestionado (administrador, híbrido o independiente), debes especificar la ruta a las claves descargadas. Las claves se almacenan como secretos en el clúster y en cualquier clúster de usuario gestionado. De forma predeterminada, las claves de cuentas de servicio no caducan y suponen un riesgo para la seguridad si no se gestionan correctamente.
La autenticación de clúster de Workload Identity ofrece dos ventajas principales con respecto al uso de claves de cuenta de servicio:
Seguridad mejorada: las claves de las cuentas de servicio suponen un riesgo para la seguridad si no se gestionan adecuadamente. Los tokens de OAuth 2.0 y la federación de identidades de cargas de trabajo se consideran alternativas recomendadas a las claves de cuentas de servicio. Para obtener más información sobre los tokens de cuentas de servicio, consulta el artículo Credenciales de cuentas de servicio de corta duración. Para obtener más información sobre la federación de identidades de cargas de trabajo, consulta Federación de identidades de cargas de trabajo.
Mantenimiento reducido: las claves de cuenta de servicio requieren más mantenimiento. Rotar y proteger estas claves con regularidad puede suponer una carga administrativa considerable.
Mientras esta función se encuentre en versión preliminar, habrá algunas limitaciones.
Antes de empezar
En las siguientes secciones, creará cuentas de servicio y concederá los roles necesarios para la autenticación de clústeres de identidad de carga de trabajo. Las instrucciones de configuración de este documento no sustituyen a las de Configurar recursos Google Cloud , sino que son necesarias además de los requisitos previos estándar de instalación solo de software de Google Distributed Cloud. Las cuentas de servicio necesarias para la autenticación de clústeres de Workload Identity son similares a las cuentas de servicio descritas en Configurar Google Cloud recursos, pero tienen nombres únicos, por lo que no interfieren con los clústeres que usan las claves de cuenta de servicio predeterminadas.
Esta página está dirigida a administradores, arquitectos y operadores que configuran, monitorizan y gestionan el ciclo de vida de la infraestructura tecnológica subyacente. Para obtener más información sobre los roles habituales y las tareas de ejemplo a las que hacemos referencia en el contenido, consulta Roles y tareas habituales de los usuarios de GKE.Google Cloud
En la siguiente tabla se describen las cuentas de servicio necesarias para la autenticación de clústeres de Workload Identity:
Cuenta de servicio | Finalidad | Roles |
---|---|---|
ADMIN_SA |
Esta cuenta de servicio se usa para generar tokens. Cada token tiene los privilegios asociados a 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 |
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 en
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 Artifact Registry. | Ninguno |
Crear y configurar cuentas de servicio para la autenticación de clústeres de Workload Identity
En las siguientes secciones se incluyen instrucciones para crear las cuentas de servicio necesarias y asignarles los roles necesarios para la autenticación de clústeres de Workload Identity. Para ver una lista de las cuentas de servicio y los roles necesarios, consulta la tabla de la sección anterior.
Crear cuentas de servicio
Para crear las cuentas de servicio de la autenticación de clúster de Workload Identity, sigue estos pasos:
En tu estación de trabajo de administrador, inicia sesión en Google Cloud CLI:
gcloud auth login
Opcionalmente, crea la cuenta de servicio administrativa:
El nombre de la cuenta de servicio
ADMIN_SA
es arbitrario. También puedes usar una cuenta de servicio que ya tengas, siempre que tenga los roles que se indican en la tabla de la sección anterior, pero no es recomendable porque va en contra del principio de privilegio mínimo.gcloud iam service-accounts create ADMIN_SA \ --project=PROJECT_ID
Sustituye
PROJECT_ID
por el ID de tuGoogle Cloud proyecto.Crea las cuentas de servicio estándar para la autenticación de clústeres de Workload Identity:
Las cuentas de servicio estándar de la autenticación de clústeres de Workload Identity tienen nombres predeterminados que se pueden personalizar, si quieres.
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
Sustituye
PROJECT_ID
por el ID de tuGoogle Cloud proyecto.
Añadir enlaces de políticas de gestión de identidades y accesos para cuentas de servicio
Añade vinculaciones de políticas de gestión de identidades y accesos 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
Añade vinculaciones de políticas de gestión de identidades y accesos 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
Añade vinculaciones de políticas de gestión de identidades y accesos 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
Concede a la cuenta de servicio
baremetal-controller
la capacidad de generar tokens de acceso en nombre de la cuenta de serviciobaremetal-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
Configurar Workload Identity Federation para tus clústeres
Para proporcionar acceso con la federación de identidades de carga de trabajo para GKE, crea una política de permiso de IAM que conceda acceso a un recursoGoogle Cloud específico a una entidad principal que corresponda a la identidad de tu aplicación. Google Cloud En este caso, la federación de identidades de cargas de trabajo concede acceso a operadores específicos del clúster. Para obtener más información sobre Workload Identity Federation para GKE, consulta Workload Identity Federation en la documentación de gestión de identidades y accesos.
Añadir enlaces de políticas de gestión de identidades y accesos para el operador del clúster
Los siguientes comandos conceden a la cuenta de servicio de Kubernetes anthos-cluster-operator
la capacidad de usar la identidad de la cuenta de servicio baremetal-controller
e interactuar con los recursos de Google Cloud en nombre del clúster:
En cada clúster configurado para la autenticación de clústeres de Workload Identity (o que tenga previsto usarla), incluido el clúster de arranque, concede a
anthos-cluster-operator
en el clúster la capacidad de suplantar la cuenta de serviciobaremetal-controller
:En el siguiente comando, el
principalSet
consta del grupo de identidades de carga de trabajo y una cuenta de servicio de Kubernetes,anthos-cluster-operator
, en el espacio de nombreskube-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
Haz los cambios siguientes:
PROJECT_NUM
: el identificador único generado automáticamente para tu proyecto.REGION
: la ubicación de la pertenencia a la flota de tu clúster, que esglobal
de forma predeterminada. Para obtener más información, consulta Ubicación de los miembros de la flota.CLUSTER_NAME
: el nombre del clúster. De forma predeterminada, el nombre del clúster de arranque esbmctl-MACHINE_NAME
.
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
Añadir enlaces de políticas de gestión de identidades y accesos para los operadores de Google Cloud Observability
Los siguientes comandos conceden a las siguientes cuentas de servicio de Kubernetes de Google Cloud Observability la capacidad de usar la identidad de la cuenta de servicio baremetal-cloud-ops
e 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
En cada clúster configurado para la autenticación de clústeres de Workload Identity (o que tenga previsto usarla), incluido el clúster de arranque, concede a los operadores de Google Cloud Observability del clúster la capacidad de suplantar la cuenta de servicio
baremetal-cloud-ops
:En cada uno de los siguientes comandos,
principalSet
consta del grupo de identidades de carga de trabajo y de una cuenta de servicio de Kubernetes, comocloud-audit-logging
, en el espacio de nombreskube-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
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 de clúster
La diferencia más evidente en la configuración de los clústeres que usan la autenticación de clústeres de Workload Identity es que no se especifican las rutas a las claves de cuenta de servicio descargadas.
Cuando rellenes la configuración del clúster en el archivo de configuración, deja en blanco las rutas de las claves de la cuenta de servicio en la sección de credenciales, 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 ...
Opcionalmente, puedes definir nombres personalizados para las cuentas de servicio de autenticación de clústeres de Workload Identity:
Si especificas nombres personalizados, puedes usar cuentas de servicio disponibles. Asegúrate de que los nombres de las cuentas de servicio personalizadas que especifiques sean distintos entre sí.
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_AR_GSA" spec: type: admin profile: default anthosBareMetalVersion: 1.30.0-gke.1930 ...
Haz los cambios siguientes:
CUSTOM_CONTROLLER_GSA
: el nombre de correo de la cuenta de servicio que usa Connect Agent para mantener una conexión entre tu clúster y Google Cloud, así como para registrar tus clústeres.CUSTOM_CLOUD_OPS_GSA
: el nombre de correo de la cuenta de servicio que usa el agente de Stackdriver para exportar registros y métricas de clústeres a Cloud Logging y Cloud Monitoring.CUSTOM_AR_GSA
: el nombre de correo de la cuenta de servicio que usa Google Distributed Cloud para descargar imágenes de contenedor de Artifact Registry.
Operación de clústeres
Cuando quieras crear, actualizar o eliminar un clúster que use la autenticación de clúster de Workload Identity, sigue estos pasos:
Inicia sesión en Google Cloud CLI:
gcloud auth login
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
Sustituye
TMP_KEY_FILE_PATH
por la ruta, incluido el nombre de archivo, del archivo de clave descargado.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
Elimina el archivo de clave JSON descargado:
rm TMP_KEY_FILE_PATH
En tu estación de trabajo de administrador, crea una variable de entorno
GCP_ACCESS_TOKEN
con el valor de un token de acceso creado por la cuenta de servicioADMIN_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 duración de 1 hora.
Verifica que el token lo haya generado la cuenta de servicio
ADMIN_SA
con la fecha de vencimiento correcta: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 está en segundos y debe ser inferior a
3600
, lo que indica que el token caduca en menos de una hora.Ejecuta un comando
bmctl
para crear, actualizar o eliminar un clúster:Si
bmctl
detecta que se ha definido la variable de entornoGCP_ACCESS_TOKEN
, realiza la validación del token. Si el token es válido,bmctl
lo usa para las operaciones del clúster.En los clústeres que usan la autenticación de clúster de Workload Identity, los siguientes comandos requieren que la variable de entorno
GCP_ACCESS_TOKEN
se defina como un token de acceso válido y activo:bmctl create cluster -c CLUSTER_NAME
bmctl reset cluster -c CLUSTER_NAME
bmctl upgrade cluster -c CLUSTER_NAME
Limitaciones
Mientras la autenticación de clústeres de Workload Identity esté en versión preliminar, no se admitirán las siguientes funciones:
- Usar un servidor proxy
- Controles de Servicio de VPC
- Actualizar los clústeres del modo de claves para que usen la autenticación de clústeres de Workload Identity