AWS Identity and Access Management (IAM) 常見問答集

一般問題

IAM 提供跨所有 AWS 的精細存取控制。藉助 IAM,您可以控制在特定條件下對服務和資源的存取。使用 IAM 政策來管理人力和系統的許可,以確保最低權限。IAM 目前不收取額外費用。如需詳細資訊,請參閱「什麼是 IAM?」

IAM 針對 AWS 服務提供身分驗證和授權。服務會評估 AWS 請求是被允許還是拒絕。預設會拒絕存取,只有在政策明確授予存取權時才會允許。您可以將政策連接至角色和資源,以控制跨 AWS 的存取。如需詳細資訊,請參閱了解 IAM 的運作方式

當您使用 IAM 政策設定許可時,僅授予執行任務所需的許可。這種做法稱為授予最低權限。 您可以透過定義可在特定條件下對特定資源執行的動作,在 IAM 中套用最低權限許可。如需詳細資訊,請參閱 AWS 資源的存取管理

若要開始使用 IAM 管理 AWS 服務和資源的許可,請建立一個 IAM 角色並為其授予許可。針對人力使用者,請建立可由您的身分供應商擔任的角色。針對系統,請建立可由您正在使用的服務擔任的角色,例如 Amazon EC2 或 AWS Lambda。建立角色後,您可以將政策連接至角色,以授予滿足您需求的許可。當您剛開始時,您可能不知道需要的特定許可,因此您可以從更廣泛的許可開始。 AWS 管理的政策提供協助您入門的許可,並且適用於所有 AWS 帳戶。然後,透過定義特定於您的使用案例的客戶管理的政策,來進一步減少許可。您可以在 IAM 主控台,或透過 AWS API 或 AWS CLI 建立和管理政策和角色。如需詳細資訊,請參閱 IAM 入門

IAM 資源

AWS Identity and Access Management (IAM) 角色提供一種依靠臨時安全憑證來存取 AWS 的方法。每個角色均具有用於發出 AWS 服務請求的許可集,並且角色不與特定使用者或群組關聯。而是由身分供應商或 AWS 服務等受信任實體擔任角色。如需詳細資訊,請參閱 IAM 角色

您應依賴短期憑證,使用 IAM 角色來授予對您的 AWS 帳戶的存取權,這是一種安全最佳實務。授權身分 (可以是 AWS 服務或您的身分供應商使用者) 可以擔任發出 AWS 請求的角色。若要向角色授予許可,請將 IAM 政策連接至該角色。如需詳細資訊,請參閱角色的常見案例

IAM 使用者身分具有長期憑證。您可能會將 IAM 使用者用於人力使用者。在此情況下,AWS 建議使用身分供應商,並透過擔任角色與 AWS 聯合。您還可以使用角色,授予對 AWS Lambda 函數等服務和功能的跨帳戶存取權。在某些案例中,您可能需要具有存取金鑰的 IAM 使用者擁有存取您的 AWS 帳戶的長期憑證。對於這些案例,AWS 建議使用 IAM 存取上次使用的資訊,來經常輪換憑證並移除未使用的憑證。如需詳細資訊,請參閱AWS 身分管理概觀:使用者

IAM 政策針對您所連接的實體定義許可。例如,若要授予對 IAM 角色的存取權,請將政策連接至該角色。政策中定義的許可確定是允許還是拒絕請求。您還可以將政策連接至某些資源 (如 Simple Storage Service (Amazon S3) 儲存貯體),以授予直接跨帳戶存取權。您可以將政策連接至 AWS 組織或組織單位,以限制跨多個帳戶的存取權。AWS 在 IAM 角色發出請求時評估這些政策。如需詳細資訊,請參閱以身分為基礎的政策

授予存取權

若要使用 AWS Identity and Access Management (IAM) 授予對服務和資源的存取權,請將 IAM 政策連接至角色或資源。您首先可以連接 AWS 管理的政策,這些政策由 AWS 擁有和更新,並且可用於所有 AWS 帳戶。如果您知道使用案例所需的特定許可,可以建立客戶管理的政策並將其連接至角色。某些 AWS 資源提供透過定義連接至資源 (如 Simple Storage Service (Amazon S3) 儲存貯體) 的政策來授予存取權的方法。這些以資源為基礎的政策允許您授予對其所連接資源的直接跨帳戶存取權。如需詳細資訊,請參閱 AWS 資源的存取管理

若要將許可指派給角色或資源,請建立一個政策,該政策是定義許可的 JavaScript 物件標記法 (JSON) 文件。本文件包括授予或拒絕存取特定服務動作、資源和條件的許可聲明。建立政策後,您可以將其連接至一個或多個 AWS 角色,以向您的 AWS 帳戶授予許可。若要授予對資源 (如 Simple Storage Service (Amazon S3) 儲存貯體) 的直接跨帳戶存取權,請使用以資源為基礎的政策。在 IAM 主控台,或透過 AWS API 或 AWS CLI 建立您的政策。如需詳細資訊,請參閱建立 IAM 政策

