A diferença entre negações explícitas e implícitas - AWS Identity and Access Management

A diferença entre negações explícitas e implícitas

Uma solicitação resultará em uma negação explícita aplicável se uma política aplicável incluir uma instrução Deny. Se as políticas aplicáveis a uma solicitação incluírem uma instrução Allow e uma instrução Deny, a instrução Deny superará a instrução Allow. A solicitação será negada explicitamente.

Uma negação implícita ocorre quando não há uma instrução Deny aplicável, mas também nenhuma instrução Allow aplicável. Como o acesso da entidade principal do IAM é negado por padrão, ela deve ter permissão explícita para executar uma ação. Caso contrário, o acesso será implicitamente negado.

Ao projetar sua estratégia de autorização, você deve criar políticas com instruções Allow para permitir que suas entidades principais façam solicitações com êxito. No entanto, você pode escolher qualquer combinação de negações implícitas e explícitas.

Por exemplo, é possível criar a seguinte política que inclui ações permitidas, ações negadas implicitamente e ações negadas explicitamente. A declaração AllowGetList permite acesso do tipo somente leitura a ações do IAM que comecem com os prefixos Get e List. Todas as outras ações no IAM, como iam:CreatePolicy, são negadas implicitamente. A declaração DenyReports nega explicitamente o acesso a relatórios do IAM, negando acesso a ações que incluem o sufixo Report, como iam:GetOrganizationsAccessReport. Se alguém adicionar outra política a essa entidade principal para conceder acesso a relatórios do IAM, como iam:GenerateCredentialReport, solicitações relacionadas a relatórios ainda serão negadas por causa dessa negação explícita.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGetList", "Effect": "Allow", "Action": [ "iam:Get*", "iam:List*" ], "Resource": "*" }, { "Sid": "DenyReports", "Effect": "Deny", "Action": "iam:*Report", "Resource": "*" } ] }