Chaves de condição do Directory Service Data - AWS Directory Service

Chaves de condição do Directory Service Data

Use as chaves de condição do Directory Service Data para adicionar instruções específicas aos usuários e ao acesso em nível de grupo. Isso permite que os usuários decidam quais entidades principais podem executar ações em quais recursos e sob quais condições.

O elemento de condição, ou bloco de condição, permite especificar condições em que uma instrução estará em vigor. O elemento Condition é opcional. Você pode criar expressões condicionais que utilizam operadores de condição, como igual a (=) ou menor que (<), para comparar a condição na política com os valores na solicitação.

Se você especificar múltiplos elementos de condição em uma instrução, ou múltiplas chaves em um único elemento de condição, a AWS os avalia utilizando uma operação lógica AND. Se você especificar múltiplos valores para uma única chave de condição, o AWS avalia a condição utilizando uma operação lógica OR. Todas as condições devem ser atendidas antes que as permissões da instrução sejam concedidas. Você também pode usar variáveis de espaço reservado ao especificar condições. Por exemplo, você pode conceder permissão a um usuário do IAM para acessar um recurso somente se ele estiver marcado com o nome de usuário dele. Para obter mais informações, consulte Condições com múltiplas chaves ou valores no Guia do usuário do IAM.

Para obter uma lista de quais ações oferecem suporte a essas chaves de condição, consulte Actions defined by AWS Directory Service Data na Referência de autorização de serviço.

nota

Para obter informações sobre permissões baseadas em tags no nível de recurso, consulte Utilização de tags com políticas do IAM.

ds-data:SAMAccountName

Funciona com operadores de string.

Use essa chave para permitir ou impedir que um perfil do IAM execute ações em usuários e grupos específicos.

Importante

Ao usar SAMAccountName ou MemberName, recomendamos especificar ds-data:Identifier como SAMAccountName. Isso evita que identificadores futuros compatíveis com o AWS Directory Service Data, como SID, quebrem as permissões existentes.

A política a seguir impede que a entidade principal do IAM descreva o usuário joe ou o grupo joegroup.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DenyDescribe", "Effect": "Deny", "Action": "ds-data:Describe*", "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "ds-data:SAMAccountName": [ "joe", "joegroup" ], "ds-data:identifier": [ "SAMAccountName" ] } } } ] }
nota

Essa chave de condição não diferencia maiúsculas de minúsculas. Você deve usar os operadores de condição StringEqualsIgnoreCase ou StringNotEqualsIgnoreCase para comparar valores de string, independentemente das letras maiúsculas e minúsculas.

ds-data:Identifier

Funciona com operadores de string.

Use essa chave para definir qual identificador usar nas permissões da política do IAM. No momento, só há compatibilidade com SAMAccountName.

A política a seguir permite que a entidade principal do IAM atualize o usuário joe.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "UpdateJoe", "Effect": "Allow", "Action": "ds-data:UpdateUser", "Resource": "arn:aws:ds:us-east-1:111122223333:directory/d-012345678", "Condition": { "StringEqualsIgnoreCase": { "ds-data:SAMAccountName": [ "joe" ], "ds-data:identifier": [ "SAMAccountName" ] } } } ] }

ds-data:MemberName

Funciona com operadores de string.

Use essa chave para definir os membros que podem ter operações executadas neles.

Importante

Ao usar MemberName ou SAMAccountName, recomendamos especificar ds-data:Identifier como SAMAccountName. Isso evita que identificadores futuros compatíveis com o Directory Service Data, como SID, quebrem as permissões existentes.

A política a seguir permite que a entidade principal do IAM execute AddGroupMember no membro joe em qualquer grupo.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AddJoe", "Effect": "Allow", "Action": "ds-data:AddGroupMember", "Resource": "arn:aws:ds:us-east-1:111122223333:directory/d-012345678", "Condition": { "StringEqualsIgnoreCase": { "ds-data:MemberName": "joe" } } } ] }
nota

Essa chave de condição não diferencia maiúsculas de minúsculas. Você deve usar os operadores de condição StringEqualsIgnoreCase ou StringNotEqualsIgnoreCase para comparar valores de strings, independentemente das letras maiúsculas e minúsculas.

ds-data:MemberRealm

Funciona com operadores de string.

Use esta chave para verificar se o valor ds-data:MemberRealm na política corresponde ao realm do membro na solicitação.

nota

Essa chave de condição não diferencia maiúsculas de minúsculas. Você deve usar os operadores de condição StringEqualsIgnoreCase ou StringNotEqualsIgnoreCase para comparar valores de strings, independentemente das letras maiúsculas e minúsculas.

A política a seguir permite que a entidade principal do IAM chame AddGroupMember para o membro bob no realm ONE.TRU1.AMAZON.COM.

nota

O exemplo a seguir usa somente a chave de contexto ds-data:MemberName.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "addbob", "Effect": "Allow", "Action": "ds-data:AddGroupMember", "Resource": "arn:aws:ds:us-east-1:111122223333:directory/d-012345678", "Condition": { "StringEqualsIgnoreCase": { "ds-data:MemberName": "bob", "ds-data:MemberRealm": "one.tru1.amazon.com" } } } ] }

ds-data:Realm

Funciona com operadores de string.

Use essa chave para verificar se o valor ds-data:Realm na política corresponde ao realm que a entidade principal do IAM pode usar para fazer solicitações às APIs do Directory Service Data.

nota

Essa chave de condição não diferencia maiúsculas de minúsculas. Você deve usar os operadores de condição StringEqualsIgnoreCase ou StringNotEqualsIgnoreCase para comparar valores de string, independentemente das letras maiúsculas e minúsculas.

A política a seguir impede que a entidade principal do IAM chame ListUsers no realm one.tru1.amazon.com.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DenyTrustedList", "Effect": "Deny", "Action": "ds-data:ListUsers", "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "ds-data:Realm": [ "one.tru1.amazon.com" ] } } } ] }