A partir del 18 de agosto de 2021, Container Service for Kubernetes (ACK) implementa una autenticación mejorada cuando los usuarios y roles de Resource Access Management (RAM) realizan llamadas a la API. Para evitar errores de autenticación por llamadas no autorizadas, debe revisar las directivas de RAM asociadas a los usuarios y roles dentro de su cuenta de Alibaba Cloud y agregar los permisos obligatorios según sus necesidades.
Impacto
Cuando se utiliza la autenticación mejorada, si un usuario o rol de RAM intenta ejecutar una operación no autorizada, la consola de ACK o la API devuelve un mensaje de error con el siguiente contenido: RAM policy Forbidden o STSToken policy Forbidden. El mensaje de error también incluye la acción de RAM necesaria para realizar la operación.
El siguiente mensaje de error contiene una acción de RAM llamada
cs:DescribeEvents
:
RAM policy Forbidden for action cs:DescribeEvents
La siguiente tabla enumera las operaciones de la API y las acciones de RAM necesarias para invocarlas. Si su usuario o rol de RAM no tiene autorización para llamar a las operaciones listadas a continuación, inicie sesión en la consola de RAM y otorgue los permisos correspondientes al usuario o rol.
|
Operación |
Acción de RAM |
Descripción |
|
DescribeEvents |
cs:DescribeEvents |
|
|
StartAlert |
cs:StartAlert |
|
|
StopAlert |
cs:StopAlert |
|
|
DeleteAlertContact |
cs:DeleteAlertContact |
|
|
DeleteAlertContactGroup |
cs:DeleteAlertContactGroup |
|
|
OpenAckService |
cs:OpenAckService |
|
|
DescribeClusterResources |
cs:DescribeClusterResources |
|
|
DescribeUserQuota |
cs:DescribeUserQuota |
|
|
DescribeClustersV1 |
cs:DescribeClustersV1 |
|
|
DescribeExternalAgent |
cs:DescribeExternalAgent |
|
|
DescribeKubernetesVersionMetadata |
cs:DescribeKubernetesVersionMetadata |
|
|
DescribeClusterAddonUpgradeStatus |
cs:DescribeClusterAddonUpgradeStatus |
Consulta el progreso de actualización de los complementos del clúster |
|
DescribeClusters |
cs:DescribeClusters |
Consulta todos los clústeres de la cuenta, incluidos los de Kubernetes y Swarm |
|
DescribeClusterNamespaces |
cs:DescribeClusterNamespaces |
|
|
ModifyCluster |
cs:ModifyCluster |
|
|
MigrateCluster |
cs:MigrateCluster |
|
|
UpdateK8sClusterUserConfigExpire |
cs:UpdateK8sClusterUserConfigExpire |
Actualiza la fecha de caducidad de las configuraciones personalizadas |
|
DescribeClusterNodes |
cs:DescribeClusterNodes |
Consulta los detalles de todos los nodos de un clúster por ID de clúster |
|
DescribeClusterAttachScripts |
cs:DescribeClusterAttachScripts |
Consulta el script utilizado para agregar instancias a un clúster |
|
GetUpgradeStatus |
cs:GetUpgradeStatus |
Consulta el progreso de actualización de un clúster por ID de clúster |
|
UpgradeCluster |
cs:UpgradeCluster |
|
|
PauseClusterUpgrade |
cs:PauseClusterUpgrade |
|
|
CancelClusterUpgrade |
cs:CancelClusterUpgrade |
|
|
CreateTemplate |
cs:CreateTemplate |
|
|
DescribeTemplates |
cs:DescribeTemplates |
Consulta los detalles de todas las plantillas de orquestación |
|
DescribeTemplateAttribute |
cs:DescribeTemplateAttribute |
Consulta los detalles de una plantilla de orquestación por ID de plantilla |
|
UpdateTemplate |
cs:UpdateTemplate |
|
|
DeleteTemplate |
cs:DeleteTemplate |
|
|
CreateKubernetesTrigger |
cs:CreateKubernetesTrigger |
|
|
GetKubernetesTrigger |
cs:GetKubernetesTrigger |
Consulta los disparadores de una aplicación por nombre de aplicación |
|
DeleteKubernetesTrigger |
cs:DeleteKubernetesTrigger |
|
|
InstallClusterAddons |
cs:InstallClusterAddons |
|
|
DescribeAddons |
cs:DescribeAddons |
|
|
DescribeClusterAddonsUpgradeStatus |
cs:DescribeClusterAddonsUpgradeStatus |
Consulta el progreso de actualización de un componente por nombre de componente |
|
DescribeClusterAddonsVersion |
cs:DescribeClusterAddonsVersion |
Consulta los detalles de todos los componentes de un clúster por ID de clúster |
|
ModifyClusterConfiguration |
cs:ModifyClusterConfiguration |
|
|
UpgradeClusterAddons |
cs:UpgradeClusterAddons |
Actualiza un componente a una versión específica por nombre de componente |
|
PauseComponentUpgrade |
cs:PauseComponentUpgrade |
|
|
ResumeComponentUpgrade |
cs:ResumeComponentUpgrade |
|
|
CancelComponentUpgrade |
cs:CancelComponentUpgrade |
|
|
UnInstallClusterAddons |
cs:UnInstallClusterAddons |
|
|
CreateAutoscalingConfig |
cs:CreateAutoscalingConfig |
Modificar una directiva de RAM
El siguiente ejemplo muestra cómo modificar la directiva de RAM asociada a un usuario o rol. Para obtener más información sobre la autorización de RAM, consulte Grant cluster and cloud resource access with RAM.
Scenario 1: A RAM user can perform only the cs:Get* action on a cluster and requires permissions on all read-only operations related to the cluster
El siguiente bloque de código muestra la directiva de RAM cuando un usuario solo puede ejecutar la acción
cs:Get*
en un clúster:
{
"Statement": [
{
"Action": "cs:Get*",
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/c2e63856bcd714197****"
]
}
],
"Version": "1"
}
Si el usuario de RAM necesita permisos para todas las operaciones de solo lectura relacionadas con el clúster, modifique la directiva de RAM como se muestra en el siguiente bloque de código:
{
"Statement": [
{
"Action": [
"cs:Get*",
"cs:List*",
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/c2e63856bcd714197****"
]
}
],
"Version": "1"
}
La acción
cs:Get*
no incluye todas las operaciones de solo lectura. Para otorgar al usuario de RAM permisos sobre todas las operaciones de solo lectura, debe agregar las acciones
cs:List*
y
cs:Describe*
a la directiva de RAM.
Scenario 2: Grant a RAM user the permissions on an individual operation related to a cluster
Para conceder a un usuario de RAM permisos sobre una operación específica de un clúster, solo es necesario agregar la acción de RAM correspondiente a dicha operación en la directiva.
El siguiente bloque de código muestra la directiva de RAM actual:
{
"Statement": [
{
"Action": [
"cs:Get*",
"cs:List*",
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/c2e63856bcd714197****"
]
}
],
"Version": "1"
}
Para otorgar permisos sobre la operación
ModifyCluster
, debe agregar la acción de RAM correspondiente
cs:ModifyCluster
a la directiva, como se muestra en el siguiente bloque de código:
{
"Statement": [
{
"Action": [
"cs:Get*",
"cs:List*",
"cs:Describe*",
"cs:ModifyCluster"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/c2e63856bcd714197****"
]
}
],
"Version": "1"
}
Scenario 3: Grant a RAM user permissions on operations that are not specific to individual clusters
Algunas operaciones de la API no son específicas de clústeres individuales, como CreateCluster, DescribeClusters y DescribeEvents. Para conceder permisos sobre estas operaciones, no debe especificar IDs de clúster en la sección Resource.
El siguiente bloque de código muestra la directiva de RAM actual:
{
"Statement": [
{
"Action": [
"cs:Get*",
"cs:List*",
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/c2e63856bcd714197****"
]
}
],
"Version": "1"
}
Para otorgar permisos sobre la operación
DescribeEvents
, debe agregar la acción de RAM correspondiente
cs:DescribeEvents
a la directiva, como se muestra en el siguiente bloque de código:
{
"Statement": [
{
"Action": [
"cs:DescribeEvents"
],
"Effect": "Allow",
"Resource": [
"*"
]
},
{
"Action": [
"cs:Get*",
"cs:List*",
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/c2e63856bcd714197****"
]
}
],
"Version": "1"
}