Container Compute Service (ACS) utiliza dos capas de autorización: Resource Access Management (RAM) para las operaciones con recursos en la nube y el control de acceso basado en roles (RBAC) para los recursos de Kubernetes dentro de los clústeres. Un usuario o rol de RAM necesita permisos de ambas capas para gestionar clústeres y cargas de trabajo.
|
Tarea |
Capa de autorización |
Documentación |
|
Crear, consultar o eliminar clústeres |
RAM |
|
|
Otorgar a un miembro del equipo acceso a pods, Deployments o Services |
RAM + RBAC |
|
|
Permitir que distintos pods accedan a diferentes servicios en la nube |
RAM (RRSA) |
|
|
Configurar a un ingeniero de O&M con acceso al clúster y a las aplicaciones |
RAM + RBAC |
Scenario 1: Grant O&M engineers the permissions to manage clusters and applications |
|
Configurar a un desarrollador con acceso limitado a un namespace |
RAM + RBAC |
Scenario 2: Grant developers the permissions to manage your clusters and applications |
|
Delegar la gestión de permisos a un administrador |
RAM + RBAC |
Cómo funcionan juntas ambas capas
Los clústeres ACS son un tipo de clúster serverless de Container Service for Kubernetes (ACK). Toda la gestión de clústeres invoca API de ACK, por lo que se requieren tanto los permisos de nivel de nube (RAM) como los de nivel de clúster (RBAC).
|
Capa |
Alcance |
Controla |
Se otorga mediante |
|
Autorización RAM |
Recursos en la nube (plano de control) |
Ciclo de vida del clúster, gestión de RBAC, monitoreo, registros y eventos |
Políticas del sistema de RAM o políticas personalizadas |
|
Autorización RBAC |
Recursos de Kubernetes (plano de datos) |
Cargas de trabajo, red, almacenamiento, namespaces, ConfigMaps y Secrets |
ClusterRoles predefinidos o personalizados en la consola de ACS |
Complete la autorización RAM antes de otorgar permisos RBAC.
Qué abarca la autorización RAM
La autorización RAM otorga permisos para las operaciones de O&M de clústeres:
Crear, consultar y eliminar clústeres
Gestionar la autorización RBAC
Monitorear clústeres y gestionar registros y eventos
Qué abarca la autorización RBAC
La autorización RBAC otorga permisos a nivel de namespace o en todo el clúster sobre los recursos de Kubernetes:
Recursos de carga de trabajo: Deployment, StatefulSet, Job, CronJob, pod, ReplicaSet y HorizontalPodAutoscaler (HPA)
Recursos de red: Service, Ingress y NetworkPolicy
Recursos de almacenamiento: persistent volume (PV), persistent volume claim (PVC) y StorageClass
Otros recursos: Namespace, ConfigMap y Secret
Autorización RAM
De forma predeterminada, los usuarios y roles de RAM no pueden invocar API de servicios en la nube. Adjunte políticas de RAM para otorgar el acceso necesario.
Políticas del sistema
Las políticas del sistema otorgan permisos amplios y predefinidos. Son adecuadas para el acceso de O&M en todos los clústeres de una cuenta. Grant permissions to a RAM user or RAM role.
|
Política del sistema |
Qué otorga |
Nota sobre el alcance |
|
AliyunCSFullAccess |
Acceso total a todas las operaciones de la API de ACK |
Incluye todos los clústeres de ACK, no solo los de ACS. No otorga permisos RBAC sobre recursos de Kubernetes. |
|
AliyunCSReadOnlyAccess |
Acceso de solo lectura a todas las operaciones de la API de ACK |
Incluye todos los clústeres de ACK, no solo los de ACS. |
|
AliyunACCFullAccess |
Acceso total a todas las operaciones de la API de ACS |
Solo clústeres ACS. |
|
AliyunACCReadOnlyAccess |
Acceso de solo lectura a todas las operaciones de la API de ACS |
Solo clústeres ACS. |
|
AliyunVPCReadOnlyAccess |
Acceso de solo lectura a Virtual Private Cloud (VPC) |
Obligatorio para seleccionar una VPC al crear un clúster ACS. |
|
AliyunContainerRegistryFullAccess |
Acceso total a las imágenes de contenedor en Container Registry (ACR) |
En toda la cuenta. |
|
AliyunLogReadOnlyAccess |
Acceso de solo lectura a Simple Log Service (SLS) |
Obligatorio para seleccionar un proyecto de registro para los registros de auditoría o consultar los resultados de la inspección de configuración. |
|
AliyunRAMFullAccess |
Acceso total a RAM |
Obligatorio para gestionar la autorización de otros usuarios y roles de RAM. |
|
AliyunEBSFullAccess |
Acceso total a Elastic Block Storage (EBS) |
Obligatorio para usar las funciones de almacenamiento en disco. |
|
AliyunARMSReadOnlyAccess |
Acceso de solo lectura a Application Real-Time Monitoring Service (ARMS) |
Obligatorio para consultar los datos de monitoreo de Managed Service for Prometheus. |
|
AliyunKMSReadOnlyAccess |
Acceso de solo lectura a Key Management Service (KMS) |
Obligatorio para seleccionar claves de cifrado al crear un clúster ACS. |
AliyunCSFullAccess y AliyunCSReadOnlyAccess cubren todos los clústeres de ACK, no solo los de ACS. Evalúe si este alcance es adecuado antes de adjuntar estas políticas.
Políticas personalizadas
Las políticas personalizadas proporcionan un control detallado sobre operaciones de API y recursos específicos. Utilícelas cuando los usuarios o roles de RAM requieran permisos muy acotados para desarrollo basado en SDK.
A continuación se muestra un ejemplo que otorga acceso de solo lectura a un bucket de Object Storage Service (OSS) llamado myphotos:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:ListBuckets",
"oss:GetBucketStat",
"oss:GetBucketInfo",
"oss:GetBucketTagging",
"oss:GetBucketAcl"
],
"Resource": "acs:oss:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"oss:ListObjects",
"oss:GetBucketAcl"
],
"Resource": "acs:oss:*:*:myphotos"
},
{
"Effect": "Allow",
"Action": [
"oss:GetObject",
"oss:GetObjectAcl"
],
"Resource": "acs:oss:*:*:myphotos/*"
}
]
}
Acceso a nivel de pod con RRSA
RAM Roles for Service Accounts (RRSA) asocia un rol de RAM con un ServiceAccount de Kubernetes. De esta manera, los pods que usan ese ServiceAccount pueden invocar las API de servicios en la nube designadas. Use RRSA to authorize different pods to access different cloud services.
Autorización RBAC
Una vez configurada la autorización RAM, otorgue permisos RBAC para controlar lo que un usuario o rol de RAM puede hacer con los recursos de Kubernetes. Asigne los permisos RBAC desde la página de autorización de la consola de ACS.
Roles predefinidos
ACS ofrece los siguientes roles predefinidos, además de una opción personalizada. Cada uno se asigna a un ClusterRole. Grant RBAC permissions to RAM users or RAM roles.
|
Rol |
Alcance |
Otorga |
No otorga |
|
Administrator |
Todos los namespaces |
Acceso de lectura y escritura a todos los recursos |
-- |
|
Ingeniero de O&M |
Todos los namespaces |
Acceso de lectura y escritura a los recursos visibles en la consola; acceso de solo lectura a nodos, PV, namespaces y cuotas |
Acceso de escritura a nodos, PV, namespaces y cuotas |
|
Desarrollador |
Namespaces específicos o todos |
Acceso de lectura y escritura a los recursos visibles en la consola |
Acceso fuera del namespace asignado (cuando está limitado a un namespace) |
|
Usuario restringido |
Namespaces específicos o todos |
Acceso de solo lectura a los recursos visibles en la consola |
Acceso de escritura a cualquier recurso |
|
Rol personalizado |
Definido por el ClusterRole |
Determinado por el ClusterRole seleccionado |
Permisos no incluidos en el ClusterRole |
Antes de asignar un rol personalizado, revise los permisos del ClusterRole para comprobar que solo se otorgue el acceso necesario. Customize an RBAC role.
Roles y ClusterRoles
El RBAC de Kubernetes utiliza dos tipos de recursos de rol:
Role: recurso asociado a un namespace que define permisos dentro de un único namespace. Especifique el namespace de destino al crear un Role.
ClusterRole: recurso no asociado a un namespace que define permisos en todo el clúster.
Un ClusterRole se puede utilizar de tres maneras:
Otorgar permisos sobre recursos asociados a namespaces dentro de namespaces individuales.
Otorgar permisos sobre recursos asociados a namespaces en todos los namespaces.
Otorgar permisos sobre recursos con alcance de clúster.
Utilice un Role cuando los permisos deban limitarse a un solo namespace. Use un ClusterRole cuando los permisos abarquen todo el clúster.
ACK solo permite que los ClusterRoles otorguen permisos RBAC. Los Roles no se pueden usar para la autorización RBAC.
Para crear un ClusterRole personalizado, consulte Customize an RBAC role. Para adjuntar un ClusterRole a un usuario o rol de RAM, consulte Grant RBAC permissions to RAM users or RAM roles.