AWS 受管政策由 AWS 建立並管理,涵蓋常見的使用案例。 開始使用時,您可以使用 AWS 受管政策授予更廣泛的許可,這些政策適用於您的 AWS 帳戶,並且在所有 AWS 帳戶中通用。然後,當您細化您的要求時,您可以定義特定於您的使用案例的客戶受管政策來減少許可,以實現最低權限許可的目標。如需詳細資訊,請參閱 AWS 管理的政策

若要僅授予執行任務所需的許可,您可以建立特定於您的使用案例和資源的客戶受管政策。使用客戶受管政策,針對您的特定要求不斷細化許可。如需詳細資訊,請參閱客戶管理的政策

內嵌政策內嵌於特定 IAM 角色中並且是其固有的。如果您希望在政策與其套用的身分之間保持嚴格的一對一關係,請使用內嵌政策。例如,您可以授予管理許可,以確保其不連接至其他角色。如需詳細資訊,請參閱內嵌政策

以資源為基礎的政策是連接至資源的許可政策。例如,您可以將以資源為基礎的政策連接至 Simple Storage Service (Amazon S3) 儲存貯體、Amazon SQS 佇列、VPC 端點和 AWS Key Management Service 加密金鑰。如需支援以資源為基礎的政策服務清單,請參閱使用 IAM 的 AWS 服務。使用以資源為基礎的政策可授予直接的跨帳戶存取權。使用以資源為基礎的政策,您可以定義誰有權存取資源,以及他們可以使用該資源執行哪些動作。如需詳細資訊,請參閱以身分為基礎的政策和以資源為基礎的政策

RBAC 為您提供一種根據人工作職能 (在 AWS 之外稱為角色) 指派許可的方法。IAM 透過定義具有與工作職能一致許可的 IAM 角色來提供 RBAC。然後,您可以授予擔任這些角色的個別存取權,以執行特定的工作職能。藉助 RBAC,您可以透過查看每個 IAM 角色及其附加許可來稽核存取權。如需詳細資訊,請參閱將 ABAC 與傳統 RBAC 模型作比較

作為最佳實務,僅授予對執行每項任務所需的特定服務動作和資源的存取權。這稱為授予最低權限。當員工新增資源時,您必須更新政策以允許存取這些資源。

ABAC 是一種以屬性基礎定義許可的授權策略。在 AWS 中,這些屬性稱為標籤,您可以在 AWS 資源、IAM 角色和角色工作階段中定義這些標籤。使用 ABAC,您可以根據標籤的值來定義許可集。您可以要求角色或工作階段上的標籤與資源上的標籤相符,來授予對特定資源的精細許可。例如,您可以制定一項政策,授予開發人員對加上「開發人員」職位標籤的資源存取權。 ABAC 可在使用特定標籤建立資源時授予資源許可,因此在快速增長的環境中很有用。如需詳細資訊,請參閱AWS 以屬性為基礎的存取控制

若要使用 ABAC 授予存取權,請先定義要用於存取權控制的標籤鍵和值。然後,確保您的 IAM 角色具有適當的標籤鍵和值。如果多個身分使用此角色,您還可以定義工作階段標籤鍵和值。接著,確保您的資源具有適當的標籤鍵和值。此外,您還可以要求使用者透過適當的標籤建立資源,並限制對其進行修改的存取權。設定好標籤後,定義一項政策,授予對特定動作和資源類型的存取權,但前提是角色或工作階段標籤與資源標籤相符。如需示範如何在 AWS 中使用 ABAC 的詳細教學,請參閱 IAM 教學:根據標籤定義存取 AWS 資源的許可

限制存取權

使用 AWS Identity and Access Management (IAM),預設所有存取權都被拒,並且需要一項授予存取權的政策。當您大規模管理許可時,您可能希望實作許可防護機制,並限制跨帳戶的存取權。若要限制存取權,請在任何政策中指定拒絕聲明。如果拒絕聲明適用於存取權請求,則總是優先於允許聲明。例如,如果您允許存取 AWS 中的所有動作但拒絕存取 IAM,則對 IAM 的任何請求都會被拒。您可以在任何類型的政策中包含拒絕聲明,包括 AWS Organizations 以身分為基礎、以資源為基礎和服務控制政策。如需詳細資訊,請參閱使用 AWS Identity and Access Management 控制存取權

SCP 與 IAM 政策類似,並且使用幾乎相同的語法。但 SCP 不授予許可。與之相對的是,SCP 允許或拒絕組織成員帳戶中的個別 AWS 帳戶,或組織單位內的帳戶群組存取 AWS 服務。SCP 的指定動作會影響所有 IAM 使用者和角色,包括成員帳戶的根使用者。如需詳細資訊,請參閱政策評估邏輯。 

分析存取權

當您開始授予許可時,可以在探索和試驗時從更廣泛的許可開始。隨著您的使用案例逐漸成熟,AWS 建議您細化許可,僅授予實現最低權限許可目標所需的許可。AWS 提供各種工具來協助您細化許可。您可以從 AWS 管理的政策開始,這些政策由 AWS 建立和管理,包含常見使用案例的許可。在細化許可時,請在客戶管理的政策中定義特定許可。為幫助您確定所需的特定許可,請使用 AWS Identity and Access Management (IAM) Access Analyzer,檢閱 AWS CloudTrail 日誌並檢查上次的存取資訊。您還可以使用 IAM 政策模擬器對政策進行測試和疑難排解。

