No RAM, você utiliza uma política de permissões para definir permissões específicas. Uma política de permissões é composta por elementos básicos, incluindo Effect, Action/NotAction, Resource, Condition e Principal.
Elemento | Descrição |
Effect | Define se a instrução da política permite ou nega o acesso. Os valores válidos são:
|
Action/NotAction | A operação executada em um recurso específico. É obrigatório especificar Action ou NotAction em uma instrução de política:
|
Resource | O objeto ou objetos específicos aos quais a política se aplica. |
Condition | As condições sob as quais a autorização entra em vigor. |
Principal | A entidade que tem acesso permitido ou negado a um recurso. Este elemento aplica-se apenas a políticas baseadas em recursos, como a política de confiança de uma função do RAM. |
Effect
O elemento Effect define se uma política permite ou nega acesso. Este elemento é obrigatório.
Os valores válidos para o elemento Effect são Allow e Deny.
Se uma política de permissões contiver tanto Allow quanto Deny, o Deny terá precedência.
Exemplo:
"Effect": "Allow"
Action/NotAction
Uma instrução de política deve incluir um elemento Action ou NotAction. O Action especifica as operações permitidas ou negadas. O 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 cloud.
O formato do elemento Action/NotAction é <ram-code>:<action-name>.
ram-code: O código RAM do serviço de cloud. Para mais informações, consulte a coluna RAM Code em {{XREF_0}}.action-name: O nome da operação de API correspondente.
Geralmente, o valor do elemento Action/NotAction não diferencia maiúsculas de minúsculas. No entanto, para garantir um comportamento consistente, utilize exatamente o prefixo <ram-code> e o <action-name> conforme especificado na documentação de autorização do serviço de cloud.
Exemplos:
-
Exemplo de Action
"Action": [ "oss:ListBuckets", "ecs:Describe*", "rds:Describe*" ] -
Independência de ordem
A ordem dos elementos no array Action não afeta o resultado da autorização. Cada ação é avaliada independentemente, independentemente de sua posição no array. Portanto, as duas notações a seguir são equivalentes:
"Action": [ "ecs:DescribeSecurityGroups", "ecs:DescribeInstances" ]"Action": [ "ecs:DescribeInstances", "ecs:DescribeSecurityGroups" ] -
Exemplo de NotAction
O exemplo a seguir permite todas as operações, exceto aquelas no RAM. A política lista apenas a operação excluída (ram:*) em vez de todas as operações permitidas, o que torna a instrução de política mais curta. No entanto, isso concede permissões amplas. Utilize essa configuração com cautela e certifique-se de que a política se comporte conforme o esperado.
{ "Effect": "Allow", "NotAction": "ram:*", "Resource": "*" }
Resource
O elemento Resource descreve um ou mais objetos aos quais a política se aplica. Utilizado em políticas baseadas em identidade, este elemento é obrigatório.
O valor do elemento Resource corresponde ao ARN (Aliyun Resource Name) de um recurso definido por um serviço de cloud.
O formato do elemento Resource é acs:<ram-code>:<region>:<account-id>:<relative-id>. Utilize o ARN exato conforme especificado na documentação de autorização do serviço de cloud.
O formato é descrito da seguinte maneira:
acs: Abreviação de Alibaba Cloud service. Identifica que a solicitação tem como alvo a plataforma de cloud pública da Alibaba Cloud.ram-code: O código RAM do serviço de cloud. Para mais informações, consulte a coluna RAM Code em {{XREF_1}}.region: As informações de região. Para recursos globais, acessíveis sem a necessidade de especificar uma região, utilize um asterisco (*). Para mais informações, consulte {{XREF_2}}.account-id: O ID de uma conta Alibaba Cloud. Por exemplo,123456789012****.relative-id: A parte do ARN que descreve o recurso, com semântica definida pelo serviço de cloud específico. Esta 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 necessários para que uma política entre em vigor. Este elemento é opcional.
O elemento Condition, também chamado de bloco de condição, consiste em uma ou mais cláusulas de condição. 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. Caso utilize o elemento Condition para especificar condições, certifique-se de usar a ortografia 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ê utilizar o operador StringEquals, ele comparará o valor na política com o valor na solicitação, e a comparação diferenciará maiúsculas de minúsculas. Se utilizar o operador StringEqualsIgnoreCase, ele comparará o valor na política com o valor na solicitação, mas ignorará diferenças entre maiúsculas e minúsculas.
O elemento Condition possui as seguintes características:
-
Lógica de avaliação
A condição é atendida se o valor da chave na solicitação corresponder a qualquer um dos valores na política (um OR lógico).
Se uma cláusula de condição contiver várias chaves de condição, todas as chaves deverão corresponder para que a cláusula seja atendida (um AND lógico).
Todo o bloco de condição só será atendido se todas as suas cláusulas forem atendidas (um 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 significados e exemplos de operadores de condição, consulte {{XREF_3}}.
-
Chaves de condição
-
As chaves de condição globais da Alibaba Cloud utilizam o formato:
acs:<condition-key>.Chave de condição global
Tipo
Descrição
acs:CurrentTimeData e hora
O momento em que o servidor web recebe a solicitação.
NotaUtilize o horário UTC no formato padrão ISO 8601.
Por exemplo, 20:00:00 em 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
O 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 mais informações, consulte {{XREF_4}}.acs:PrincipalARNString
A identidade do principal da solicitação. Pode ser utilizada apenas nas políticas de controle do Resource Directory e nas políticas de confiança de funções do RAM. Por exemplo,
acs:ram:::role/resourcedirectory.NotaAtualmente, apenas o ARN de uma função do RAM é suportado, e deve estar em letras minúsculas. Você encontra o ARN de uma função do RAM em sua página de detalhes no console RAM.
acs:PrincipalRDIdString
O ID do Resource Directory ao qual pertence a conta cloud do principal da solicitação, por exemplo,
rd-AA****. Para visualizar um ID de Resource Directory, consulte {{XREF_5}}.Pode ser utilizado apenas nas políticas de confiança de funções do RAM e nas Bucket Policies do OSS.
acs:PrincipalRDPathString
O caminho da conta cloud 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 obter informações sobre como visualizar o RDPath completo de uma conta membro, consulte {{XREF_6}}.Para corresponder a todas as contas membros sob um RDPath especificado, utilize 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 utilizado apenas nas políticas de confiança de funções do RAM e nas Bucket Policies do OSS.
acs:RequestTag/<tag-key>String
As tags incluídas na solicitação. Substitua <tag-key> pela sua chave de tag real. Para serviços de cloud e tipos de recursos suportados, consulte as informações de Authentication by Resource Type em {{XREF_7}}.
acs:ResourceTag/<tag-key>String
As tags anexadas ao recurso solicitado. Substitua <tag-key> pela sua chave de tag real. Para serviços de cloud e tipos de recursos suportados, consulte as informações de Authentication by Resource Type em {{XREF_8}}.
-
As chaves de condição específicas de serviço utilizam 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 as chaves de condição específicas de cada serviço de cloud, consulte 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 o usuário 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 o usuário 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" ] } } } ] }
Principal
O elemento Principal, obrigatório em políticas baseadas em recursos, especifica a entidade que tem acesso permitido ou negado a um recurso.
Não é possível utilizar o elemento Principal em uma política baseada em identidade. Uma política baseada em identidade é uma política de permissões anexada a uma identidade RAM (um usuário RAM, grupo de usuários ou função do RAM). A identidade à qual a política está anexada atua como o principal implícito.
No elemento Principal, adicione vários tipos de principal e especifique múltiplos principais para cada tipo. Separe os diferentes tipos de principal com vírgulas (,). Se um tipo de principal incluir vários valores, coloque-os entre colchetes ([ ]) e separe-os com vírgulas (,). Múltiplos principais possuem uma relação OR, o que significa que todos os principais especificados recebem permissão.
Veja a seguir um exemplo do elemento Principal:
"Principal": {
"RAM": [
"acs:ram::123456789012****:root",
"acs:ram::987654321098****:root"
],
"Service": "ecs.aliyuncs.com"
}
Um principal é uma entidade autenticada. Pode ser um dos seguintes tipos:
-
Conta Alibaba Cloud
Especifique uma conta Alibaba Cloud como principal. Isso concede permissões a todos os usuários RAM e funções do RAM dessa conta. Ao especificar uma conta Alibaba Cloud, utilize seu ARN (
acs:ram::<account-id>:root). Veja um exemplo abaixo:"Principal": { "RAM": "acs:ram::123456789012****:root" }NotaEspecificar o ARN da conta (...:root) como principal estabelece confiança em toda a conta, não em uma identidade de usuário específica. As permissões podem então ser delegadas dentro dessa conta.
-
Usuário RAM
Especifique um usuário RAM como principal. É necessário informar o ARN do usuário RAM (
acs:ram::<account-id>:user/<user-name>), onde<user-name>deve ser o nome do usuário RAM. Veja um exemplo abaixo:"Principal": { "RAM": [ "acs:ram::123456789012****:user/<user1-name>", "acs:ram::123456789012****:user/<user2-name>" ] }Ao especificar um usuário RAM no elemento Principal, não utilize o caractere curinga (*) para correspondência parcial. Especifique o nome completo do usuário RAM.
ImportanteEm uma política de confiança de função do RAM, se o elemento
Principalcontiver o ARN de um usuário RAM, o sistema converterá esse ARN em um ID (por exemplo, 29695932303672****) quando você salvar a política de confiança. Normalmente, você não vê esse ID. Ele aparece na política de confiança apenas se o usuário RAM especificado for excluído. Se isso acontecer, remova o ID ou substitua-o pelo ARN de um usuário RAM válido. Esse mecanismo ajuda a reduzir riscos de segurança. Além disso, ao criar ou atualizar uma política de confiança, não é necessário se preocupar com o uso de maiúsculas e minúsculas em<user-name>, pois o sistema o converte automaticamente para um ARN padrão. -
Função do RAM
Especifique uma função do RAM como principal. É necessário informar o ARN da função do RAM (
acs:ram::<account-id>:role/<role-name>), onde<role-name>deve ser o nome da função do RAM. Veja um exemplo abaixo:"Principal": { "RAM": [ "acs:ram::123456789012****:role/<role-name>" ] }Ao especificar uma função do RAM no elemento Principal, não utilize o caractere curinga (*) para correspondência parcial. Especifique o nome completo da função do RAM.
ImportanteEm uma política de confiança de função do RAM, se o elemento
Principalcontiver o ARN de uma função do RAM, o sistema converterá esse ARN em um ID (por exemplo, 38915594982675****) quando você salvar a política de confiança. Geralmente, você não toma conhecimento desse ID. Ele é exibido na política de confiança apenas quando a função do RAM especificada é excluída. Nesse caso, exclua o ID ou substitua-o pelo ARN de uma função do RAM válida. Esse mecanismo ajuda a reduzir riscos de segurança. Além disso, ao criar ou atualizar uma política de confiança, não é necessário se preocupar com a distinção entre maiúsculas e minúsculas em<role-name>. O sistema o converte automaticamente para um ARN padrão. -
Serviço Alibaba Cloud
Especifique um serviço Alibaba Cloud como principal. O principal de serviço é um identificador para um serviço, que normalmente utiliza o formato
<service-name>.aliyuncs.com. Para o valor de<service-name>, utilize o nome completo do serviço fornecido pelo serviço de cloud. Veja um exemplo abaixo:"Principal": { "Service": [ "ecs.aliyuncs.com" ] } -
Provedor de identidade
Especifique um provedor de identidade como principal. Informe o ARN do provedor de identidade. A Alibaba Cloud suporta logon único (SSO) baseado em SAML 2.0 e OIDC. Um SSO que utiliza o protocolo SAML requer um provedor de identidade SAML, cujo ARN segue o formato
acs:ram::<account-id>:saml-provider/<provider-name>. Um SSO que utiliza o protocolo OIDC requer um provedor de identidade OIDC, cujo ARN segue o formatoacs:ram::<account-id>:oidc-provider/<provider-name>. O valor do ARN no elemento Principal diferencia maiúsculas de minúsculas. Utilize as informações padrão de ARN do provedor de identidade fornecidas pelo sistema."Principal": { "Federated": [ "acs:ram::123456789012****:saml-provider/<provider-name>" ] }