Control de acceso


Cuando creas un proyecto de Google Cloud, eres el único usuario en el proyecto. De forma predeterminada, ningún otro usuario tiene acceso a tu proyecto ni a sus recursos, incluidos los recursos de Google Kubernetes Engine (GKE). GKE admite varias opciones para administrar el acceso a los recursos de tu proyecto y sus clústeres mediante el control de acceso según el rol (RBAC).

Estos mecanismos se superponen en cuanto a sus funciones en cierto punto, pero están dirigidos a diferentes tipos de recursos. Cada uno se explica de forma breve en una sección que se incluye a continuación:

  • El RBAC de Kubernetes está incorporado en Kubernetes y otorga permisos detallados a los objetos dentro de los clústeres de Kubernetes. Los permisos existen como objetos Role o ClusterRole dentro del clúster. Los objetos RoleBinding otorgan roles a usuarios de Kubernetes, usuarios de Google Cloud, cuentas de servicio de IAM o Grupos de Google.

    Si usas GKE y necesitas permisos específicos para cada objeto y operación dentro de tu clúster, el RBAC de Kubernetes es la mejor opción.

  • IAM administra los recursos de Google Cloud, incluidos los clústeres y los tipos de objetos dentro de los clústeres. Los permisos se asignan a las principales de IAM.

    No existe un mecanismo con el que se otorguen permisos para objetos de Kubernetes específicos dentro de IAM. Por ejemplo, puedes otorgar a un usuario permiso para crear CustomResourceDefinitions (CRD), pero no puedes otorgarle permiso a fin de crear solo una CustomResourceDefinition específica, ni limitar la creación a un espacio de nombres específico o a un clúster específico en el proyecto. Una función de IAM otorga privilegios en todos los clústeres del proyecto o en todos los clústeres de todos los proyectos secundarios si la función se aplica a nivel de carpeta.

    Si usas varios componentes de Google Cloud y no necesitas administrar permisos específicos detallados de Kubernetes, IAM es una buena opción.

RBAC de Kubernetes

Kubernetes cuenta con compatibilidad integrada para RBAC. Esto te permite crear funciones detalladas, que existen dentro del clúster de Kubernetes. Una función puede aplicarse a un objeto de Kubernetes específico o a un tipo de objeto de Kubernetes, y define qué acciones (llamadas verbos) otorga la función en relación con ese objeto. Un RoleBinding también es un objeto de Kubernetes y otorga funciones a los usuarios. Un usuario de GKE puede ser cualquiera de las siguientes opciones:

  • Usuario de Google Cloud
  • Cuenta de servicio de IAM
  • Cuenta de servicio de Kubernetes
  • Usuario de Google Workspace
  • Grupo de Google de Google Workspace
  • Usuarios autenticados mediante certificados de cliente X509

Para obtener más información, consulta Control de acceso según la función.

IAM

IAM te permite otorgar roles a las principales. Una función es una colección de permisos, y cuando se le asigna a una principal, controla el acceso a uno o más recursos de Google Cloud. Puedes usar los siguientes tipos de roles:

Una principal puede ser cualquiera de las siguientes opciones:

  • Cuenta de usuario
  • Cuenta de servicio
  • Grupo de Google de Google Workspace
  • Dominio de Google Workspace
  • Dominio de Cloud Identity

Tipos de políticas de IAM

IAM admite los siguientes tipos de políticas:

  • Políticas de permisos: Otorga roles a las principales. Para obtener más información, consulta Política de permisos.
  • Políticas de denegación: Evita que las principales usen permisos de IAM específicos, sin importar las funciones que se les otorguen. Para obtener más detalles, consulta Políticas de denegación.

Usa políticas de denegación para evitar que principales específicas realicen acciones específicas en tu proyecto, organización o carpeta, incluso si una política de permisos de IAM otorga a esas principales un rol que contenga los permisos relevantes.

Recomendaciones de IAM

Considera usar las siguientes funciones predefinidas de IAM para facilitar situaciones comunes:

Para obtener una lista de los roles predefinidos de IAM disponibles, consulta Roles predefinidos de GKE.

Además, considera crear una cuenta de servicio de IAM personalizada que usen tus nodos en lugar de la cuenta de servicio predeterminada de Compute Engine. Otorga a la cuenta de servicio personalizada los permisos mínimos necesarios para que GKE funcione. Para obtener instrucciones, consulta Usa cuentas de servicio de IAM con privilegios mínimos.

Interacción de IAM con RBAC de Kubernetes

IAM y RBAC de Kubernetes trabajan juntos para ayudar a administrar el acceso a tu clúster. RBAC controla el acceso en el nivel de clúster y espacio de nombres, mientras que IAM funciona en el nivel de proyecto. Una entidad debe tener permisos suficientes en cualquier nivel para trabajar con recursos en tu clúster.

¿Qué sigue?