Crea políticas de Cloud IAM

Esta página explica cómo crear políticas de administración de identidades y accesos a la nube (Cloud IAM) para la autorización en Google Kubernetes Engine.

Descripción general

Cada llamada a la API de Google Cloud Platform (GCP), GKE y Kubernetes requiere que la cuenta que realiza la solicitud tenga los permisos necesarios. Según la configuración predeterminada, nadie, excepto tú o algunas otras personas con permiso otorgado por las políticas a nivel de carpeta y organización, puede acceder a tu proyecto o a tus recursos sin estar autenticado y autorizado. Puedes usar Cloud IAM para administrar quiénes pueden acceder a tu proyecto y qué pueden hacer.

Para otorgar acceso a los usuarios y a las cuentas de servicio a tu proyecto de GCP, debes agregarlos como miembros del equipo del proyecto. Entonces, necesitas asignar funciones. Las funciones definen a qué recursos de GCP puede acceder una cuenta y qué operaciones pueden realizar.

En GKE, usas Cloud IAM para administrar qué usuarios y qué cuentas de servicio pueden acceder y realizar operaciones en tus clústeres.

Antes de comenzar

Sigue estos pasos a fin de prepararte para esta tarea:

  • Asegúrate de habilitar la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Asegúrate de instalar el SDK de Cloud.
  • Configura el ID del proyecto predeterminado:
    gcloud config set project [PROJECT_ID]
  • Si trabajas con clústeres zonales, configura tu zona de procesamiento predeterminada:
    gcloud config set compute/zone [COMPUTE_ZONE]
  • Si trabajas con clústeres regionales, configura tu región de procesamiento predeterminada:
    gcloud config set compute/region [COMPUTE_REGION]
  • Actualiza gcloud a la versión más reciente:
    gcloud components update

Interacción con control de acceso basado en funciones.

El sistema de control de acceso basado en funciones de Kubernetes también administra el acceso a tu clúster. RBAC controla el acceso a nivel de clúster y espacio de nombres, mientras que Cloud IAM funciona a nivel de proyecto.

Cloud IAM y RBAC pueden trabajar en conjunto y una entidad debe tener permisos suficientes en cualquier nivel para trabajar con recursos en tu clúster.

Funciones de Cloud IAM

Las siguientes secciones describen las funciones de IAM en la nube disponibles en GCP.

Funciones predefinidas de GKE

Cloud IAM proporciona funciones predefinidas que otorgan acceso a recursos GCP específicos y evitan el acceso no autorizado a otros recursos.

Cloud IAM ofrece las siguientes funciones predefinidas para GKE:

Título de la función Nombre de la función Funciones Usuarios de destino
Administrador de GKE roles/container.admin Acceso completo a los clústeres y tus recursos de Kubernetes.
  • Propietarios/administradores del proyecto
  • Ingenieros de guardia
  • Administradores de sistemas
Desarrollador de GKE roles/container.developer Acceso completo a los recursos de Kubernetes que se ejecutan en clústeres
  • Desarrolladores
  • Ingenieros de actualizaciones
Lector de GKE roles/container.viewer Acceso de solo lectura a los clústeres y a sus recursos de Kubernetes.
  • Usuarios que solo necesitan visibilidad en los clústeres y en sus recursos.
Administrador del clúster de GKE roles/container.clusterAdmin
    Cuando se combina con el usuario de cuenta de servicio, otorga permiso solamente para crear, borrar, actualizar y ver clústeres. No hay acceso a los recursos de Kubernetes.
  • Los usuarios que solo necesitan administrar clústeres y no necesitan acceder a las cargas de trabajo de los clústeres.
Lector de clústeres de GKE roles/container.clusterViewer Permiso para obtener y enumerar clústeres. No hay acceso a los recursos de Kubernetes.
  • Usuarios que necesitan acceso de solo lectura a clústeres.
  • Adecuado a fin de recuperar información del clúster para configurar kubectl.

Para obtener información sobre los permisos otorgados por cada función de GKE, consulta los permisos otorgados por las funciones de Cloud IAM.

Funciones básicas de Cloud IAM

Las funciones básicas de Cloud IAM otorgan a los usuarios acceso global a nivel de proyecto a todos los recursos de GCP. Para mantener tu proyecto y tus clústeres seguros, debes usar funciones predefinidas siempre que sea posible.

Para obtener más información sobre las funciones básicas, consulta Funciones básicas en la documentación de Cloud IAM.

Función de usuario de cuenta de servicio

