Todos los productos
Search
Centro de documentos

Resource Access Management:Permission policy elements

Última actualización: Sep 03, 2026

En RAM, se utiliza una directiva de permisos para definir permisos específicos. Una directiva de permisos consta de elementos básicos, entre los que se incluyen Effect, Action/NotAction, Resource, Condition y Principal.

Elemento

Descripción

Effect

Especifica si la declaración de la directiva permite o deniega el acceso. Los valores válidos son:

  • Allow: Permite el acceso.

  • Deny: Deniega el acceso.

Action/NotAction

La operación que se realiza sobre un recurso específico. Debe especificar Action o NotAction en una declaración de directiva:

  • Action: La operación específica que se permite o se deniega.

  • NotAction: Las operaciones exentas de la directiva. Al usar NotAction, todas las operaciones se permiten o deniegan, excepto las enumeradas.

Resource

El objeto u objetos específicos a los que se aplica la directiva.

Condition

Las condiciones bajo las cuales surte efecto la autorización.

Principal

La entidad a la que se le permite o deniega el acceso a un recurso. Este elemento solo aplica a directivas basadas en recursos, como la directiva de confianza de un rol de RAM.

Effect

El elemento Effect especifica si una directiva permite o deniega el acceso. Este elemento es obligatorio.

Los valores válidos para el elemento Effect son Allow y Deny.

Nota

Si una directiva de permisos contiene tanto Allow como Deny, Deny tiene prioridad.

Ejemplo:

"Effect": "Allow"

Action/NotAction

Una declaración de directiva debe incluir un elemento Action o NotAction. Action especifica las operaciones que se permiten o deniegan. NotAction especifica las operaciones que están exentas de la directiva.

Los valores válidos para el elemento Action/NotAction son los nombres de las operaciones de API definidas por el servicio en la nube.

El formato del elemento Action/NotAction es <ram-code>:<action-name>.

  • ram-code: El código de RAM del servicio en la nube. Para obtener más información, consulte la columna RAM Code en Alibaba Cloud services that support RAM.

  • action-name: El nombre de la operación de API correspondiente.

El valor del elemento Action/NotAction generalmente no distingue entre mayúsculas y minúsculas. Sin embargo, para garantizar un comportamiento consistente, utilice exactamente el prefijo <ram-code> y <action-name> tal como se especifican en la documentación de autorización del servicio en la nube.

Ejemplos:

  • Ejemplo de Action

    "Action": [
      "oss:ListBuckets",
      "ecs:Describe*",
      "rds:Describe*"
    ]
  • Independencia del orden

    El orden de los elementos en la matriz Action no afecta el resultado de la autorización. Cada acción se evalúa de forma independiente, sin importar su posición en la matriz. Por lo tanto, las siguientes dos notaciones son equivalentes:

    "Action": [
      "ecs:DescribeSecurityGroups",
      "ecs:DescribeInstances"
    ]
    "Action": [
      "ecs:DescribeInstances",
      "ecs:DescribeSecurityGroups"
    ]
  • Ejemplo de NotAction

    El siguiente ejemplo permite todas las operaciones excepto las de RAM. La directiva solo enumera la operación excluida (ram:*) en lugar de todas las operaciones permitidas, lo que hace que la declaración sea más corta. No obstante, esto otorga permisos amplios. Utilícelo con precaución y asegúrese de que la directiva se comporte como espera.

    {
    	"Effect": "Allow",
    	"NotAction": "ram:*",
    	"Resource": "*"
    }

Resource

El elemento Resource describe uno o varios objetos a los que se aplica la directiva. Este elemento se usa en directivas basadas en identidad y es obligatorio.

El valor del elemento Resource es el ARN (Aliyun Resource Name) de un recurso definido por un servicio en la nube.

El formato del elemento Resource es acs:<ram-code>:<region>:<account-id>:<relative-id>. Utilice el ARN exacto tal como se especifica en la documentación de autorización del servicio en la nube.

El formato se describe a continuación:

  • acs: Abreviatura de Alibaba Cloud service. Identifica que la solicitud está dirigida a la plataforma de nube pública de Alibaba Cloud.

  • ram-code: El código de RAM para el servicio en la nube. Para obtener más información, consulte la columna RAM Code en Alibaba Cloud services that support RAM.

  • region: La información de la región. Para recursos globales, a los que se puede acceder sin especificar una región, utilice un asterisco (*). Para obtener más información, consulte Regions and availability zones.

  • account-id: El ID de una cuenta de Alibaba Cloud. Por ejemplo, 123456789012****.

  • relative-id: La parte del ARN que describe el recurso, con una semántica definida por el servicio en la nube específico. Esta parte admite una estructura similar a un árbol, parecida a una ruta de archivo. Por ejemplo, para especificar un objeto de OSS, el formato es relative-id = "mybucket/dir1/object1.jpg".

