Cuando se gestionan recursos de ECI en varios equipos o entornos, listar los ID de recursos individuales en cada directiva de RAM no es escalable. Con el control de acceso basado en etiquetas, también conocido como control de acceso basado en atributos (ABAC), una sola directiva rige todos los recursos que tienen la etiqueta requerida y elimina la necesidad de actualizar las directivas por cada recurso.
Este documento muestra cómo configurar una directiva de RAM que restringe a un usuario de RAM a los recursos de ECI etiquetados con env:test, y explica cómo ECI evalúa las condiciones de etiqueta para cada tipo de operación.
El siguiente diagrama muestra cómo funciona la autenticación basada en etiquetas.

Las etiquetas se pueden vincular a instancias de contenedor elástico, cachés de imágenes y nodos virtuales. Las etiquetas solo se pueden adjuntar cuando se crea o actualiza un recurso. Para obtener más información, consulte Use tags to manage elastic container instances .
Funcionamiento
ECI admite dos claves de condición de etiqueta para las directivas de RAM:
|
Condition Key |
What It Checks |
When to Use It |
|
|
La etiqueta incluida en la propia solicitud de API |
Operaciones de API que aceptan parámetros de etiqueta (por ejemplo, operaciones de creación) |
|
|
La etiqueta ya adjunta al recurso de destino |
Operaciones de API que requieren un ID de recurso (por ejemplo, operaciones de actualización, eliminación y otras operaciones del ciclo de vida) |
La clave que aplica depende de si la operación de API acepta un ID de recurso, una etiqueta o ambos. Consulte Lógica de autenticación por tipo de operación para obtener un desglose completo.
Ejemplo de configuración
Este ejemplo otorga a un usuario de RAM acceso únicamente a los recursos de ECI etiquetados con env:test.

La directiva cubre tres requisitos:
|
Requirement |
Permitted Action |
|
Crear |
El usuario de RAM puede crear recursos de ECI solo si la etiqueta |
|
Operar |
El usuario de RAM puede realizar cualquier operación en recursos de ECI que ya tengan la etiqueta |
|
Consultar |
El usuario de RAM puede listar o describir solo los recursos de ECI etiquetados con |
Paso 1: Cree una directiva personalizada y adjúntela al usuario de RAM
Inicie sesión en RAM console con su cuenta de Alibaba Cloud.
En el panel de navegación izquierdo, seleccione Permissions > Policies.
En la página Policies, haga clic en Create Policy.
Haga clic en la pestaña Import Policy. En el cuadro de diálogo, seleccione System Policy en la lista desplegable Policy Template, busque
AliyunECIFullAccessen el cuadro Filter templates, seleccione la directiva y haga clic en Import.AliyunECIFullAccesses la directiva predeterminada para ECI. Otorga permisos para operar recursos de ECI, consultar dependencias como grupos de seguridad y nubes privadas virtuales (VPC), y crear el rol vinculado al servicio de ECI.-
Haga clic en la pestaña JSON Editor y reemplace el documento de directiva con lo siguiente: La directiva asigna cada requisito a una clave de condición específica:
acs:RequestTagcomprueba la etiqueta enviada en la solicitud (se usa para operaciones de creación y descripción).acs:ResourceTagcomprueba la etiqueta que ya tiene el recurso de destino (se usa para operaciones de gestión).
Cada declaración incluye
Effect,Action,Resourcey, opcionalmente,Condition. Para obtener más información, consulte Policy structure and syntax y Policy elements .Requirement
Action
Condition Key
Condition Value
Crear con etiqueta
eci:Create*acs:RequestTag/envtestOperar recursos etiquetados
eci:*acs:ResourceTag/envtestConsultar recursos etiquetados
eci:Describe*acs:RequestTag/envtest{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "eci:Create*", "Resource": "*", "Condition": { "StringEquals": { "acs:RequestTag/env": "test" } } }, { "Effect": "Allow", "Action": "eci:*", "Resource": "*", "Condition": { "StringEquals": { "acs:ResourceTag/env": "test" } } }, { "Effect": "Allow", "Action": "eci:Describe*", "Resource": "*", "Condition": { "StringEquals": { "acs:RequestTag/env": "test" } } }, { "Action": ["ecs:DescribeSecurityGroups"], "Resource": "*", "Effect": "Allow" }, { "Action": [ "vpc:DescribeVSwitches", "vpc:DescribeVpcs", "vpc:DescribeEipAddresses" ], "Resource": "*", "Effect": "Allow" }, { "Action": "ram:CreateServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": [ "eci.aliyuncs.com", "vnode.eci.aliyuncs.com" ] } } } ] } Haga clic en Next to edit policy information, introduzca un nombre para la directiva y haga clic en OK.
-
Adjunte la directiva al usuario de RAM:
En el panel de navegación izquierdo, seleccione Identities > Users.
Si aún no tiene un usuario de RAM, cree uno. Para obtener más información, consulte Create a RAM user.
Adjunte la directiva personalizada al usuario de RAM. Para obtener más información, consulte Manage RAM user permissions.
La directiva anterior cubre el acceso basado en API. Si el usuario de RAM también necesita acceso a la consola, adjunte directivas adicionales. Para obtener más información, consulte Grant permissions to RAM users .
Paso 2: Compruebe la directiva
Inicie sesión en la consola de OpenAPI Explorer como el usuario de RAM y pruebe cada operación:
|
Operation |
Scenario |
Expected Result |
|
Crear |
La solicitud incluye la etiqueta |
Correcto |
|
Crear |
La solicitud no tiene etiqueta o tiene una diferente |
Error: permiso denegado |
|
Eliminar |
La instancia de destino tiene la etiqueta |
Correcto |
|
Eliminar |
La instancia de destino no tiene la etiqueta |
Error: permiso denegado |
|
Consulta |
Especifique un ID de instancia (la instancia tiene |
Devuelve la instancia |
|
Consulta |
Especifique un ID de instancia (la instancia tiene |
Devuelve la instancia |
|
Consulta |
Especifique un ID de instancia (la instancia no tiene |
Devuelve un resultado vacío |
|
Consulta |
Especifique solo la etiqueta |
Devuelve todas las instancias con |
|
Consulta |
Sin ID de instancia y sin etiqueta especificada |
Devuelve un resultado vacío |
Lógica de autenticación por tipo de operación
Después de adjuntar una directiva basada en etiquetas a un usuario de RAM, ECI evalúa cada solicitud de API con la condición correspondiente. La condición utilizada depende del tipo de operación.
|
Operation Type |
Example Operations |
Resource ID Required |
Condition Evaluated |
Authentication Rules |
|
Crear |
|
No |
|
Se ejecuta correctamente si la solicitud incluye una etiqueta que coincide con la condición de la directiva. Falla si no se incluye ninguna etiqueta o si la etiqueta no coincide. |
|
Consulta |
|
Se requiere ID o etiqueta |
|
Se ejecuta correctamente si: la etiqueta del recurso coincide con |
|
Actualizar |
|
Sí |
|
Se ejecuta correctamente si la etiqueta del recurso coincide con |
|
Otro ciclo de vida |
|
Sí |
|
Se ejecuta correctamente si la etiqueta del recurso coincide con |
En las operaciones de consulta, un fallo de autenticación devuelve un resultado vacío en lugar de un error.
Pasos siguientes
Para vincular etiquetas a recursos de ECI, consulte Use tags to manage elastic container instances.
Para obtener más información sobre la estructura de las directivas de RAM, consulte Policy structure and syntax.