Uma política de controle de acesso consiste nos seguintes elementos: Effect, Action ou NotAction, Resource e Condition.
|
Elemento |
Descrição |
|
Effect |
Define se a instrução resulta em permissão explícita ou negação explícita. Valores válidos:
|
|
Action ou NotAction |
Uma ou mais operações de API a permitir ou negar. Especifique Action ou NotAction na política.
|
|
Resource |
Um ou mais objetos aos quais a instrução se aplica. |
|
Condition |
Condições necessárias para a política entrar em vigor. |
Effect
O elemento Effect define se uma política permite ou nega acesso. Esse elemento é obrigatório.
Os valores válidos para o elemento Effect são Allow e Deny.
Se uma política de permissões contiver Allow e Deny, Deny terá precedência.
Exemplo:
"Effect": "Allow"
Action/NotAction
Uma instrução de política deve incluir um elemento Action ou NotAction. Action especifica as operações permitidas ou negadas. NotAction indica as operações isentas da política.
Os valores válidos para o elemento Action/NotAction correspondem aos nomes das operações de API definidos pelo serviço de nuvem.
O formato do elemento Action/NotAction é <ram-code>:<action-name>.
ram-code: código RAM do serviço de nuvem. Para obter mais informações, consulte a coluna RAM Code em Serviços da Alibaba Cloud compatíveis com RAM.action-name: nome da operação de API correspondente.
O valor do elemento Action/NotAction geralmente não diferencia maiúsculas de minúsculas. No entanto, para garantir comportamento consistente, use exatamente o prefixo <ram-code> e o <action-name> conforme especificado na documentação de autorização do serviço de nuvem.
Exemplos:
-
Exemplo de Action
"Action": [ "oss:ListBuckets", "ecs:Describe*", "rds:Describe*" ] -
Exemplo de NotAction
O exemplo a seguir permite todas as operações, exceto as do RAM. A política lista apenas a operação excluída (ram:*), em vez de enumerar todas as permitidas, tornando a instrução mais concisa. Contudo, isso concede permissões amplas. Use essa abordagem com cautela e valide se a política se comporta conforme o esperado.
{ "Effect": "Allow", "NotAction": "ram:*", "Resource": "*" }
Resource
O elemento Resource descreve um ou mais objetos aos quais a política se aplica. Esse elemento é usado em políticas baseadas em identidade e é obrigatório.
O valor do elemento Resource corresponde ao ARN (Aliyun Resource Name) de um recurso definido por um serviço de nuvem.
O formato do elemento Resource é acs:<ram-code>:<region>:<account-id>:<relative-id>. Use o ARN exato conforme especificado na documentação de autorização do serviço de nuvem.
O formato é descrito da seguinte maneira:
acs: abreviação de Alibaba Cloud service. Identifica que a solicitação tem como destino a plataforma de nuvem pública da Alibaba Cloud.ram-code: código RAM do serviço de nuvem. Para obter mais informações, consulte a coluna RAM Code em Serviços da Alibaba Cloud compatíveis com RAM.region: informações da região. Para recursos globais, acessíveis sem especificação de região, use um asterisco (*). Para obter mais informações, consulte Regiões e zonas de disponibilidade.account-id: ID de uma conta da Alibaba Cloud. Por exemplo,123456789012****.relative-id: parte do ARN que descreve o recurso, com semântica definida pelo serviço de nuvem específico. Essa parte suporta uma estrutura hierárquica, semelhante a um caminho de arquivo. Por exemplo, para especificar um objeto do OSS, o formato érelative-id = "mybucket/dir1/object1.jpg".
Exemplo:
"Resource": [
"acs:ecs:*:*:instance/inst-001",
"acs:ecs:*:*:instance/inst-002",
"acs:oss:*:*:mybucket",
"acs:oss:*:*:mybucket/*"
]
Condition
O elemento Condition especifica os requisitos para a política entrar em vigor. Esse elemento é opcional.
O elemento Condition, também chamado de bloco de condições, consiste em uma ou mais cláusulas condicionais. Cada cláusula contém um operador de condição, uma chave de condição e um ou mais valores de condição.

