Los operadores dentro de un elemento Condition combinan claves y valores de condición para formar una instrucción condicional. La política se aplica cuando una solicitud cumple dicha condición. Los operadores se dividen en cinco tipos: cadena, número, fecha y hora, booleano y dirección IP. Este tema describe los operadores compatibles con Resource Access Management (RAM) e incluye ejemplos.
Cadena
|
Categoría |
Operador |
Descripción |
|
Cadena |
StringEquals |
Coincide con una cadena exacta (distingue mayúsculas de minúsculas). |
|
StringNotEquals |
No coincide con una cadena exacta (distingue mayúsculas de minúsculas). |
|
|
StringEqualsIgnoreCase |
Coincide con una cadena exacta (no distingue mayúsculas de minúsculas). |
|
|
StringNotEqualsIgnoreCase |
No coincide con una cadena exacta (no distingue mayúsculas de minúsculas). |
|
|
StringLike |
Coincide con un patrón de cadena (distingue mayúsculas de minúsculas y admite asteriscos [
|
|
|
StringNotLike |
No coincide con un patrón de cadena (distingue mayúsculas de minúsculas y admite asteriscos [
|
Ejemplos:
StringEquals
Esta política permite que un usuario de RAM gestione únicamente las instancias de ECS que tienen la etiqueta team:dev. Usa el operador StringEquals y la clave de condición acs:ResourceTag dentro del elemento Condition.
{
"Effect": "Allow",
"Action": "ecs:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:ResourceTag/team": [
"dev"
]
}
}
}
StringLike
Esta política permite que un usuario de RAM use la CLI de OSS para acceder a la carpeta myphotos/hangzhou/2015/ y listar los objetos que contiene. Para ello, emplea el operador StringLike y la clave de condición oss:Prefix en el elemento Condition. De este modo, se garantiza que solo se listen los objetos con el prefijo hangzhou/2015/.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:GetObject"
],
"Resource": [
"acs:oss:*:*:myphotos/hangzhou/2015/*"
]
},
{
"Effect": "Allow",
"Action": [
"oss:ListObjects"
],
"Resource": [
"acs:oss:*:*:myphotos"
],
"Condition":{
"StringLike":{
"oss:Prefix":"hangzhou/2015/*"
}
}
}
]
}
Número
|
Categoría |
Operador |
Descripción |
|
Número |
NumericEquals |
Igual a. |
|
NumericNotEquals |
Distinto de. |
|
|
NumericLessThan |
Menor que. |
|
|
NumericLessThanEquals |
Menor o igual que. |
|
|
NumericGreaterThan |
Mayor que. |
|
|
NumericGreaterThanEquals |
Mayor o igual que. |
Ejemplo:
Esta política impide que todos los usuarios y roles de RAM eliminen credenciales de Key Management Service (KMS) si la ventana de recuperación se establece en 10 días o menos. Emplea el operador NumericLessThanEquals y la clave de condición kms:RecoveryWindowInDays en el elemento Condition.
{
"Statement": [
{
"Effect": "Deny",
"Action": "kms:DeleteSecret",
"Principal": "*",
"Resource": "*",
"Condition": {
"NumericLessThanEquals": {
"kms:RecoveryWindowInDays": "10"
}
}
}
]
}
Fecha y hora
|
Categoría |
Operador |
Descripción |
|
Fecha y hora |
DateEquals |
Igual a. |
|
DateNotEquals |
Distinto de. |
|
|
DateLessThan |
Anterior a. |
|
|
DateLessThanEquals |
Anterior o igual a. |
|
|
DateGreaterThan |
Posterior a. |
|
|
DateGreaterThanEquals |
Posterior o igual a. |
Ejemplo:
Esta política permite que un usuario de RAM acceda a las instancias de ECS únicamente antes de las 17:00 del 12 de agosto de 2019 (UTC+8). Usa el operador DateLessThan y la clave de condición acs:CurrentTime en el elemento Condition.
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"DateLessThan": {
"acs:CurrentTime": "2019-08-12T17:00:00+08:00"
}
}
}
],
"Version": "1"
}
Booleano
|
Categoría |
Operador |
Descripción |
|
Booleano |
Bool |
Coincide con un valor booleano ( |
Ejemplo:
Esta política permite que solo los usuarios de RAM con autenticación multifactor (MFA) habilitada accedan a las instancias de ECS. Aplica el operador Bool y la clave de condición acs:MFAPresent dentro del elemento Condition.
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"Bool": {
"acs:MFAPresent": "true"
}
}
}
],
"Version": "1"
}
Dirección IP
|
Categoría |
Operador |
Descripción |
|
Dirección IP |
IpAddress |
Coincide con la dirección IP especificada o se encuentra dentro del bloque CIDR indicado. |
|
NotIpAddress |
No coincide con la dirección IP especificada ni se encuentra dentro del bloque CIDR indicado. |
|
|
IpAddressIncludeBorder |
Coincide con la dirección IP o el bloque CIDR especificado. Nota
Solo algunos servicios en la nube son compatibles con este operador. Pruébelo antes de usarlo. |
|
|
NotIpAddressIncludeBorder |
No coincide con la dirección IP ni con el bloque CIDR especificado. Nota
Solo algunos servicios en la nube son compatibles con este operador. Pruébelo antes de usarlo. |
Ejemplo:
Esta política permite que un usuario de RAM acceda a las instancias de ECS únicamente desde las direcciones IP 192.0.2.0/24 y 203.0.113.2. Usa el operador IpAddress y la clave de condición acs:SourceIp en el elemento Condition.
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"192.0.2.0/24",
"203.0.113.2"
]
}
}
}
],
"Version": "1"
}