En esta página se describen los ámbitos de acceso predeterminados que se conceden a los nodos de los clústeres de Google Kubernetes Engine (GKE). En esta página se explica cuáles son los permisos de acceso predeterminados que se conceden a los clústeres y cómo puede configurar permisos de acceso personalizados, si es necesario.
Esta página está dirigida a especialistas y operadores de seguridad que crean y gestionan clústeres, y que deben conocer el acceso predeterminado que se concede a los clústeres y cómo modificarlo si es necesario. 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
¿Qué son los permisos de acceso?
Los permisos de acceso son el método antiguo de conceder permisos a tus nodos y a las cargas de trabajo que se ejecutan en ellos si las cargas de trabajo usan credenciales de aplicación predeterminadas (ADC). Los ámbitos de acceso definen los ámbitos de OAuth que se usan en las llamadas a la API desde las bibliotecas de cliente o la CLI de gcloud.
Te recomendamos que no especifiques tus propios ámbitos de acceso. En su lugar, debes usar permisos de gestión de identidades y accesos o el control de acceso basado en roles (RBAC) de Kubernetes para conceder acceso a cuentas de servicio de gestión de identidades y accesos o cuentas de servicio de Kubernetes específicas.
Permisos de acceso predeterminados
Cuando creas un clúster de GKE, Google Cloud asigna un conjunto predeterminado de ámbitos de acceso a los nodos en función de la cuenta de servicio que utilicen. Estos ámbitos de acceso habilitan funciones específicas de GKE.
También puedes definir los ámbitos de acceso manualmente con la marca --scopes
cuando crees clústeres estándar, clústeres Autopilot o grupos de nodos. No puedes modificar los ámbitos de acceso de los grupos de nodos que ya tengas. En su lugar, crea un grupo de nodos con los nuevos ámbitos y migra las cargas de trabajo a ese grupo.
En las siguientes secciones se describen los permisos de acceso predeterminados que añade GKE a los nodos en función de si especificas una cuenta de servicio personalizada y de si especificas manualmente los permisos de acceso.
Clústeres de Autopilot
Cuenta de servicio | ¿Has especificado manualmente los permisos de acceso? | Permisos de acceso que añade GKE |
---|---|---|
Cuenta de servicio predeterminada de Compute Engine | No |
|
Sí | Permisos especificados manualmente | |
Cuenta de servicio personalizada | No | https://www.googleapis.com/auth/cloud-platform |
Sí | Permisos especificados manualmente |
Clústeres estándar
Cuenta de servicio | ¿Permisos de acceso especificados manualmente? | Permisos de acceso de GKE |
---|---|---|
Cuenta de servicio predeterminada de Compute Engine | No |
|
Sí |
|
|
Cuenta de servicio personalizada | No |
|
Sí |
|
Configurar una cuenta de servicio personalizada para las cargas de trabajo
IAM es el sistema de control de acceso que se usa para asignar roles autorizados a usuarios y cuentas de servicio de tuGoogle Cloud proyecto. Una cuenta de servicio es una cuenta de Google especial que realiza tareas, como implementar aplicaciones, en tu nombre. Usas IAM para crear una cuenta de servicio y, a continuación, usas enlaces de políticas de IAM para proteger la cuenta.
Si tus cargas de trabajo requieren acceso a Compute Engine, concede al servicio la función Administrador de Compute Engine. Si tus cargas de trabajo necesitan extraer imágenes privadas de Artifact Registry, consulta el artículo sobre cómo configurar el control de acceso para los repositorios de Artifact Registry.
Crear 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'`
Conceder roles mínimos
Para configurar la cuenta de servicio con los roles y permisos mínimos necesarios para que funcione tu nodo de GKE, ejecuta los siguientes comandos, donde $PROJECT
es tu ID de 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
Conceder roles adicionales
Para conceder el rol 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 saber cómo conceder acceso a cuentas de servicio a imágenes privadas almacenadas en Artifact Registry, consulta Conceder acceso a clústeres de Google Kubernetes Engine.
Crear un clúster o un grupo de nodos con la cuenta de servicio 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, sigue estos pasos:
gcloud container node-pools create --service-account=$NODE_SA_EMAIL