Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2022-11-08 GMT+08:00

Sintaxis de política

A continuación se utiliza una política personalizada para OBS como ejemplo para describir la sintaxis.

{
    "Version": "1.1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "obs:bucket:ListAllMyBuckets",
                "obs:bucket:HeadBucket",
                "obs:bucket:ListBucket",
                "obs:bucket:GetBucketLocation"
            ],
            "Condition": {
                "StringEndWithIfExists": {
                    "g:UserName": [
                        "specialCharactor"
                    ]
                },
                "Bool": {
                    "g:MFAPresent": [
                        "true"
                    ]
                }
            },
            "Resource": [
                "obs:*:*:bucket:*"
            ]
        }
    ]
}

Estructura de políticas

Una política consiste en una versión y una o más sentencias (que indican diferentes acciones).

Figura 1 Estructura de políticas

Parámetros de política

Los parámetros de directiva incluyen Version y Statement, que se describen en la tabla siguiente. Puede crear políticas personalizadas especificando los parámetros. Para más detalles, consulte Casos de uso de políticas personalizadas.

Tabla 1 Parámetros de política

Parámetro

Descripción

Valor

Version

Versión de política

1.1: indica el control de acceso basado en políticas.

Statement

Effect

Determina si se permiten o deniegan las operaciones definidas en la acción.

  • Allow
  • Deny
NOTA:

Si las políticas utilizadas para conceder permisos a un usuario contienen Allow y Deny para la misma acción, el Deny tiene prioridad.

Action

Operaciones a realizar en el servicio.

Formato: "Service name:Resource type:Operation". Se admiten caracteres carácter comodín (*), que indican todas las opciones.

Ejemplo:

obs:bucket:ListAllMybuckets: Permisos para listar todos los buckets OBS.

Vea todas las acciones del servicio en su Referencia de API, por ejemplo, consulte Acciones admitidas de OBS.

Condition

Determina cuándo entra en vigor una política. Una condición consiste en una clave de condición y un operador.

Formato: "Condition operator:{Condition key:[Value 1,Value 2]}"

Si establece varias condiciones, la política sólo tendrá efecto cuando se cumplan todas las condiciones.

Ejemplo:

StringEndWithIfExists":{"g:UserName":["specialCharactor"]}: La instrucción es válida para usuarios cuyos nombres terminan con specialCharactor.

Resource

Recursos sobre los que entra en vigor la política.

Formato: Service name:Region:Account ID:Resource type:Resource path. Se admiten caracteres carácter comodín (*).

