Elementos de política JSON do IAM: NotAction - AWS Identity and Access Management

Elementos de política JSON do IAM: NotAction

NotAction é um elemento de política avançado que explicitamente corresponde a tudo exceto a lista especificada de ações. O uso de NotAction pode resultar em uma política mais curta ao listar apenas algumas ações que não devem corresponder, em vez de incluir uma longa lista de ações para correspondência. As ações especificadas em NotAction não são afetadas por Allow ou Deny em uma instrução de política. Isso, por sua vez, significa que todas as ações ou serviços aplicáveis que não são listados são permitidos se você usar o efeito Allow. Além disso, essas ações ou serviços não listados são negados se você usar o efeito Deny. Ao usar NotAction com o elemento Resource, você fornece escopo para a política. Isso é como a AWS determina quais ações ou serviços são aplicáveis. Para obter mais informações, consulte o seguinte exemplo de política.

NotAction com permitir

Você pode usar o elemento NotAction em uma instrução com "Effect": "Allow" para fornecer acesso a todas as ações em um serviço da AWS, exceto para as ações especificadas em NotAction. Você pode usá-lo com o elemento Resource para fornecer escopo para a política, limitando as ações permitidas para as ações que podem ser realizadas no recurso especificado.

O exemplo a seguir permite que os usuários acessem todas as ações do Amazon S3 que podem ser executadas em qualquer recurso do S3, exceto a exclusão de um bucket. Isso não permite que os usuários usem a operação da API ListAllMyBuckets do S3, pois essa ação requer o recurso"*". Essa política também não permite ações em outros serviços, pois outras ações de serviço não são aplicáveis aos recursos do S3.

"Effect": "Allow", "NotAction": "s3:DeleteBucket", "Resource": "arn:aws:s3:::*",

Às vezes, você pode querer permitir o acesso a um grande número de ações. O uso do elemento NotAction efetivamente reverte a instrução, resultando em uma lista de ações mais curta. Por exemplo, como há muitos produtos da AWS, você pode criar uma política que permita ao usuário fazer tudo, exceto acessar ações do IAM.

O exemplo a seguir permite aos usuários acessar todas as ações em todos os produtos da AWS, exceto o IAM.

"Effect": "Allow", "NotAction": "iam:*", "Resource": "*"

Tenha cuidado ao usar o elemento NotAction e "Effect": "Allow" na mesma instrução ou em outra instrução dentro de uma política. NotAction corresponde a todos os serviços e ações que não são explicitamente listados ou aplicáveis para o recurso especificado e pode resultar em concessão de mais permissões aos usuários do que o desejado.

NotAction com Deny

Você pode usar o elemento NotAction em uma instrução com "Effect": "Deny" para negar acesso a todos os recursos listados, exceto para as ações especificadas no elemento NotAction. Essa combinação não permite os itens listados, mas explicitamente nega as ações não listadas em vez disso. Você ainda deve habilitar as ações que você deseja permitir.

O exemplo condicional a seguir nega acesso a ações que não são do IAM se o usuário não estiver conectado usando a MFA. Se o usuário estiver conectado com MFA, o teste de "Condition" falhará e a instrução "Deny" final não terá efeito. Observe, no entanto, que isso não concederia ao usuário acesso a qualquer ação, e apenas negaria explicitamente todas as outras ações, exceto as ações do IAM.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "DenyAllUsersNotUsingMFA", "Effect": "Deny", "NotAction": "iam:*", "Resource": "*", "Condition": {"BoolIfExists": {"aws:MultiFactorAuthPresent": "false"}} }] }

Para obter um exemplo de política que nega o acesso a ações fora de regiões específicas, exceto ações de serviços específicos, consulte AWS: nega acesso à AWS com base na região solicitada.