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).
![](https://support.huaweicloud.com/intl/es-us/usermanual-iam/figure/es-us_image_0000001111040704.png)
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.
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. |
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:
|
- 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.
- 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.
- 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.