Os operadores em um elemento Condition combinam chaves e valores de condição para formar uma instrução condicional. A política é aplicada quando uma solicitação atende a essa condição. Os operadores dividem-se em cinco categorias: string, número, data e hora, booleano e endereço IP. Este tópico descreve os operadores compatíveis com o Resource Access Management (RAM) e fornece exemplos de uso.
String
|
Categoria |
Operador |
Descrição |
|
String |
StringEquals |
Corresponde exatamente à string especificada (diferencia maiúsculas de minúsculas). |
|
StringNotEquals |
Não corresponde exatamente à string especificada (diferencia maiúsculas de minúsculas). |
|
|
StringEqualsIgnoreCase |
Corresponde exatamente à string especificada (não diferencia maiúsculas de minúsculas). |
|
|
StringNotEqualsIgnoreCase |
Não corresponde exatamente à string especificada (não diferencia maiúsculas de minúsculas). |
|
|
StringLike |
Corresponde a um padrão de string (diferencia maiúsculas de minúsculas e aceita asteriscos [
|
|
|
StringNotLike |
Não corresponde a um padrão de string (diferencia maiúsculas de minúsculas e aceita asteriscos [
|
Exemplos:
StringEquals
Esta política permite que um usuário do RAM gerencie apenas instâncias do ECS com a tag team:dev. Ela utiliza o operador StringEquals e a chave de condição acs:ResourceTag no elemento Condition.
{
"Effect": "Allow",
"Action": "ecs:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:ResourceTag/team": [
"dev"
]
}
}
}
StringLike
Esta política permite que um usuário do RAM utilize a CLI do OSS para acessar a pasta myphotos/hangzhou/2015/ e listar os objetos nela contidos. A política emprega o operador StringLike e a chave de condição oss:Prefix no elemento Condition. Isso garante que apenas objetos com o prefixo hangzhou/2015/ sejam listados.
{
"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
|
Categoria |
Operador |
Descrição |
|
Número |
NumericEquals |
Igual a. |
|
NumericNotEquals |
Diferente de. |
|
|
NumericLessThan |
Menor que. |
|
|
NumericLessThanEquals |
Menor ou igual a. |
|
|
NumericGreaterThan |
Maior que. |
|
|
NumericGreaterThanEquals |
Maior ou igual a. |
Exemplo:
Esta política impede que usuários e funções do RAM excluam credenciais do Key Management Service (KMS) se a janela de recuperação estiver definida como 10 dias ou menos. Para isso, utiliza o operador NumericLessThanEquals e a chave de condição kms:RecoveryWindowInDays no elemento Condition.
{
"Statement": [
{
"Effect": "Deny",
"Action": "kms:DeleteSecret",
"Principal": "*",
"Resource": "*",
"Condition": {
"NumericLessThanEquals": {
"kms:RecoveryWindowInDays": "10"
}
}
}
]
}
Data e hora
|
Categoria |
Operador |
Descrição |
|
Data e hora |
DateEquals |
Igual a. |
|
DateNotEquals |
Diferente de. |
|
|
DateLessThan |
Anterior a. |
|
|
DateLessThanEquals |
Anterior ou igual a. |
|
|
DateGreaterThan |
Posterior a. |
|
|
DateGreaterThanEquals |
Posterior ou igual a. |
Exemplo:
Esta política permite que um usuário do RAM acesse instâncias do ECS apenas antes das 17h00 de 12 de agosto de 2019 (UTC+8). Ela faz uso do operador DateLessThan e da chave de condição acs:CurrentTime no elemento Condition.
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"DateLessThan": {
"acs:CurrentTime": "2019-08-12T17:00:00+08:00"
}
}
}
],
"Version": "1"
}
Booleano
|
Categoria |
Operador |
Descrição |
|
Booleano |
Bool |
Corresponde a um valor booleano ( |
Exemplo:
Esta política restringe o acesso às instâncias do ECS apenas aos usuários do RAM que ativaram a autenticação multifator (MFA). O operador utilizado é o Bool, juntamente com a chave de condição acs:MFAPresent no elemento Condition.
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"Bool": {
"acs:MFAPresent": "true"
}
}
}
],
"Version": "1"
}
Endereço IP
|
Categoria |
Operador |
Descrição |
|
Endereço IP |
IpAddress |
Corresponde ao endereço IP especificado ou está dentro do bloco CIDR indicado. |
|
NotIpAddress |
Não corresponde ao endereço IP especificado e não está dentro do bloco CIDR indicado. |
|
|
IpAddressIncludeBorder |
Corresponde ao endereço IP ou bloco CIDR especificado. Nota
Compatível apenas com alguns serviços de nuvem. Teste este operador antes de utilizá-lo. |
|
|
NotIpAddressIncludeBorder |
Não corresponde ao endereço IP ou bloco CIDR especificado. Nota
Compatível apenas com alguns serviços de nuvem. Teste este operador antes de utilizá-lo. |
Exemplo:
Esta política autoriza um usuário do RAM a acessar instâncias do ECS exclusivamente a partir dos endereços IP 192.0.2.0/24 e 203.0.113.2. A configuração aplica o operador IpAddress e a chave de condição acs:SourceIp no elemento Condition.
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"192.0.2.0/24",
"203.0.113.2"
]
}
}
}
],
"Version": "1"
}