明確和隱含拒絕之間的差異
如果適用的請求包含 Deny
陳述式,請求會導致明確拒絕。如果套用到請求的政策包含 Allow
陳述式和 Deny
陳述式,則 Deny
陳述式勝過 Allow
陳述式。請求明確遭拒。
如果沒有適用的 Deny
陳述式,也沒有適用的 Allow
陳述式,則會發生暗中拒絕。由於預設拒絕存取 IAM 主體,他們必須明確獲允許執行動作。否則,會暗中拒絕他們存取。
當您設計授權策略時,您必須建立具 Allow
陳述式的政策,讓您的主體成功發出請求。不過,您可以選擇明確和暗中拒絕的任意組合。
例如,您可以建立下列政策,其中包含允許的動作、隱含拒絕的動作以及明確拒絕的動作。此 AllowGetList
陳述式允許對以字首 Get
和 List
開頭的 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": "*" } ] }