實現最低權限是一個連續的週期,隨著您需求的發展授予正確的精密許可。IAM Access Analyzer 可協助您在此週期的每個步驟中簡化許可管理。 使用 IAM Access Analyzer 產生政策會根據日誌中擷取的存取活動產生精簡政策。這意味著建置和執行應用程式後,您可以產生僅授予操作應用程式所需許可的政策。 IAM Access Analyzer 的政策驗證使用 100 多項政策檢查,來指導您建立和驗證安全和功能性政策。建立新政策時,您可以使用這些檢查來驗證現有政策。自訂政策檢查是一項付費功能,可在部署之前驗證開發人員撰寫的政策是否遵守您指定的安全性標準。自訂政策檢查利用自動推理的強大功能 (以數學證據為後盾的可證明安全性保證),讓安全團隊能夠主動偵測政策的不合規更新。

使用 IAM Access Analyzer 的公有和跨帳戶問題清單,可協助您驗證並優化您的資源政策允許從您的 AWS 組織或帳戶外部進行的存取。如需詳細資訊,請參閱使用 IAM Access Analyzer。未使用的存取權分析器啟用時,IAM Access Analyzer 會持續分析您的帳戶以識別未使用的存取權,並建立集中顯示調查結果的儀表板。調查結果會反白顯示未使用的角色、IAM 使用者未使用的存取金鑰,以及 IAM 使用者未使用的密碼。對於作用中的 IAM 角色和使用者,這些調查結果可讓您了解未使用的服務和動作。

您的 AWS 帳戶中可能擁有不再需要的 IAM 使用者、角色和許可。我們建議您將其刪除以實現最低權限存取。對於 IAM 使用者,您可以檢閱上次使用的密碼和存取金鑰資訊。對於角色,您可以檢閱角色上次使用的資訊。此資訊可透過 IAM 主控台、API 和 SDK 獲得。上次使用的資訊可協助您識別不再使用且可以安全移除的使用者和角色。您還可以檢閱服務和上次存取的資訊,識別未使用的許可來細化許可。如需詳細資訊,請參閱使用上次存取的資訊最佳化 AWS 中的許可

如果您以付費功能的形式啟用了未使用的存取權分析器,IAM Access Analyzer 將會持續分析您的帳戶以識別未使用的存取權,並建立集中顯示調查結果的儀表板。儀表板可協助安全團隊集中檢閱調查結果,並根據調查結果的數量排定帳戶優先順序。安全團隊可使用儀表板集中檢閱調查結果,並根據調查結果的數量排定檢閱帳戶的優先順序。調查結果會反白顯示未使用的角色、IAM 使用者未使用的存取金鑰,以及 IAM 使用者未使用的密碼。對於作用中的 IAM 角色和使用者,這些調查結果可以顯示未使用的服務和動作,讓您更容易檢查未使用的存取權,進而實現最低權限的目標。使用此功能,您可以按每個月分析的 IAM 角色或 IAM 使用者付費。

IAM 政策模擬器會評估您選擇的政策,並確定您指定的每個動作的有效許可。使用政策模擬器,對以身分為基礎和以資源為基礎的政策IAM 許可邊界SCP 進行測試和疑難排解。如需詳細資訊,請參閱使用 IAM 政策模擬器測試 IAM 政策

IAM Access Analyzer 自訂政策檢查會在部署之前驗證 IAM 政策是否有遵守您的安全標準。自訂政策檢查利用自動推理的強大功能 (以數學證據為後盾的可證明安全保證),讓安全團隊能夠主動偵測不合規的政策更新。例如,IAM 政策變更後比舊版政策來得更寬鬆。安全團隊可利用這些檢查來簡化審查工作、自動核准符合安全標準的政策,並在深入調查不符合安全標準時進行更深入的調查。這種新的驗證方式可為雲端提供更高的安全保證。安全和開發團隊可將這些自訂政策檢查整合到開發人員編寫政策的工具和環境 (如 CI/CD 管道) 中,以大規模自動化政策審查。

IAM Access Analyzer 可讓您輕鬆檢查未使用的存取權,以引導您取得最低權限。安全團隊可使用 IAM Access Analyzer 來了解其 AWS 組織中未使用的存取權,並自動執行調整權限大小的方法。若有啟用未使用存取權分析器,IAM Access Analyzer 會持續分析您的帳戶以識別未使用的存取權,並建立集中顯示調查結果的儀表板。儀表板可協助安全團隊集中檢閱調查結果,並根據調查結果的數量排定帳戶優先順序。安全團隊可使用儀表板集中檢閱調查結果,並根據調查結果的數量排定檢閱帳戶的優先順序。調查結果會反白顯示未使用的角色、IAM 使用者未使用的存取金鑰,以及 IAM 使用者未使用的密碼。對於作用中的 IAM 角色和使用者,這些調查結果可讓您了解未使用的服務和動作。