Cuando los roles predefinidos en Alibaba Cloud Container Compute Service (ACS) no cubren sus requisitos de control de acceso, cree un Role o ClusterRole personalizado. Esto aplica, por ejemplo, cuando necesita otorgar acceso a recursos específicos en determinados namespaces o restringir un recurso personalizado a un conjunto limitado de verbos.
ACS solo admite vincular ClusterRoles personalizados a permisos de control de acceso basado en roles (RBAC). Los Roles personalizados no se pueden vincular a permisos RBAC.
Roles y ClusterRoles
Un Role define permisos limitados a un solo namespace. Un ClusterRole tiene alcance de clúster y cuenta con tres usos:
Otorgar permisos sobre recursos con namespace en uno o más namespaces específicos.
Otorgar permisos sobre recursos con namespace en todos los namespaces.
Otorgar permisos sobre recursos con alcance de clúster, como nodos o volúmenes persistentes.
Si necesita permisos dentro de un namespace, utilice un Role. Para permisos en todo el clúster, utilice un ClusterRole.
Tanto Role como ClusterRole especifican los permisos mediante rules, que definen lo siguiente:
|
Campo |
Descripción |
|
|
El grupo de API al que pertenece el recurso. Una cadena vacía ( |
|
|
Los tipos de recursos; por ejemplo, |
|
|
Las operaciones permitidas; por ejemplo, |
Plantillas YAML
Role
El siguiente YAML crea un Role llamado test-role que otorga acceso total a los pods del namespace default.
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: test-role
namespace: default
rules:
- apiGroups:
- "" # "" indicates the core API group
resources:
- pods
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
ClusterRole
El siguiente YAML crea un ClusterRole llamado test-clusterrole que otorga acceso total a los pods en todos los namespaces.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: test-clusterrole
rules:
- apiGroups:
- "" # "" indicates the core API group
resources:
- pods
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
Para obtener más información, consulte Roles y ClusterRoles en la documentación de Kubernetes.
Crear un ClusterRole personalizado
A continuación se describe cómo crear un ClusterRole personalizado para un usuario o rol de Resource Access Management (RAM) desde la consola de ACS. Si desea crear un Role personalizado, seleccione la pestaña Role en el paso 3.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Un clúster de ACS.
Los permisos necesarios para gestionar los recursos RBAC en el clúster.
Pasos
Inicie sesión en la consola de ACS. En el panel de navegación izquierdo, haga clic en Clusters.
En la página Clusters, haga clic en el nombre del clúster. En el panel de navegación izquierdo, elija Security > Role.
En la página Role, haga clic en la pestaña Cluster Role y luego haga clic en Create.
En el panel Create YAML, introduzca el YAML del ClusterRole y haga clic en OK. La plantilla YAML de este ejemplo define permisos para todo el clúster. Después de crear el ClusterRole, aparece como
test-clusterroleen la pestaña Cluster Role.
Pasos siguientes
Para otorgar acceso a usuarios o roles de RAM mediante el ClusterRole que creó, consulte Grant RBAC permissions to RAM users or RAM roles.