Acerca de las cuentas de servicio de GKE


En esta página, se describe cómo funcionan las cuentas de servicio y los agentes de servicio de la administración de identidades y accesos (IAM) con Google Kubernetes Engine (GKE).

Una cuenta de servicio de IAM es una cuenta especial que una aplicación puede usar, en lugar de una persona directamente.

Un agente de servicio es una cuenta de servicio que administra Google.

IAM administra las cuentas de servicio y los agentes de servicio a nivel de proyecto de Google Cloud.

Cuentas de servicio de IAM y cuentas de servicio de Kubernetes

Una cuenta de servicio de IAM tiene permisos dentro de un proyecto y se administra mediante IAM. Las cuentas de servicio de IAM se pueden usar para realizar llamadas autenticadas a las API de Google Cloud.

Una cuenta de servicio de Kubernetes tiene permiso dentro de un clúster.

Las cuentas de servicio de Kubernetes existen como objetos ServiceAccount en el servidor de la API de Kubernetes y proporcionan una identidad para las aplicaciones y las cargas de trabajo que se ejecutan en pods. Los Pods pueden usar cuentas de servicio de Kubernetes para autenticarse en el servidor de la API.

Puedes usar Workload Identity para permitir que las cuentas de servicio de Kubernetes actúen en nombre de las cuentas de servicio de IAM. Esto permite que las aplicaciones se autentiquen en las API de Google Cloud sin exponer las claves de la cuenta de servicio de IAM a las aplicaciones en contenedores.

Agentes de servicio de GKE

GKE usa el agente de servicio de Kubernetes Engine para administrar el ciclo de vida de los recursos del clúster en tu nombre, como los nodos, los discos y los balanceadores de cargas. Este agente de servicio tiene el dominio container-engine-robot.iam.gserviceaccount.com y se le otorga el rol Agente de servicio de Kubernetes Engine (roles/container.serviceAgent) en tu proyecto cuando habilitas: la API de GKE.

El identificador de este agente de servicio es:

service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com

En el ejemplo anterior, PROJECT_NUMBER es el número del proyecto.

Si inhabilitas el agente de servicio de GKE, puedes recuperarlo si sigues las instrucciones en Habilita una cuenta de servicio.

Si quitas los permisos del agente de servicio en tu proyecto, puedes recuperarlos si sigues las instrucciones de Error 400/403: Faltan permisos de edición en la cuenta.

Si borras el agente de servicio de GKE predeterminado, puedes recuperarlo si sigues las instrucciones en Recupera una cuenta de servicio.

Cuenta de servicio de los nodos de GKE predeterminada

De forma predeterminada, tus nodos usan la cuenta de servicio predeterminada de Compute Engine. De forma predeterminada, a esta cuenta de servicio se le otorga la función de editor (roles/editor) y tiene más permisos que los necesarios para los nodos de GKE. Considera usar una función que use los permisos mínimos necesarios para ejecutar nodos en el clúster.

No inhabilites la cuenta de servicio predeterminada de Compute Engine, a menos que migres a cuentas de servicio administradas por el usuario.

Permisos mínimos

GKE requiere un conjunto mínimo de permisos de IAM para operar el clúster. Para obtener instrucciones sobre cómo crear una cuenta de servicio de IAM con privilegios mínimos, consulta Usa cuentas de servicio de Google con privilegios mínimos.

¿Qué sigue?