Ejemplo:

"Resource": [
  "acs:ecs:*:*:instance/inst-001",
  "acs:ecs:*:*:instance/inst-002",
  "acs:oss:*:*:mybucket",
  "acs:oss:*:*:mybucket/*"
]

Condition

El elemento Condition especifica las condiciones que deben cumplirse para que una directiva surta efecto. Este elemento es opcional.

El elemento Condition, también llamado bloque de condiciones, consta de una o varias cláusulas de condición. Cada cláusula contiene un operador de condición, una clave de condición y uno o varios valores de condición.

条件块判断逻辑

Nota

Dado que el elemento Condition es opcional, el sistema no valida su presencia. Si utiliza el elemento Condition para especificar condiciones, asegúrese de usar la ortografía y el uso de mayúsculas correctos.

El nombre (clave) de una clave de condición distingue entre mayúsculas y minúsculas. Si el valor de condición (valor) distingue entre mayúsculas y minúsculas depende del operador de condición que utilice. Por ejemplo, para una clave de condición de tipo cadena, si usa el operador StringEquals, este compara el valor en la directiva con el valor en la solicitud, y la coincidencia distingue entre mayúsculas y minúsculas. Si usa el operador StringEqualsIgnoreCase, compara el valor en la directiva con el valor en la solicitud, pero ignora las mayúsculas y minúsculas.

