以身分為基礎和以資源為基礎的政策
政策為 AWS 中的一個物件,當與身分或資源相關聯時,會定義它們的許可。當您建立許可政策來限制對資源的存取時,您可以選擇以身分為基礎的政策或以資源為基礎的政策。
以身分為基礎的政策會連接至 IAM 使用者、群組或角色。這些政策可讓您指定該身分可以執行哪些動作 (其許可)。例如,您可以將政策連接到名為 John 的 IAM 使用者,指出他已獲允許而可執行 Amazon EC2 RunInstances
動作。政策可進一步指出 John 已獲允許而可從名為 MyCompany
的 Amazon DynamoDB 資料表中取得項目。您也可以允許 John 管理他自己的 IAM 安全憑證。以身分為基礎的政策,可以受管理或內嵌。
以資源為基礎的政策會連接至資源。例如,您可以將資源型政策連接到 Amazon S3 儲存貯體、Amazon SQS 佇列、VPC 端點、AWS Key Management Service 加密金鑰和 Amazon DynamoDB 資料表和串流。如需有關可支援以資源為基礎之政策的服務清單,請參閱可搭配 IAM 運作的 AWS 服務。
有了以資源為基礎的政策,您可以指定誰可以存取資源,以及他們可以在資源上執行哪些動作。若要了解在您信任區域 (受信任組織或帳戶) 外帳戶中的主體是否具有擔任您角色的許可,請參閱什麼是 IAM Access Analyzer?。以資源為基礎的政策僅是內嵌,而不是受管理。
注意
以資源為基礎的政策不同於資源層級的許可。您可以將以資源為基礎的政策直接連接到本主題中所述的資源。資源層級許可代表有能力使用 ARN 在政策中指定個別的資源。以資源為基礎的政策僅受一些 AWS 服務的支援。如需服務支援以資源為基礎的政策和資源層級許可的清單明細,請參閱可搭配 IAM 運作的 AWS 服務。
若要了解以身分為基礎的政策和以資源為基礎的政策如何在相同帳戶內進行互動,請參閱 單一帳戶中請求的政策評估。
若要了解政策如何跨帳戶互動,請參閱 跨帳戶政策評估邏輯。
為了更了解這些概念,檢視這些圖表。123456789012
帳戶的管理員會將以身分為基礎的政策連接至JohnSmith
、CarlosSalazar
和 MaryMajor
使用者。您可以對特定資源執行在這些政策中的一些動作。例如,使用者 JohnSmith
可以對 Resource X
執行一些動作。這是一個在以身分為基礎政策的資源層級許可。管理員也將以資源為基礎的政策新增至 Resource X
、Resource
Y
和 Resource Z
。以資源為基礎的政策允許您指定誰可以存取該資源。例如,在 Resource X
上以資源為基礎的政策允許 JohnSmith
和 MaryMajor
使用者列出和讀取資源的存取權。
123456789012
帳戶範例允許以下使用者執行所列的動作:
-
JohnSmith – John 可以對
Resource X
執行列出和讀取動作。他是由以其使用者身分為基礎的政策和以資源為基礎的政策Resource X
獲與此許可。 -
CarlosSalazar – Carlos 可以對
Resource Y
執行列出、讀取和寫入動作,但存取Resource Z
時將會遭拒。以 Carlos 之身分為基礎的政策允許可執行對Resource Y
的列出和讀取動作。以Resource Y
資源為基礎的政策允許擁有寫入許可。不過,雖然他的以身分為基礎的政策可允許存取Resource Z
,以Resource Z
資源為基礎的政策會拒絕該存取。明確Deny
拒絕會覆寫Allow
,且他對Resource Z
的存取會遭拒。如需詳細資訊,請參閱 政策評估邏輯。 -
MaryMajor – Mary 可以對
Resource X
、Resource Y
和Resource Z
執行列出、讀取和寫入等操作。她的以身分為基礎的政策允許比以資源為基礎的政策對更多動作執行更多動作,但這些以資源為基礎的政策不會拒絕存取。 -
ZhangWei –Zhang 擁有對
Resource Z
的完整存取權。Zhang 沒有以身分為基礎的政策,但以Resource Z
資源為基礎的政策可允許完整存取資源。Zhang 也可以對Resource Y
執行清單和讀取動作。
以身分為基礎的政策和以資源為基礎的政策都是許可政策,且會同時受到評估。如需僅許可政策適用的請求,AWS 會先檢查所有政策是否有 Deny
。如果有的話,則該請求會遭拒。然後,AWS 會檢查各個 Allow
。如果至少有一個政策陳述式允許在請求中的動作,則該請求會受到允許。在以身分為基礎的政策中或以資源為基礎的政策中,是否有 Allow
並不重要。
重要
此邏輯僅在單一 AWS 帳戶 內做出該請求時適用。對於從一個帳戶對另一個帳戶所做的請求,在 Account A
中的請求者必須擁有以身分為基礎的政策,該政策能允許對 Account B
中的資源做出請求。此外,在 Account B
中以資源為基礎的政策,必須允許在 Account A
中的請求者存取資源。兩個帳戶中均須有允許操作的政策,否則請求會失敗。如需有關使用跨帳戶存取之以資源為基礎的政策詳細資訊,請參閱 IAM 中的跨帳戶資源存取。
具有特定許可的使用者可能請求資源,而該資源也有連接許可政策。在這種情況下,當要決定是否將存取權授予資源時,AWS 會評估兩組的許可。如需有關如何評估政策的詳細資訊,請參閱政策評估邏輯。
注意
Amazon S3 支援以身分為基礎的政策和以資源為基礎的政策 (稱為儲存貯體政策)。此外,Amazon S3 支援許可機制稱為存取控制清單 (ACL),其為獨立的 IAM 政策和許可。您可以合併使用 IAM 政策與 Amazon S3 ACL。如需詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南中的存取控制 。