Workload Identity te permite asignar identidades distintas y detalladas, así como autorizaciones, a cada aplicación de tu clúster. Workload Identity es la forma recomendada de que las aplicaciones que se ejecutan en GKE en AWS accedan a los servicios de AWS y Google Cloud .
Todos los clústeres de GKE tienen habilitada la identidad de carga de trabajo.
Cuentas de servicio de Kubernetes
La identidad de carga de trabajo implementa la federación de identidades, que consiste en delegar la confianza o los roles en un proveedor externo. Cada clúster tiene un proveedor de OpenID Connect (OIDC) integrado. Cuando un pod se ejecuta en el clúster, lo hace con una cuenta de servicio de Kubernetes. El pod se puede configurar para obtener un token con credenciales de corta duración para su cuenta de servicio de Kubernetes mediante un volumen de token de cuenta de servicio vinculada.
Proveedores de OpenID Connect
Cada clúster puede actuar como proveedor de OpenID Connect (OIDC). Con este proveedor, puedes proporcionar credenciales de cuenta de servicio de Kubernetes a servicios que admitan la federación de identidades mediante OIDC.
El URI de emisor de este proveedor también funciona como endpoint de descubrimiento de OIDC. Los servicios pueden usar este endpoint de descubrimiento para obtener el conjunto de claves web JSON (JWKS), que proporciona información de clave pública que les permite verificar las credenciales de la cuenta de servicio de Kubernetes.
Google Cloud Grupos y proveedores de identidades de IAM
Google Cloud IAM admite la federación de identidades mediante OIDC.
Todos los clústeres de GKE están configurados como proveedores de identidades en el grupo de identidades de carga de trabajo PROJECT_ID.svc.id.goog
.
Para obtener el nombre de tu grupo y proveedores de identidades de carga de trabajo, consulta Usar Workload Identity con Google Cloud.
Proveedores de identidades de AWS IAM
AWS IAM admite la federación de identidades mediante OIDC. Para acceder a AWS con las identidades de cuenta de servicio de una carga de trabajo, debes crear un proveedor de OIDC en AWS IAM. De forma predeterminada, GKE en AWS no se configura con un proveedor de identidades para AWS IAM.
Alternativas a Workload Identity
Hay otros métodos para acceder a los servicios desde GKE en AWS. No recomendamos los siguientes métodos debido a las complicaciones que pueden surgir.
Exporta las credenciales y almacénalas como secretos de Kubernetes. En este caso, debes rotar las credenciales almacenadas manualmente tanto en AWS IAM como en tu clúster. Además, si un atacante roba credenciales, puede aprovecharlas.
Adjunta las credenciales a las instancias subyacentes de los grupos de nodos. En este caso, todas las cargas de trabajo que se ejecutan en el mismo nodo comparten las credenciales, lo que puede dar lugar a un conjunto de permisos mayor del que necesitan las cargas de trabajo. Para bloquear el acceso a los permisos de una instancia, los clústeres de GKE bloquean el acceso de un pod al servicio de metadatos de la instancia.
Siguientes pasos
- Usar Workload Identity con los servicios de Google Cloud
- Usar Workload Identity con AWS
- Más información sobre la federación de identidades de cargas de trabajo