了解 IAM 的運作方式 - AWS Identity and Access Management

了解 IAM 的運作方式

在您建立使用者之前,您應該了解 IAM 的運作方式。IAM 提供控制帳戶身分驗證和授權所需的基礎設施。IAM 基礎設施包含下列項目:


      IntroToIAM_Diagram

條款

進一步了解 IAM 用語。

IAM 資源

IAM 中存放的使用者、群組、角色、政策和身分供應商物件。如同其他 AWS 服務,您可以新增、編輯以及從 IAM 移除資源。

IAM 身分

用於識別及群組的 IAM 資源物件。您可以將政策附加到 IAM 身分。包括使用者、群組和角色。

IAM 實體

AWS 用於身分驗證的 IAM 資源物件。包括 IAM 使用者和角色。

委託人

使用 AWS 帳戶 根使用者、IAM 使用者或 IAM 角色登入 AWS 並提出請求的人員或應用程式。委託人包括聯合身分使用者及擔任的角色。

Principal

委託人是可對 AWS 資源上的動作或操作提出請求的人員或應用程式。委託人需通過 AWS 帳戶 根使用者 或 IAM 實體的身分驗證來對 AWS 提出請求。根據最佳實務,勿使用根使用者憑證來進行您的每日工作。反之,請建立 IAM 實體 (使用者和角色)。您也可以支援聯合身分使用者或程式設計存取,讓應用程式存取您的 AWS 帳戶。

要求

當委託人嘗試使用 AWS Management Console、AWS API 或 AWS CLI 時,該委託人會向 AWS 發送請求。請求包含下列資訊:

  • 動作或操作 – 委託人想要執行的動作或操作。這可能是 AWS Management Console 中的動作,或在 AWS CLI 或 AWS API 中的操作。

  • 資源 – 對其執行動作或操作的 AWS 資源物件。

  • 委託人 – 使用實體 (使用者或角色) 來傳送請求的人員或應用程式。有關委託人的資訊,包括與該委託人用於登入之實體相關聯的政策。

  • 環境資料 – IP 地址、使用者代理程式、啟用 SSL 的狀態或一天中時間的相關資訊。

  • 資源資料 – 與所請求資源相關的資料。這可以包括諸如 DynamoDB 資料表名稱或 Amazon EC2 執行個體上之標籤的資訊。

AWS 將請求資訊收集到請求內容,這是用於評估和授權請求。

身分驗證

委託人必須使用憑證通過身分驗證 (登入 AWS),以傳送請求至 AWS。某些服務 (如 Amazon S3 和 AWS STS) 允許來自匿名使用者的少數請求。不過,這些服務是此規則的例外。

若要從主控台通過根使用者的身分驗證,您必須使用您的電子郵件地址和密碼登入。以 IAM 使用者的身分,提供帳戶 ID 或別名,然後您的使用者名稱和密碼。若要從 API 或 AWS CLI 進行身分驗證,您必須提供存取金鑰和私密金鑰。您可能還需要提供額外的安全性資訊。例如,AWS 建議您使用多重要素驗證 (MFA) 來提高帳戶的安全。若要進一步了解 AWS 可進行身分驗證的 IAM 實體,請參閱 IAM 使用者IAM 角色

Authorization

您也必須獲得授權 (允許) 以完成您的請求。在授權期間,AWS 使用請求內容的值來檢查套用於請求的政策。接著使用政策以決定是否允許或拒絕請求。大多數的政策會以 JSON 文件形式存放在 AWS 中,並負責指定委託人實體的許可。有數種類型的政策會影響是否授權請求。為了讓使用者有權以自己的帳戶存取 AWS 資源,您只需以身分為基礎的政策。資源類型政策最常用於授與跨帳戶存取權。其他政策類型是進階功能,應謹慎使用。

AWS 檢查適用於請求內容的每個政策。如果單一許可政策包含拒絕的動作,AWS 將拒絕整個請求並停止評估。此稱為明確拒絕。由於請求是預設拒絕的,因此只有在請求的每個部分均被適用許可政策允許時,AWS 才會授權該請求。用於單一帳戶中請求的評估邏輯會遵循下列一般規則:

  • 根據預設,所有的請求一律拒絕。(一般而言,一律允許使用 AWS 帳戶 根使用者憑證所提出的對帳戶內資源的請求)。

  • 任何許可政策中的明確允許 (以身分為基礎或以資源為基礎的政策) 都會覆寫此預設值。

  • 如果 Organizations SCP、IAM 許可界限或工作階段政策存在就會覆寫該允許。如果這些政策類型中有一或多個存在,則它們必須全部允許該請求。否則,它會被隱含拒絕。

  • 任何政策中的明確拒絕會覆寫任何允許。

若要進一步了解如何評估所有政策類型的詳細資訊,請參閱 政策評估邏輯。如果您需要在不同的帳戶發出請求,在其他帳戶中的政策必須可讓您存取資源,而且您用來發出請求的 IAM 實體必須具備允許該請求的以身分為基礎的政策。

動作或操作

在您的請求經過身分驗證和獲授權,AWS 會核准您請求的動作或操作。操作由服務定義,包括您可以對資源執行的動作,例如查看、建立、編輯和刪除該資源。例如,IAM 支援大約 40 個用於使用者資源的動作,包括下列動作:

  • CreateUser

  • DeleteUser

  • GetUser

  • UpdateUser

若要允許委託人執行操作,您必須在適用於委託人或受影響資源的政策中包含必要的動作。若要查看每個服務支援的動作、資源類型和條件金鑰的清單,請參閱 AWS 服務的動作、資源和條件金鑰

資源

在 AWS 核准您請求的操作後,可以對您帳戶中的相關資源執行這些操作。資源是存在於服務內的物件。範例包括 Amazon EC2 執行個體、IAM 使用者和 Amazon S3 儲存貯體。該服務定義了可以在每個資源執行的一組動作。如果您建立了對資源執行不相關動作的請求,則拒絕該請求。例如,如果您請求刪除 IAM 角色但提供 IAM 群組資源,則請求將失敗。若要查看識別哪些資源受動作影響的 AWS 服務表格,請參閱 AWS 服務的動作、資源和條件金鑰