Control de acceso según la función

Kf proporciona un conjunto de funciones de Kubernetes que permiten que varios equipos compartan un clúster de Kf. En esta página, se describen las funciones y las prácticas recomendadas que debes seguir cuando uses estas funciones.

Cuándo usar funciones de Kf

Las funciones de Kf permiten que varios equipos compartan un clúster de Kubernetes con Kf instalado. Las funciones proporcionan acceso a espacios de Kf individuales.

Usa las funciones de Kf para compartir el acceso a un clúster si se cumplen las siguientes condiciones:

  • Equipos de confianza usan el clúster.
  • Las cargas de trabajo en el clúster comparten las mismas suposiciones sobre el nivel de seguridad que proporciona el entorno.
  • El clúster existe en un proyecto de Google Cloud que está controlado de forma estricta.

Las funciones de Kf no realizan lo siguiente:

Funciones de Kf

En las siguientes secciones, se describen las funciones de RBAC de Kubernetes que proporciona Kafka y cómo interactúan con IAM de Google Kubernetes Engine (GKE).

Funciones predefinidas

Kf brinda varias funciones predefinidas de Kubernetes para ayudarte a proporcionar acceso a diferentes asuntos con distintas funciones. Cada función predefinida se puede vincular a un asunto dentro de un espacio de nombres de Kubernetes que administra un espacio de Kf.

Cuando un asunto está vinculado a una función dentro de un espacio de nombres de Kubernetes, el acceso se limita a los objetos que existen en el espacio de nombres que coinciden con los otorgamientos en la función. En Kf, algunos recursos se definen a nivel del clúster. Kf observa cambios en los asuntos del espacio de nombres y otorga funciones adicionales, limitadas a nivel del clúster.

Función Título Descripción Permiso
space-auditor Auditor de espacios Permite el acceso de solo lectura a un espacio. Espacio
space-developer Desarrollador de espacio Permite a los desarrolladores de aplicaciones implementar y administrar aplicaciones dentro de un espacio. Espacio
space-manager Administrador de espacios Permite la administración y la capacidad de administrar auditores, desarrolladores y administradores en un espacio. Espacio
SPACE_NAME-manager Administrador dinámico de espacios Proporciona acceso de escritura a un solo objeto de espacio, que se otorga automáticamente a todos los asuntos con la función space-manager dentro del espacio con nombre. Clúster
kf-cluster-reader Lector de clústeres Permite el acceso de solo lectura a objetos Kf con alcance de clúster, otorgados automáticamente a todos los space-auditor, space-developer y space-manager. Clúster

La información sobre las reglas de políticas que conforman cada función predefinida se encuentra en la documentación de referencia de las funciones de Kf.

Funciones de IAM

Las funciones de Kf proporcionan control de acceso para los objetos dentro de un clúster de Kubernetes. También se debe otorgar una función de IAM a los asuntos para llevar a cabo la autenticación en el clúster:

  • Se les debe otorgar la función de IAM roles/container.admin a los administradores de la plataforma. Esto les permitirá instalar, actualizar y borrar Kf, así como crear y borrar objetos Kf con alcance de clúster como Spaces o ClusterServiceBokers.

  • Se deben otorgar las funciones de IAM roles/container.viewer a los usuarios finales de Kf. Esta función le permitirá autenticarse en un clúster con permisos limitados que se pueden expandir con funciones de Kf.

IAM ofrece funciones predefinidas adicionales para GKE a fin de resolver casos de uso más avanzados:

Role Title Description Lowest resource
roles/container.admin Kubernetes Engine Admin

Provides access to full management of clusters and their Kubernetes API objects.

To set a service account on nodes, you must also have the Service Account User role (roles/iam.serviceAccountUser) on the user-managed service account that your nodes will use.

  • Project
roles/container.cloudKmsKeyUser Kubernetes Engine KMS Crypto Key User Allow the Kubernetes Engine service agent in the cluster project to call KMS with user provided crypto keys to sign payloads.
roles/container.clusterAdmin Kubernetes Engine Cluster Admin

Provides access to management of clusters.

To set a service account on nodes, you must also have the Service Account User role (roles/iam.serviceAccountUser) on the user-managed service account that your nodes will use.

  • Project
roles/container.clusterViewer Kubernetes Engine Cluster Viewer

Provides access to get and list GKE clusters.

roles/container.defaultNodeServiceAccount Kubernetes Engine Default Node Service Account Least privilege role to use as the default service account for GKE Nodes.
roles/container.developer Kubernetes Engine Developer

Provides access to Kubernetes API objects inside clusters.

  • Project
roles/container.hostServiceAgentUser Kubernetes Engine Host Service Agent User

Allows the Kubernetes Engine service account in the host project to configure shared network resources for cluster management. Also gives access to inspect the firewall rules in the host project.

roles/container.viewer Kubernetes Engine Viewer

Provides read-only access to resources within GKE clusters, such as nodes, pods, and GKE API objects.

  • Project

Asigna las funciones de Cloud Foundry a Kf

Cloud Foundry proporciona roles que son similares a los roles predefinidos de Kf. Cloud Foundry tiene dos tipos principales de funciones:

  • Funciones asignadas por el subsistema de cuenta de usuario y de autenticación (UAA) que proporciona alcances de OAuth poco específicos para todos los extremos de la API de Cloud Foundry.
  • Funciones otorgadas dentro de la API de Cloud Controller (CAPI) que proporcionan acceso detallado a los recursos de la API.

Funciones de UAA

Las funciones que proporciona UAA son más similares a las funciones de IAM a nivel del proyecto:

  • Los usuarios administradores de Cloud Foundry pueden realizar actividades administrativas para todas las organizaciones y espacios de Cloud Foundry. La función es más similar a la función roles/container.admin de IAM.
  • Los usuarios administradores de solo lectura de Cloud Foundry pueden acceder a todos los extremos de la API de Cloud Foundry. La función es más similar a la función roles/container.admin de IAM.
  • Los usuarios auditores globales de Cloud Foundry tienen acceso de lectura a todos los extremos de la API de Cloud Foundry, excepto los secretos. No existe una función de IAM equivalente, pero puedes crear una función personalizada con permisos similares.

Funciones de la API de Cloud Controller

Las funciones que proporciona CAPI son más similares a las funciones de Kf otorgadas dentro de un clúster a los sujetos que tienen la función de IAM roles/container.viewer en el proyecto propietario:

  • Los auditores de espacios de Cloud Foundry tienen acceso de lectura a los recursos en un espacio de CF. La función es más similar a la función space-auditor de Kf.
  • Los desarrolladores de espacios de Cloud Foundry tienen la capacidad de implementar y administrar aplicaciones en un espacio de CF. La función es más similar a la función space-developer de Kf.
  • Los administradores de espacios en Cloud Foundry pueden modificar la configuración del espacio de CF y asignar usuarios a las funciones. La función es más similar a la función space-manager de Kf.

¿Qué sigue?