El usuario de cuenta de servicio otorga permiso a los usuarios para completar ciertas tareas con una cuenta de servicio de GCP. En GKE, los usuarios que necesiten crear o actualizar clústeres pueden requerir esta función. Puedes sincronizar la función de usuario de cuenta de servicio con otras funciones según el nivel de acceso que una entidad requiere.

Por ejemplo, si un usuario con la función de administrador de clúster necesita crear un clúster, debe acceder a cuenta de servicio de los nodos del clúster. Cuando se otorga al usuario la función de usuario de cuenta de servicio en la política de IAM de Cloud de esa cuenta de servicio, se garantiza que tengan permiso para usar la cuenta de servicio:

gcloud iam service-accounts add-iam-policy-binding \
  [SA_NAME]@[PROJECT_ID].iam.gserviceaccount.com \
  --member=user:[USER] \
  --role=roles/iam.serviceAccountUser
Título de la función Nombre de la función Funciones Permisos
Usuario de cuenta de servicio roles/iam.serviceAccountUser Acceso a cuentas de servicio a nivel de proyecto o servicio específico.
  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.get
  • iam.serviceAccounts.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Función de usuario del agente de servicio de host

La función de usuario del agente de servicio de host solo se usa en clústeres de VPC compartida.

Título de la función Nombre de la función Funciones Permisos
Usuario del agente de servicio de host roles/container.hostServiceAgentUser Se usa con VPC compartida. Otorga permiso para administrar recursos de red en el proyecto alojado. Esta función se otorga a la cuenta de servicio de GKE de un proyecto de servicio. La función permite a la cuenta de servicio de GKE de un proyecto de servicio usar la cuenta de servicio de GKE de su proyecto alojado. Esta función no se otorga a los usuarios.
  • container.hostServiceAgent.use
  • compute.firewalls.get

Funciones personalizadas

Si las funciones predefinidas no satisfacen tus necesidades, puedes crear funciones personalizadas con los permisos que tú definas.

Para obtener más información sobre cómo crear y asignar funciones personalizadas, consulta Creación y administración de funciones personalizadas.

Permisos otorgados por funciones de Cloud IAM

Puedes ver los permisos otorgados por cada función con la herramienta de línea de comandos de gcloud o GCP Console.

gcloud

Para ver los permisos otorgados por una función específica, ejecuta el siguiente comando. [ROLE] es cualquier función de Cloud IAM. Las funciones de GKE tienen el prefijo roles/container.:

gcloud iam roles describe roles/[ROLE]

Por ejemplo:

gcloud iam roles describe roles/container.admin

Console

Para ver los permisos otorgados por una función específica, realiza los siguientes pasos:

  1. Visita la sección de Funciones del menú IAM de GCP Console.

    Visita el menú de IAM.

  2. Desde el campo de la tabla de filtro, ingresa "GKE"

  3. Selecciona la función deseada.

Cómo administrar las políticas de Cloud IAM

Para obtener información sobre cómo administrar las funciones y permisos de Cloud IAM de los usuarios, consulta cómo Otorgar, cambiar y revocar el acceso a los miembros del proyecto en la documentación de Cloud IAM.

Para las cuentas de servicio, consulta Cómo otorgar funciones a las cuentas de servicio.

Ejemplos

A continuación, se muestran algunos ejemplos de cómo funciona Cloud IAM con GKE:

  • Un nuevo empleado se une a una empresa. Debe agregarse al proyecto de GCP, pero solo necesita ver los clústeres del proyecto y otros recursos de GCP. El propietario del proyecto les asigna la función de lector a nivel de proyecto, que contiene el permiso compute.projects.get necesario para ver los proyectos y sus recursos.
  • El empleado está trabajando en operaciones y necesita actualizar un clúster usando gcloud o Google Cloud Platform Console. Esta operación requiere el permiso container.clusters.update, por lo que el propietario del proyecto le asigna la función de administrador de clúster. El empleado ahora tiene funciones de administrador de clúster y funciones de lector.
  • El empleado debe investigar por qué una implementación está teniendo problemas. Necesitan ejecutar kubectl get pods para ver los pods que se ejecutan en el clúster. El empleado ya tiene la función de lector, lo que le otorga este permiso.
  • El empleado necesita crear un nuevo clúster. El propietario del proyecto otorga al empleado la función de usuario de cuenta de servicio, de modo que la cuenta del empleado pueda acceder a la cuenta de servicio predeterminada de GKE.

¿Qué sigue?

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...