El elemento Condition tiene las siguientes características:

  • Lógica de evaluación

    • La condición se cumple si el valor de la clave en la solicitud coincide con cualquiera de los valores en la directiva (un OR lógico).

    • Si una cláusula de condición contiene varias claves de condición, todas las claves deben coincidir para que se cumpla la cláusula (un AND lógico).

    • El bloque de condiciones completo se cumple solo si todas sus cláusulas se cumplen (un AND lógico).

  • Tipos de operadores de condición

    Los tipos de operadores de condición incluyen Cadena, Número, Fecha y hora, Booleano y Dirección IP. Para conocer los significados y ejemplos de los operadores de condición, consulte Condition operators.

  • Claves de condición

    • Las claves de condición globales de Alibaba Cloud utilizan el formato: acs:<condition-key>.

      Clave de condición global

      Tipo

      Descripción

      acs:CurrentTime

      Fecha y hora

      La hora en que el servidor web recibe la solicitud.

      Nota

      Utilice la hora UTC en el formato estándar ISO 8601.

      Por ejemplo, las 20:00:00 del 10 de enero de 2023, en hora de Beijing (UTC+8), se representan como 2023-01-10T20:00:00+08:00 o 2023-01-10T12:00:00Z.

      acs:SecureTransport

      Booleano

      Indica si la solicitud se envió a través de un canal seguro, como HTTPS.

      acs:SourceIp

      Dirección IP

      La dirección IP del cliente desde la que se envió la solicitud.

      Nota

      El valor de acs:SourceIp puede ser una dirección IP específica o un bloque CIDR. No escriba una dirección IP específica en formato CIDR. Por ejemplo, no escriba 10.0.0.1 como 10.0.0.1/32.

      acs:MFAPresent

      Booleano

      Indica si el usuario inició sesión con autenticación multifactor (MFA).

      Nota

      Si MFA for RAM user sign-in está configurado como Required Only for Unusual Logon en la configuración de seguridad del usuario de RAM, la condición acs:MFAPresent deja de tener efecto. Para obtener más información, consulte Manage the security settings of a RAM user.

      acs:PrincipalARN

      Cadena

      La identidad del principal de la solicitud. Solo se puede utilizar en las directivas de control de Resource Directory y en las directivas de confianza de roles de RAM. Por ejemplo, acs:ram:::role/resourcedirectory.

      Nota

      Actualmente, solo se admite el ARN de un rol de RAM, y debe estar en minúsculas. Puede encontrar el ARN de un rol de RAM en su página de detalles en la consola de RAM.

      acs:PrincipalRDId

      Cadena

      El ID del Resource Directory al que pertenece la cuenta en la nube del principal de la solicitud; por ejemplo, rd-AA****. Para ver un ID de Resource Directory, consulte View the basic information of a resource directory.

      Solo se puede utilizar en las directivas de confianza de roles de RAM y en las Bucket Policies de OSS.

      acs:PrincipalRDPath

      Cadena

      La ruta de la cuenta en la nube del principal de la solicitud dentro del Resource Directory. El formato suele ser <RD-Id>/<Root-folder-Id>/<Sub-folder-Id>/<Member-account-Id>; por ejemplo, rd-AA**/r-aQ/fd-caiJfl/199386846043**. Para obtener información sobre cómo ver la RDPath completa de una cuenta miembro, consulte View the information of a member.

      Para hacer coincidir todas las cuentas miembro bajo una RDPath especificada, puede usar el carácter comodín con el operador de condición StringLike. Por ejemplo, "Condition": {"StringLike": {"acs:PrincipalRDPath": ["<RD-Id>/<Root-folder-Id>/<Sub-folder-Id>"]}}.

      Solo se puede utilizar en las directivas de confianza de roles de RAM y en las Bucket Policies de OSS.

      acs:RequestTag/<tag-key>

      Cadena

      Las etiquetas incluidas en la solicitud. Reemplace <tag-key> con su clave de etiqueta real. Para conocer los servicios en la nube y tipos de recursos compatibles, consulte la información de Authentication by Resource Type en Alibaba Cloud services that support tags.

      acs:ResourceTag/<tag-key>

      Cadena

      Las etiquetas asociadas al recurso solicitado. Reemplace <tag-key> con su clave de etiqueta real. Para conocer los servicios en la nube y tipos de recursos compatibles, consulte la información de Authentication by Resource Type en Alibaba Cloud services that support tags.

    • Las claves de condición específicas del servicio utilizan el formato: <ram-code>:<condition-key>.

      Por ejemplo, la clave de condición de OSS oss:Delimiter se usa en solicitudes ListObjects para agrupar nombres de objetos por carácter.

      Para consultar las claves de condición específicas de cada servicio en la nube, revise la documentación de autorización de dicho servicio.

  • Ejemplos de Condition

    Las cláusulas de condición (como IpAddress y Bool) dentro de un solo bloque Condition se evalúan con un AND lógico. Para crear un OR lógico, coloque cada condición en una declaración de directiva separada.

    Ejemplo 1: Permitir que un usuario de RAM acceda a instancias de ECS solo si el usuario ha habilitado MFA y está realizando la solicitud desde la dirección IP 203.0.113.2.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "ecs:*",
          "Resource": "*",
          "Condition": {
            "IpAddress": {
              "acs:SourceIp": [
                "203.0.113.2"
              ]
            },
            "Bool": {
              "acs:MFAPresent": [
                "true"
              ]
            }
          }
        }
      ]
    }

    Ejemplo 2: Permitir que un usuario de RAM acceda a instancias de ECS si el usuario ha habilitado MFA o está realizando la solicitud desde la dirección IP 203.0.113.2.

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "ecs:*",
                "Resource": "*",
                "Condition": {
                    "IpAddress": {
                        "acs:SourceIp": [
                            "203.0.113.2"
                        ]
                    }
                }
            },
            {
                "Effect": "Allow",
                "Action": "ecs:*",
                "Resource": "*",
                "Condition": {
                    "Bool": {
                        "acs:MFAPresent": [
                            "true"
                        ]
                    }
                }
            }
        ]
    }

Principal

El elemento Principal, obligatorio en las directivas basadas en recursos, especifica la entidad a la que se le permite o deniega el acceso a un recurso.

Nota

No puede utilizar el elemento Principal en una directiva basada en identidad. Una directiva basada en identidad es una directiva de permisos adjunta a una identidad de RAM (un usuario de RAM, un grupo de usuarios o un rol de RAM). La identidad a la que se adjunta la directiva es el principal implícito.

En el elemento Principal, puede agregar varios tipos de principales y especificar múltiples principales para cada tipo. Separe los distintos tipos de principales con comas (,). Si un tipo de principal incluye varios valores, enciérrelos entre corchetes ([ ]) y sepárelos con comas (,). Varios principales tienen una relación OR, lo que significa que se otorgan permisos a todos los principales especificados.

A continuación se muestra un ejemplo de un elemento Principal:

"Principal": {
  "RAM": [
    "acs:ram::123456789012****:root",
    "acs:ram::987654321098****:root"
  ],
  "Service": "ecs.aliyuncs.com"
}

