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

Elementos de política JSON do IAM: NotResource

NotResource é um elemento de política avançado que corresponde explicitamente a cada recurso, exceto aqueles especificados. O uso de NotResource pode resultar em uma política mais curta ao listar somente alguns recursos que não devem corresponder, em vez de incluir uma longa lista de recursos para correspondência. Isso é especialmente útil para políticas aplicáveis em um único serviço da AWS.

Por exemplo, imagine que você tenha um grupo chamado HRPayroll. Os membros de HRPayroll não devem ter permissão para acessar os recursos do Amazon S3, exceto a pasta Payroll no bucket HRBucket. A seguinte política nega explicitamente o acesso a todos os recursos do Amazon S3, exceto os recursos listados. Observe, no entanto, que essa política não concede ao usuário acesso a qualquer recurso.

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "s3:*", "NotResource": [ "arn:aws:s3:::HRBucket/Payroll", "arn:aws:s3:::HRBucket/Payroll/*" ] } }

Normalmente, para negar explicitamente o acesso a um recurso, você deve escrever uma política que utilize "Effect":"Deny" e que inclua um elemento Resource listando cada pasta individualmente. Entretanto, nesse caso, cada vez que você adiciona uma pasta ao HRBucket, ou adiciona um recurso ao Amazon S3 que não deve ser acessado, você deve adicionar o nome desses itens à lista em Resource. Se você usar um elemento NotResource em vez disso, os usuários terão o acesso a novas pastas automaticamente negado, a menos que você adicione os nomes das pastas no elemento NotResource.

Ao usar NotResource, você deve ter em mente que os recursos especificados neste elemento são os únicos recursos que não são limitados. Isso, por sua vez, limita todos os recursos que seriam aplicáveis à ação. No exemplo acima, a política afeta apenas as ações do Amazon S3 e, portanto, apenas os recursos do Amazon S3. Se a ação também incluísse ações do Amazon EC2, a política não negaria acesso a nenhum recurso do EC2. Para saber quais ações em um serviço permitem especificar o ARN de um recurso, consulte Ações, recursos e chaves de condição de serviços da AWS.

NotResource com outros elementos

Nunca use os elementos "Effect": "Allow", "Action": "*" e "NotResource": "arn:aws:s3:::HRBucket" juntos. Essa instrução é muito perigosa porque permite todas as ações na AWS em todos os recursos, exceto no bucket HRBucket do S3. Isso permitiria até mesmo que o usuário adicionasse uma política para si mesmo que permitisse o acesso ao HRBucket. Não faça isso.

Tenha cuidado ao usar o elemento NotResource e "Effect": "Allow" na mesma instrução ou em outra instrução em uma política. O NotResource permite todos os serviços e recursos que não são explicitamente listados e pode resultar na concessão de mais permissões aos usuários do que o desejado. O uso do elemento NotResource e "Effect": "Deny" na mesma instrução nega os serviços e recursos que não são explicitamente listados.