De forma predeterminada, los usuarios y roles de RAM no pueden llamar a las API de los servicios en la nube. Para usar las API de Container Service for Kubernetes (ACK) y Container Compute Service (ACS), o para consultar clústeres en la consola de ACS, debe conceder los permisos necesarios.
Requisitos previos
Antes de crear una directiva personalizada, familiarícese con la estructura básica y la sintaxis del lenguaje de directivas. Para obtener más información, consulte Policy elements.
Directivas del sistema
Utilice las directivas del sistema para agilizar la autorización cuando un usuario o rol de RAM necesite permisos de operación y mantenimiento en todos los clústeres de su cuenta de Alibaba Cloud.
Adjuntar una directiva del sistema
Una cuenta de Alibaba Cloud tiene permisos totales sobre todos los recursos. También puede conceder AdministratorAccess a un usuario de RAM para convertirlo en administrador de la cuenta y que gestione todos los recursos. Consulte Create a RAM user as an account administrator.
Inicie sesión en la consola de RAM.
En el panel de navegación izquierdo, seleccione .
-
En la página Users, busque el usuario de RAM deseado. En la columna Actions, haga clic en Attach Policy.
También puede seleccionar varios usuarios de RAM y hacer clic en Attach Policy, debajo de la lista de usuarios, para autorizarlos por lotes.
-
En el panel Grant Permission, seleccione una directiva y complete la autorización.
-
Resource scope:
Account level: los permisos se aplican a todos los recursos de su cuenta de Alibaba Cloud.
-
Resource group level: los permisos se aplican únicamente dentro del resource group especificado. Después de iniciar sesión, el usuario de RAM debe cambiar al resource group autorizado en la barra de navegación superior.
NotaEl sistema marca las directivas del sistema de alto riesgo (como AdministratorAccess y AliyunRAMFullAccess) con un indicador de advertencia. Estas directivas suelen otorgar control total sobre todos los recursos en la nube o gestión completa de RAM. Conceda estas directivas con precaución.
Para ver ejemplos de autorización por resource group, consulte Control RAM user access to specific ECS instances.
-
Principal:
El principal es el usuario de RAM que recibe los permisos. Desde la página Users, el sistema selecciona automáticamente al usuario actual. Desde la página Grants, debe seleccionar al usuario de forma manual. Se admite la selección por lotes.
Seleccione la directiva del sistema que desea adjuntar.
Haga clic en OK y luego en Close para completar la autorización.
-
Directivas personalizadas
ACK proporciona directivas del sistema de granularidad gruesa. Si estas no cumplen sus requisitos de seguridad, cree una directiva personalizada. Por ejemplo, las directivas personalizadas son obligatorias para un control de acceso detallado, como gestionar los permisos de un clúster específico.
Paso 1: Crear una directiva personalizada
Inicie sesión en la consola de RAM como administrador de RAM.
En el panel de navegación izquierdo, seleccione .
En la página Policies, haga clic en Create Policy.
-
En la página Create Policy, haga clic en la pestaña JSON y pegue a continuación el documento de directiva.
{ "Statement": [{ "Action": [ "cs:Get*", "cs:List*", "cs:Describe*", "cs:ScaleCluster", "cs:DeleteCluster" ], "Effect": "Allow", "Resource": [ "acs:cs:*:*:cluster/<cluster_id>" ] }], "Version": "1" }Parámetro
Descripción
Action
Los permisos que se van a conceder. Todas las acciones admiten comodines.
Resource
Puede configurar este parámetro de las siguientes maneras. Reemplace
<cluster_id>por el identificador de su clúster; por ejemplo,cae93341766c843479ae986b3305xxxxx.Conceder permisos sobre un solo clúster
"Resource": [ "acs:cs:*:*:cluster/<cluster_id>" ]Conceder permisos sobre varios clústeres
"Resource": [ "acs:cs:*:*:cluster/<cluster_id_1>", "acs:cs:*:*:cluster/<cluster_id_2>" ]Conceder permisos sobre todos los clústeres
"Resource": [ "*" ]
Después de pegar el contenido de la directiva, haga clic en OK. En el cuadro de diálogo que aparece, introduzca un nombre para la directiva y haga clic en OK.
Regrese a la página Policies y busque por el nombre o la descripción de la directiva para comprobar que se creó correctamente.
Paso 2: Adjuntar la directiva personalizada
El procedimiento para adjuntar una directiva personalizada es el mismo que para una directiva del sistema. Durante el paso de selección, elija la directiva personalizada que creó. Para obtener más información, consulte Attach a system policy.
Ejemplo
Conceder permisos para operaciones de API que no admiten autorización a nivel de clúster
Algunas operaciones de API, como DescribeEvents, no admiten autorización a nivel de clúster. Para conceder a un usuario o rol de RAM permisos sobre estas operaciones de API, no especifique un identificador de clúster en el elemento Resource.
Por ejemplo, considere a continuación la directiva de RAM:
{
"Statement": [
{
"Action": [
"cs:Get*",
"cs:List*",
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/<cluster_id>"
]
}
],
"Version": "1"
}
Para conceder permisos sobre la operación de API DescribeEvents, que no admite autorización a nivel de clúster, agregue una nueva instrucción. Esta instrucción debe contener la acción cs:DescribeEvents y especificar un recurso comodín (*). La directiva modificada queda de la siguiente manera:
{
"Statement": [
{
"Action": [
"cs:DescribeEvents"
],
"Effect": "Allow",
"Resource": [
"*"
]
},
{
"Action": [
"cs:Get*",
"cs:List*",
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/<cluster_id>"
]
}
],
"Version": "1"
}
Pasos siguientes
Después de conceder los permisos de RAM, también debe configurar los permisos de control de acceso basado en roles (RBAC) para gestionar los recursos de Kubernetes dentro del clúster. Para obtener más información, consulte Grant RBAC permissions to a RAM user or RAM role.
-
Antes de conceder permisos RBAC, asegúrese de que el usuario o rol de RAM tenga permisos de RAM de solo lectura para el clúster de destino. A continuación se muestra un ejemplo de directiva:
{ "Statement": [ { "Action": [ "cs:Get*", "cs:List*", "cs:Describe*" ], "Effect": "Allow", "Resource": [ "acs:cs:*:*:cluster/<cluster_id>" ] } ], "Version": "1" }