Ejemplo:

  • obs:*:*:bucket:*: Todos los buckets OBS.
  • obs:*:*:object:my-bucket/my-object/*: Todos los objetos del directorio my-object del bucket my-bucket.
  • Condition key
    Una clave de condición es una clave en el elemento Condition de una sentencia. Hay claves de condición globales y de nivel de servicio.
    • Las claves de condición globales (comenzando con g:) se aplican a todas las operaciones. IAM proporciona common global condition keys y special global condition keys.
      • Claves de condición globales comunes: Los servicios en la nube no necesitan proporcionar información de identidad del usuario. En su lugar, IAM abstrae automáticamente la información del usuario y autentica a los usuarios. Para obtener más información, consulte Claves de condiciones globales comunes.
      • Claves de condición global especiales: IAM obtiene información de condición de los servicios en la nube para la autenticación.
    • Las claves de condición de nivel de servicio (comenzando con una abreviatura de nombre de servicio, por ejemplo, obs:) sólo se aplican a las operaciones en el servicio especificado. Para obtener más información, consulte la guía del usuario del servicio en la nube correspondiente, por ejemplo, consulte Condiciones de solicitud de OBS
    Tabla 2 Common global condition keys

    Global Condition Key

    Tipo

    Descripción

    g:CurrentTime

    Time

    Tiempo en la que se recibe una solicitud de autenticación. El tiempo se expresa en el formato definido por ISO 8601, por ejemplo, 2012-11-11T23:59:59Z

    g:DomainName

    String

    Nombre de cuenta.

    g:MFAPresent

    Boolean

    Indica si se obtiene un token a través de la autenticación MFA.

    g:MFAAge

    Number

    Período de validez de un token obtenido mediante autenticación MFA. Esta condición debe usarse junto con g:MFAPresent.

    g:ProjectName

    String

    Nombre del proyecto.

    g:ServiceName

    String

    Nombre del servicio.

    g:UserId

    String

    ID de usuario de IAM.

    g:UserName

    String

    Nombre de usuario de IAM.

  • Operador

    Un operador (consulte Operators), una clave de condición y un valor de condición juntos constituyen una declaración de condición completa. Una política solo entra en vigor cuando se cumplen las condiciones de solicitud. El sufijo de operador IfExists indica que una política entra en vigor si un valor de solicitud está vacío o cumple la condición especificada. Por ejemplo, si se selecciona el operador StringEqualsIfExists para una política, la política tiene efecto si un valor de solicitud está vacío o es igual al valor de condición especificado.

    Tabla 3 Operadores (los operadores de cadena no distinguen entre mayúsculas y minúsculas a menos que se especifique lo contrario.)

    Operador

    Tipo

    Descripción

    StringEquals

    String

    (Sensible a mayúsculas y minúsculas) El valor de solicitud es el mismo que el valor de condición.

    StringNotEquals

    String

    (Sensible a mayúsculas y minúsculas) El valor de solicitud es diferente del valor de condición.

    StringEqualsIgnoreCase

    String

    El valor de solicitud es el mismo que el valor de condición.

    StringNotEqualsIgnoreCase

    String

    El valor de solicitud es diferente del valor de condición.

    StringLike

    String

    El valor de solicitud contiene el valor de condición.

    StringNotLike

    String

    El valor de solicitud no contiene el valor de condición.

    StringStartWith

    String

    El valor de solicitud comienza con el valor de condición.

    StringEndWith

    String

    El valor de solicitud termina con el valor de condición.

    StringNotStartWith

    String

    El valor de solicitud no comienza con el valor de condición.

    StringNotEndWith

    String

    El valor de solicitud no termina con el valor de condición.

    StringEqualsAnyOf

    String

    (Sensible a mayúsculas y minúsculas) El valor de solicitud es el mismo que cualquiera de los valores de condición configurados.

    StringNotEqualsAnyOf

    String

    (Sensible a mayúsculas y minúsculas) El valor de solicitud es diferente de todos los valores de condición configurados.

    StringEqualsIgnoreCaseAnyOf

    String

    El valor de solicitud es el mismo que cualquiera de los valores de condición configurados.

    StringNotEqualsIgnoreCaseAnyOf

    String

    El valor de solicitud es diferente de todos los valores de condición configurados.

    StringLikeAnyOf

    String

    El valor de solicitud contiene cualquiera de los valores de condición configurados.

    StringNotLikeAnyOf

    String

    El valor de solicitud no contiene ninguno de los valores de condición configurados.

    StringStartWithAnyOf

    String

    El valor de solicitud comienza con cualquiera de los valores de condición configurados.

    StringEndWithAnyOf

    String

    El valor de solicitud termina con cualquiera de los valores de condición configurados.

    StringNotStartWithAnyOf

    String

    El valor de solicitud no comienza con ninguno de los valores de condición configurados.

    StringNotEndWithAnyOf

    String

    El valor de solicitud no termina con ninguno de los valores de condición configurados.

    NumberEquals

    Number

    El valor de solicitud es igual al valor de condición.

    NumberNotEquals

    Number

    El valor de solicitud no es igual al valor de condición.

    NumberLessThan

    Number

    El valor de solicitud es menor que el valor de condición.

    NumberLessThanEquals

    Number

    El valor de solicitud es menor o igual que el valor de condición.

    NumberGreaterThan

    Number

    El valor de solicitud es mayor que el valor de condición.

    NumberGreaterThanEquals

    Number

    El valor de solicitud es mayor o igual que el valor de condición.

    NumberEqualsAnyOf

    Number

    El valor de solicitud es igual a cualquiera de los valores de condición configurados.

    NumberNotEqualsAnyOf

    Number

    El valor de solicitud no es igual a ninguno de los valores de condición configurados.

    DateLessThan

    Time

    El valor de solicitud es anterior al valor de condición.

    DateLessThanEquals

    Time

    El valor de solicitud es anterior o igual al valor de condición.

    DateGreaterThan

    Time

    El valor de solicitud es posterior al valor de condición.

    DateGreaterThanEquals

    Time

    El valor de solicitud es posterior o igual al valor de condición.

    Bool

    Boolean

    El valor de solicitud es igual al valor de condición.

    IpAddress

    IP address

    El valor de solicitud está dentro del intervalo de direcciones IP establecido en el valor de condición.

    NotIpAddress

    IP address

    El valor de solicitud está más allá del intervalo de direcciones IP establecido en el valor de condición.

    IsNullOrEmpty

    Null

    El valor de la solicitud es nulo o una cadena vacía.

    IsNull

    Null

    El valor de la solicitud es nulo.

    IsNotNull

    Null

    El valor de la solicitud no es nulo.