Un principal es una entidad autenticada. Puede ser uno de los siguientes tipos:

  • Cuenta de Alibaba Cloud

    Puede especificar una cuenta de Alibaba Cloud como principal. Esto otorga permisos a todos los usuarios de RAM y roles de RAM bajo esa cuenta. Cuando especifique una cuenta de Alibaba Cloud, debe usar su ARN (acs:ram::<account-id>:root). A continuación se muestra un ejemplo:

    "Principal": {
        "RAM": "acs:ram::123456789012****:root"
    }
    Nota

    Especificar el ARN de la cuenta (...:root) como principal implica confiar en toda la cuenta, no en una identidad de usuario específica. Posteriormente, los permisos se pueden delegar dentro de esa cuenta.

  • Usuario de RAM

    Puede especificar un usuario de RAM como principal. Debe especificar el ARN del usuario de RAM (acs:ram::<account-id>:user/<user-name>), donde <user-name> debe ser el nombre del usuario de RAM. A continuación se muestra un ejemplo:

    "Principal": {
      "RAM": [
        "acs:ram::123456789012****:user/<user1-name>",
        "acs:ram::123456789012****:user/<user2-name>"
      ]
    }

    Cuando especifica un usuario de RAM en el elemento Principal, no puede usar un carácter comodín (*) para coincidencias parciales. Debe especificar el nombre completo del usuario de RAM.

    Importante

    En una directiva de confianza de rol de RAM, si el elemento Principal contiene el ARN de un usuario de RAM, el sistema convierte este ARN en un ID (por ejemplo, 29695932303672****) cuando guarda la directiva de confianza. Normalmente no verá este ID. Aparece en la directiva de confianza solo si se elimina el usuario de RAM especificado. Si esto ocurre, puede eliminar el ID o reemplazarlo con el ARN de un usuario de RAM válido. Este mecanismo ayuda a reducir los riesgos de seguridad. Además, cuando crea o actualiza una directiva de confianza, no necesita preocuparse por el uso de mayúsculas y minúsculas en <user-name>, ya que el sistema lo convierte automáticamente a un ARN estándar.

  • Rol de RAM

    Puede especificar un rol de RAM como principal. Debe especificar el ARN del rol de RAM (acs:ram::<account-id>:role/<role-name>), donde <role-name> debe ser el nombre del rol de RAM. A continuación se muestra un ejemplo:

    "Principal": {
      "RAM": [
        "acs:ram::123456789012****:role/<role-name>"
      ]
    }

    Cuando especifica un rol de RAM en el elemento Principal, no puede usar un carácter comodín (*) para coincidencias parciales. Debe especificar el nombre completo del rol de RAM.

    Importante

    En una directiva de confianza de rol de RAM, si el elemento Principal contiene el ARN de un rol de RAM, el sistema convierte este ARN en un ID (por ejemplo, 38915594982675****) cuando guarda la directiva de confianza. Por lo general, no tendrá conocimiento de este ID. Se muestra en la directiva de confianza solo cuando se elimina el rol de RAM especificado. En este caso, puede eliminar el ID o reemplazarlo con el ARN de un rol de RAM válido. Este mecanismo ayuda a reducir los riesgos de seguridad. Además, cuando crea o actualiza una directiva de confianza, no necesita preocuparse por si <role-name> distingue entre mayúsculas y minúsculas. El sistema lo convierte automáticamente a un ARN estándar.

  • Servicio de Alibaba Cloud

    Puede especificar un servicio de Alibaba Cloud como principal. El principal de servicio es un identificador para un servicio, que normalmente utiliza el formato <service-name>.aliyuncs.com. Para el valor de <service-name>, utilice el nombre completo del servicio proporcionado por el servicio en la nube. A continuación se muestra un ejemplo:

    "Principal": {
      "Service": [
        "ecs.aliyuncs.com"
      ]
    }
  • Proveedor de identidades

    Puede especificar un proveedor de identidades como principal. Debe especificar el ARN del proveedor de identidades. Alibaba Cloud admite el inicio de sesión único (SSO) basado en SAML 2.0 y OIDC. Un SSO que utiliza el protocolo SAML requiere un proveedor de identidades SAML, cuyo ARN tiene el formato acs:ram::<account-id>:saml-provider/<provider-name>. Un SSO que utiliza el protocolo OIDC requiere un proveedor de identidades OIDC, cuyo ARN tiene el formato acs:ram::<account-id>:oidc-provider/<provider-name>. El valor del ARN en el elemento Principal distingue entre mayúsculas y minúsculas. Utilice la información estándar del ARN para el proveedor de identidades proporcionada por el sistema.

    "Principal": {
      "Federated": [
        "acs:ram::123456789012****:saml-provider/<provider-name>"
      ]
    }