本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
以身分為基礎和以資源為基礎的政策
政策是其中的物件, AWS 當與身分或資源建立關聯時, 會定義其許可。當您建立許可政策來限制對資源的存取時,您可以選擇以身分為基礎的政策或以資源為基礎的政策。
身分型政策會連接至IAM使用者、群組或角色。這些政策可讓您指定該身分可以執行哪些動作 (其許可)。例如,您可以將政策連接至名為 John IAM的使用者,說明他可以執行 Amazon EC2RunInstances
動作。政策可進一步指出 John 已獲允許而可從名為 MyCompany
的 Amazon DynamoDB 資料表中取得項目。您也可以允許 John 管理自己的IAM安全憑證。以身分為基礎的政策,可以受管理或內嵌。
以資源為基礎的政策會連接至資源。例如,您可以將資源型政策連接至 Amazon S3 儲存貯體、Amazon SQS佇列、VPC端點、 AWS Key Management Service 加密金鑰,以及 Amazon DynamoDB 資料表和串流。如需有關可支援以資源為基礎之政策的服務清單,請參閱AWS 使用 的 服務 IAM。
有了以資源為基礎的政策,您可以指定誰可以存取資源,以及他們可以在資源上執行哪些動作。若要了解您信任區域 (受信任組織或帳戶) 以外帳戶中的主體是否具有擔任角色的存取權,請參閱什麼是 IAM Access Analyzer?。以資源為基礎的政策僅是內嵌,而不是受管理。
注意
以資源為基礎的政策不同於資源層級的許可。您可以將以資源為基礎的政策直接連接到本主題中所述的資源。資源層級許可是指使用 在政策中ARNs指定個別資源的能力。只有部分 AWS 服務支援資源型政策。如需服務支援以資源為基礎的政策和資源層級許可的清單明細,請參閱AWS 使用 的 服務 IAM。
若要了解以身分為基礎的政策和以資源為基礎的政策如何在相同帳戶內進行互動,請參閱 單一帳戶中請求的政策評估。
若要了解政策如何跨帳戶互動,請參閱 跨帳戶政策評估邏輯。
為了更了解這些概念,檢視這些圖表。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政策和許可無關。您可以搭配 Amazon S3 使用IAM政策ACLs。如需詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南中的存取控制 。