En esta página, se describen los permisos de acceso predeterminados otorgados a los nodos en los clústeres de Google Kubernetes Engine (GKE).
¿Qué son los permisos de acceso?
Los permisos de acceso son el método heredado para otorgar permisos a los nodos y las cargas de trabajo que se ejecutan en ellos, en caso de que estas usen las credenciales predeterminadas de la aplicación (ADC). Los permisos de acceso definen los permisos de OAuth que se usan en las llamadas a la API desde las bibliotecas cliente o la CLI de gcloud.
Te recomendamos que no especifiques tus propios permisos de acceso. En su lugar, debes usar permisos de IAM o el control de acceso basado en roles (RBAC) de Kubernetes para otorgar acceso a cuentas de servicio de Kubernetes o de IAM específicas.
Permisos de acceso predeterminados
Cuando creas un clúster de GKE nuevo, Google Cloud asigna un conjunto predeterminado de permisos de acceso a los nodos en función de la cuenta de servicio que usan los nodos. Estos permisos de acceso permiten una funcionalidad específica para GKE.
También puedes configurar los permisos de acceso de forma manual con la marca --scopes
cuando creas clústeres de Standard.
Clústeres de Autopilot o grupos de nodos. No puedes modificar los permisos de acceso en los grupos de nodos existentes. En su lugar, debes crear un grupo de nodos nuevo con los permisos nuevos y migrar las cargas de trabajo a ese grupo de nodos.
En las siguientes secciones, se describen los niveles de acceso predeterminados que GKE agrega a los nodos según si especificas una cuenta de servicio personalizada y si especificas los niveles de acceso de forma manual.
Clústeres de Autopilot
Cuenta de servicio | ¿Especificaste manualmente los permisos de acceso? | Permisos de acceso que agrega GKE |
---|---|---|
Cuenta de servicio predeterminada de Compute Engine | No |
|
Sí | Permisos especificados de forma manual | |
Cuenta de servicio personalizada | No | https://www.googleapis.com/auth/cloud-platform |
Sí | Permisos especificados de forma manual |
Clústeres estándar
Cuenta de servicio | ¿Permisos de acceso especificados de forma manual? | Permisos de acceso de GKE |
---|---|---|
Cuenta de servicio predeterminada de Compute Engine | No |
|
Sí |
|
|
Cuenta de servicio personalizada | No |
|
Sí |
|
Configura una cuenta de servicios personalizada para las cargas de trabajo
IAM es el sistema de control de acceso para otorgar roles autorizados a usuarios y cuentas de servicio dentro de tu proyecto de Google Cloud. Una cuenta de servicio es una Cuenta de Google especial que realiza tareas, como la implementación de aplicaciones, en tu nombre. Puedes usar IAM para crear una cuenta de servicio y, luego, usar vinculaciones de políticas de IAM a fin de proteger la cuenta.
Si tus cargas de trabajo requieren acceso a Compute Engine, otórgale la función de Administrador de Compute Engine a la cuenta de servicio. Si tus cargas de trabajo necesitan extraer imágenes privadas de Artifact Registry, consulta Configura el control de acceso para los repositorios de Artifact Registry.
Cree una cuenta de servicio
Para crear una cuenta de servicio personalizada llamada kubernetes-engine-node-sa
, ejecuta los siguientes comandos:
export NODE_SA_NAME=kubernetes-engine-node-sa
gcloud iam service-accounts create $NODE_SA_NAME \
--display-name "GKE Node Service Account"
export NODE_SA_EMAIL=`gcloud iam service-accounts list --format='value(email)' \
--filter='displayName:GKE Node Service Account'`
Otorga funciones mínimas
A fin de configurar la cuenta de servicio con las funciones y los permisos mínimos necesarios para que funcione el nodo de GKE, ejecuta los siguientes comandos, en los que $PROJECT
es tu ID del proyecto:
export PROJECT=`gcloud config get-value project`
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/monitoring.metricWriter
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/monitoring.viewer
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/logging.logWriter
Otorga funciones adicionales
Para otorgar la función de Administrador de Compute Engine a la cuenta de servicio, ejecuta el siguiente comando:
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/compute.admin
Para aprender a otorgar acceso a las cuentas de servicio a las imágenes privadas almacenadas en Artifact Registry, consulta Otorga acceso a los clústeres de Google Kubernetes Engine.
Crea un clúster o grupo de nodos con la cuenta de servicios personalizada
Para crear un clúster que use la cuenta de servicio personalizada, ejecuta el siguiente comando:
gcloud container clusters create --service-account=$NODE_SA_EMAIL
Para crear un grupo de nodos en un clúster existente:
gcloud container node-pools create --service-account=$NODE_SA_EMAIL