明示的な拒否と暗黙的な拒否の違い - AWS Identity and Access Management

明示的な拒否と暗黙的な拒否の違い

該当するポリシーに Deny ステートメントが含まれている場合、リクエストは明示的に拒否されます。リクエストに適用されるポリシーに Allow ステートメントと Deny ステートメントが含まれている場合は、Deny ステートメントが Allow ステートメントより優先されます。リクエストは明示的に拒否されます。

該当する Deny ステートメントがなく、該当する Allow ステートメントもない場合は、暗黙的な拒否が発生します。IAM プリンシパルは、デフォルトでアクセスが拒否されされるため、アクションを実行するには明示的に許可を受ける必要があります。そうでない場合は、アクセスは暗黙的に拒否されます。

承認戦略を設計する場合、プリンシパルのリクエストを成功させるには、作成するポリシーに Allow ステートメントを含める必要があります。ただし、明示的な拒否と暗黙的な拒否の任意の組み合わせを選択できます。

例えば、許可されたアクション、暗黙的に拒否されたアクション、および明示的に拒否されたアクションを含む、次のポリシーを作成できます。AllowGetList ステートメントは、Get または List プレフィックスで始まる IAM アクションに対して、読み取り専用のアクセスを許可します。iam:CreatePolicy など、IAM の他のすべてのアクションは、暗黙的に拒否されます。DenyReports ステートメントは、iam:GetOrganizationsAccessReport などのReport サフィックスを含むアクションへのアクセスを拒否することで、IAM レポートへのアクセスを明示的に拒否します。誰かがこのプリンシパルに別のポリシーを追加して、iam:GenerateCredentialReport などのIAM レポートへのアクセス許可を付与した場合は、この明示的拒否のために、レポート関連のリクエストは引き続き拒否されます。

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