明確和隱含拒絕之間的差異 - AWS Identity and Access Management

明確和隱含拒絕之間的差異

如果適用的請求包含 Deny 陳述式,請求會導致明確拒絕。如果套用到請求的政策包含 Allow 陳述式和 Deny 陳述式,則 Deny 陳述式勝過 Allow 陳述式。請求明確遭拒。

如果沒有適用的 Deny 陳述式,也沒有適用的 Allow 陳述式,則會發生暗中拒絕。由於預設拒絕存取 IAM 主體,他們必須明確獲允許執行動作。否則,會暗中拒絕他們存取。

當您設計授權策略時,您必須建立具 Allow 陳述式的政策,讓您的主體成功發出請求。不過,您可以選擇明確和暗中拒絕的任意組合。

例如,您可以建立下列政策,其中包含允許的動作、隱含拒絕的動作以及明確拒絕的動作。此 AllowGetList 陳述式允許對以字首 GetList 開頭的 IAM 動作的唯讀存取。IAM 中的所有其他動作,例如 iam:CreatePolicy,則被隱含拒絕。此 DenyReports 陳述式明確拒絕存取 IAM 報告,方法是拒絕存取包含 Report 尾碼的動作,例如 iam:GetOrganizationsAccessReport。如果有人向此主體新增其他政策,以授予他們對 IAM 報告的存取權,例如 iam:GenerateCredentialReport,則由於存在此明確拒絕,報告相關的要求仍然被拒絕。

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