La Federación de Identidad de Carga de Trabajo para GKE (WIF) es un mecanismo que permite que las cargas de trabajo de su clúster accedan a recursos externos en la nube con Cuentas de Servicio de Kubernetes. WIF es la forma recomendada para que las aplicaciones que se ejecutan en clústeres conectados a GKE accedan. Google Cloud Servicios. Al registrar su clúster, la API de clústeres conectados a GKE crea toda la infraestructura necesaria para WIF, con compatibilidad con clústeres que utilizan emisores OIDC públicos o privados.
Todos los servicios de GKE Enterprise que se conectan a Google Cloud, como los agentes de Connect y telemetría, utilizan Workload Identity Federation para GKE.
Cuentas de servicio de Kubernetes y federación de identidades de carga de trabajo para GKE
Cuando un pod se ejecuta, utiliza una cuenta de servicio de Kubernetes para autorizar el acceso a los recursos alojados en su clúster. Mediante WIF, el pod puede usar la misma cuenta de servicio de Kubernetes (KSA) para obtener un token de corta duración y acceder a recursos alojados fuera del clúster.
WIF requiere una relación de confianza entre el proveedor de identidad OIDC dentro del clúster y el proveedor de recursos externos, como Google Cloud IAM. Cuando registra un clúster adjunto, el proceso de registro crea automáticamente esta relación de confianza al agregar el servicio OIDC de su clúster al grupo de identidades de carga de trabajo predeterminado vinculado a su Google Cloud proyecto.
Este grupo de identidades de carga de trabajo es el grupo de proveedores de identidad confiables de su proyecto de Google y se denomina PROJECT_ID.svc.id.goog
, donde PROJECT_ID
es el ID del proyecto de Google asociado con su clúster adjunto.
Puedes utilizarlo regularmente Google Cloud Políticas de IAM para controlar el acceso de las cuentas de servicio de Kubernetes a Google Cloud Servicios. Los principales de la cuenta de servicio de Kubernetes representan la KSA dentro del grupo de identidades de la carga de trabajo. Su formato es el siguiente:
serviceAccount:WORKLOAD_IDENTITY_POOL_NAME[KSA_NAMESPACE/KSA_NAME]
Para otorgar un rol a la cuenta de servicio de Kubernetes, use el siguiente comando:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:PROJECT_ID.svc.id.goog[KSA_NAMESPACE/KSA_NAME]" \
--role=IAM_ROLE
Reemplazar:
- PROJECT_ID : su Google Cloud ID del proyecto
- KSA_NAMESPACE : el espacio de nombres del clúster en el que reside esta cuenta de servicio
- KSA_NAME : el nombre de la cuenta de servicio de Kubernetes a la que desea otorgar permisos
- IAM_ROLE : el Google Cloud rol que desea otorgar a este KSA