許可和政策如何提供存取管理 - AWS Identity and Access Management

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

許可和政策如何提供存取管理

AWS Identity and Access Management (IAM) 的存取管理部分可協助您定義主體實體可在帳戶內執行的操作。主體實體是指使用 IAM 實體 (IAM 使用者或角色) 執行身分驗證的人員或應用程式。存取管理通常稱為授權。透過建立政策,然後將其連接到 IAM 身分 (IAM 使用者、IAM 群組或 IAM 角色) 或 AWS 資源,來管理 AWS 中的存取權。政策是 AWS 中的一個物件,當其和身分或資源建立關聯時,便可定義其許可。AWS 會在主體使用 IAM 實體 (IAM 使用者或 IAM 角色) 發出請求時評估這些政策。政策中的許可決定是否允許或拒絕請求。大部分政策以 JSON 文件形式存放在 AWS 中。如需有關政策類型及其使用的詳細資訊,請參閱 AWS Identity and Access Management 中的政策和許可

政策和帳戶

如果您在 AWS 中管理單一帳戶,則會在該帳戶內使用政策定義許可。如果您跨多個帳戶管理許可,您的 IAM 使用者會更難管理許可。對於跨帳戶許可,您可以使用 IAM 角色、以資源為基礎的政策或存取控制清單 (ACL)。不過,如果您擁有多個帳戶,我們建議您改成使用 AWS Organizations 服務,以利於這些許可的管理工作。如需詳細資訊,請參閱 Organizations 使用者指南中的什麼是 AWS Organizations?

政策與使用者

IAM 使用者是 AWS 帳戶中的身分。當您建立 IAM 使用者,在您提供許可前他們無法存取您帳戶中的任何項目。可透過建立連接到 IAM 使用者或該 IAM 使用者所屬 IAM 群組的身分型政策,為 IAM 使用者提供許可。下列範例顯示 JSON 政策,其允許 IAM 使用者執行 us-east-2 區域內 123456789012 帳戶之 Books 資料表上的所有 Amazon DynamoDB 動作 (dynamodb:*)。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "dynamodb:*", "Resource": "arn:aws:dynamodb:us-east-2:123456789012:table/Books" } }

將此政策連接至 IAM 使用者後,使用者有權執行 DynamoDB 執行個體的 Books 資料表中的所有動作。大多數 IAM 使用者都有多個政策,這些政策可合併以代表其授予的總許可。

根據預設,政策未明確允許的動作或資源會被拒絕。例如,如果上述政策是連接到使用者的單一政策,則該使用者可以對 Books 資料表執行 DynamoDB 動作,但無法對其他資料表執行動作。同樣地,不允許使用者在 Amazon EC2、Amazon S3 或任何其他 AWS 服務中執行任何動作,因為政策中不包含使用這些服務的許可。

政策和 IAM 群組

您可以將 IAM 使用者組織到 IAM 群組並將政策連接到 IAM 群組。在這種情況下,各個 IAM 使用者仍有自己的憑證,但是 IAM 群組中的所有 IAM 使用者都擁有連接到 IAM 群組的許可。使用 IAM 群組可更輕鬆地進行許可管理。

此圖顯示 IAM 使用者如何被組織到 IAM 群組中,讓許可管理更加輕鬆,因為每個 IAM 使用者擁有指派給 IAM 群組的許可。

IAM 使用者或 IAM 群組可以有多個政策與之連接,分別授予不同的許可。在這種情況下,政策組合會決定主體的有效許可。如果主體沒有動作和資源的明確 Allow 許可,則主體沒有這些許可。

聯合身分使用者和角色

聯合身分使用者無法透過與 IAM 使用者相同的方式在您的 AWS 帳戶 中獲得永久身分。若要向聯合身分使用者指派許可,您可以建立稱為角色的實體,並為角色定義許可。當聯合身分使用者登入 AWS 時,該使用者會與角色建立關聯,並被授與角色中定義的許可。如需詳細資訊,請參閱針對第三方身分提供者建立角色 (聯合身分)

以身分為基礎和以資源為基礎的政策

以身分為基礎的政策是指您連接到 IAM 身分的許可政策,這些身分包括像是 IAM 使用者、群組或角色。以資源為基礎的政策是您連接到資源的許可政策,這些資源包括像是 Amazon S3 儲存貯體或 IAM 角色信任政策。

以身分為基礎政策可控制身分在何種條件下對哪些資源執行哪些動作。身分型政策可進一步分類:

  • 受管政策:為獨立存在的身分型政策,可連接到您 AWS 帳戶 中的多個使用者、群組和角色。您可以使用兩種類型受管政策:

    • AWS 受管政策:由 AWS 建立和管理的受管策略。如果您對使用政策尚不熟悉,建議您一開始先使用 AWS 受管政策。

    • 客戶管理政策:您在 AWS 帳戶 中建立和管理的受管政策。客戶受管政策提供比 AWS 受管政策更為精確的政策控制。您可以在視覺化編輯器建立和編輯和驗證 IAM 政策,或直接建立 JSON 政策文件。如需更多詳細資訊,請參閱 使用客戶管理政策定義自訂 IAM 許可編輯 IAM 政策

  • 內嵌政策:由您建立和管理並直接嵌入到單一使用者、群組或角色的政策。在大多數情況下,我們建議您不要使用內嵌政策。

以資源為基礎的政策可控制指定的主體在何種條件下對該資源執行哪些動作。資源為基礎的政策是內嵌政策,而且沒有受管的以資源為基礎的政策。如需啟用跨帳戶存取權,您可以在其他帳戶內指定所有帳戶或 IAM 實體作為資源型政策的主體。

IAM 服務支援一種稱為角色信任政策的資源型政策,它可連接到 IAM 角色。由於 IAM 角色是支援資源型政策的身分也是資源,所以您必須將信任政策和身分型政策同時連接到 IAM 角色。信任政策會定義哪些主體實體 (帳戶、使用者、角色和聯合身分使用者) 可擔任該角色。若要了解 IAM 角色與其他以資源為基礎之政策之間的差別,請參閱 IAM 中的跨帳戶資源存取

若要查看哪些服務支援以資源為基礎的政策,請參閱 AWS 使用 IAM 的 服務。若要進一步了解以資源為基礎的政策的詳細資訊,請參閱 以身分為基礎和以資源為基礎的政策