Como o elemento Condition é opcional, o sistema não valida sua presença. Se você usar o elemento Condition para definir critérios, certifique-se de usar a grafia e o uso de maiúsculas/minúsculas corretos.
O nome (chave) de uma chave de condição diferencia maiúsculas de minúsculas. A sensibilidade a maiúsculas e minúsculas do valor da condição (valor) depende do operador de condição utilizado. Por exemplo, para uma chave de condição do tipo string, se você usar o operador StringEquals, ele comparará o valor na política com o valor na solicitação, diferenciando maiúsculas de minúsculas. Caso use o operador StringEqualsIgnoreCase, a comparação entre o valor da política e o da solicitação ignorará diferenças de caixa.
O elemento Condition apresenta as seguintes características:
-
Lógica de avaliação
A condição será atendida se o valor da chave na solicitação corresponder a qualquer um dos valores na política (OR lógico).
Se uma cláusula condicional contiver várias chaves de condição, todas deverão corresponder para que a cláusula seja atendida (AND lógico).
O bloco de condições inteiro só será atendido se todas as suas cláusulas forem satisfeitas (AND lógico).
-
Tipos de operadores de condição
Os tipos de operadores de condição incluem String, Number, Data e hora, Boolean e endereço IP. Para obter os significados e exemplos dos operadores de condição, consulte Operadores de condição.
-
Chaves de condição
-
As chaves de condição globais da Alibaba Cloud usam o formato:
acs:<condition-key>.Chave de condição global
Tipo
Descrição
acs:CurrentTimeData e hora
Momento em que o servidor web recebe a solicitação.
NotaUse o horário UTC no formato padrão ISO 8601.
Por exemplo, 20:00:00 de 10 de janeiro de 2023, no horário de Pequim (UTC+8), é representado como
2023-01-10T20:00:00+08:00ou2023-01-10T12:00:00Z.acs:SecureTransportBoolean
Indica se a solicitação foi enviada por um canal seguro, como HTTPS.
acs:SourceIpEndereço IP
Endereço IP do cliente de onde a solicitação foi enviada.
NotaO valor de
acs:SourceIppode ser um endereço IP específico ou um bloco CIDR. Não escreva um endereço IP específico no formato CIDR. Por exemplo, não escreva 10.0.0.1 como 10.0.0.1/32.acs:MFAPresentBoolean
Indica se o usuário fez login com autenticação multifator (MFA).
NotaSe a opção MFA for RAM user sign-in estiver definida como Required Only for Unusual Logon nas configurações de segurança do usuário RAM, a condição
acs:MFAPresenttorna-se ineficaz. Para obter mais informações, consulte Gerenciar as configurações de segurança de um usuário RAM.acs:PrincipalARNString
Identidade do principal da solicitação. Pode ser usada apenas nas políticas de controle do Resource Directory e nas políticas de confiança de funções RAM. Por exemplo,
acs:ram:::role/resourcedirectory.NotaAtualmente, apenas o ARN de uma função RAM é suportado, e deve estar em letras minúsculas. Você encontra o ARN de uma função RAM na página de detalhes dela no console RAM.
acs:PrincipalRDIdString
ID do Resource Directory ao qual pertence a conta de nuvem do principal da solicitação, por exemplo,
rd-AA****. Para visualizar um ID do Resource Directory, consulte Visualizar as informações básicas de um diretório de recursos.Pode ser usado apenas nas políticas de confiança de funções RAM e nas Bucket Policies do OSS.
acs:PrincipalRDPathString
Caminho da conta de nuvem do principal da solicitação no Resource Directory. O formato geralmente é
<RD-Id>/<Root-folder-Id>/<Sub-folder-Id>/<Member-account-Id>, por exemplo,rd-AA**/r-aQ/fd-caiJfl/199386846043**. Para saber como visualizar o RDPath completo de uma conta membro, consulte Visualizar as informações de um membro.Para corresponder a todas as contas membro sob um RDPath especificado, use o caractere curinga
com o operador de condiçãoStringLike. Por exemplo,"Condition": {"StringLike": {"acs:PrincipalRDPath": ["<RD-Id>/<Root-folder-Id>/<Sub-folder-Id>"]}}.Pode ser usado apenas nas políticas de confiança de funções RAM e nas Bucket Policies do OSS.
acs:RequestTag/<tag-key>String
Tags incluídas na solicitação. Substitua <tag-key> pela sua chave de tag real. Para serviços de nuvem e tipos de recursos compatíveis, consulte as informações de Authentication by Resource Type em Serviços da Alibaba Cloud compatíveis com tags.
acs:ResourceTag/<tag-key>String
Tags anexadas ao recurso solicitado. Substitua <tag-key> pela sua chave de tag real. Para serviços de nuvem e tipos de recursos compatíveis, consulte as informações de Authentication by Resource Type em Serviços da Alibaba Cloud compatíveis com tags.
-
As chaves de condição específicas de serviço usam o formato:
<ram-code>:<condition-key>.Por exemplo, a chave de condição do OSS
oss:Delimiteré usada em solicitações ListObjects para agrupar nomes de objetos por caractere.Para consultar as chaves de condição específicas de cada serviço de nuvem, verifique a documentação de autorização desse serviço.
-
-
Exemplos de condições
Cláusulas de condição (como IpAddress e Bool) dentro de um único bloco Condition são avaliadas com um AND lógico. Para criar um OR lógico, coloque cada condição em uma instrução de política separada.
Exemplo 1: permitir que um usuário RAM acesse instâncias ECS somente se tiver ativado o MFA e estiver fazendo a solicitação a partir do endereço 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" ] } } } ] }Exemplo 2: permitir que um usuário RAM acesse instâncias ECS se tiver ativado o MFA ou estiver fazendo a solicitação a partir do endereço 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" ] } } } ] }
Referências
As políticas de controle de acesso seguem sintaxe e estrutura semelhantes às políticas de permissão do RAM. Estrutura e sintaxe da política.