檢查 IAM 政策 - AWS Key Management Service

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

檢查 IAM 政策

除了金鑰政策和授予之外,您也可以使用 IAM 政策,以允許存取 KMS 金鑰。如需金鑰政策與 IAM 政策如何同時運作的相關資訊,請參閱 對金鑰存取進行故障診斷

若要判斷哪些主體目前可透過 IAM 政策存取 KMS 金鑰,您可以使用以瀏覽器為基礎的 IAM 政策模擬器工具,或者可以提出請求至 IAM API。

使用 IAM 政策模擬器來檢查 IAM 政策

IAM 政策模擬器可協助您了解哪些原則有權限透過 IAM 政策來存取 KMS 金鑰。

若要使用 IAM 政策模擬器來以判斷是否可存取 KMS 金鑰
  1. 登入 AWS Management Console,然後開啟 IAM 政策模擬器,網址為 https://policysim.aws.amazon.com/

  2. 使用者、群組和角色窗格,選擇您想要模擬所屬政策的使用者、群組或角色。

  3. (選用) 清除任何您想要從模擬中刪除的政策旁的核取方塊。若要模擬所有政策,請保持勾選所有政策。

  4. Policy Simulator (政策模擬器) 窗格中,執行下列動作:

    1. Select service (選取服務) 中,選擇 Key Management Service (金鑰管理服務)

    2. 若要模擬特定的 AWS KMS 動作,請在 Select actions (選取動作) 中選擇要模擬的動作;若要模擬所有 AWS KMS 動作,則請選擇 Select All (全選)

  5. (選用) 政策模擬器根據預設將模擬所有對 KMS 金鑰的存取。若要模擬存取特定 KMS 金鑰,請選擇 Simulation Settings (模擬設定),接著輸入要模擬之 KMS 金鑰的 Amazon Resource Name (ARN)。

  6. 選擇 Run Simulation (執行模擬)

您可在 Results (結果) 部分查看模擬結果。對於 AWS 帳戶 中的每個 IAM 使用者、群組和角色,請重複步驟 2 到步驟 6。

使用 IAM API 檢查 IAM 政策

您可以使用 IAM API 來以程式設計方式檢查 IAM 政策。以下步驟提供執行此操作方法的一般概述:

  1. 對於在金鑰政策中AWS 帳戶列為主體的每個主體 (亦即,以此格式指定的每個AWS帳戶主體:"Principal": {"AWS": "arn:aws:iam::111122223333:root"}),請使用 IAM API 中的ListUsersListRoles操作來取得帳戶中的所有使用者和角色。

  2. 針對清單中的每個使用者和角色,使用 IAM API 中的SimulatePrincipalPolicy作業,並傳入下列參數:

    • 針對 PolicySourceArn,請指定清單中使用者或角色的 Amazon Resource Name (ARN)。您只能為每個 SimulatePrincipalPolicy 請求指定一個 PolicySourceArn,因此您必須多次呼叫此操作,針對清單中的每個使用者與角色各呼叫一次。

    • 針對 ActionNames 清單,請指定要模擬的每個 AWS KMS API 動作。若要模擬所有 AWS KMS API 動作,請使用 kms:*;若要測試個別的 AWS KMS API 動作,請在每個 API 動作前加上「kms:」,例如「kms:ListKeys」。如需 AWS KMS API 動作的完整清單,請參閱 AWS Key Management Service API 參考中的動作

    • (選用) 若要判斷使用者或角色是否可以存取特定 KMS 金鑰,請使用 ResourceArns 參數來指定 KMS 金鑰的 Amazon Resource Name (ARN) 清單。若要判斷使用者或角色是否可以存取任何 KMS 金鑰,請忽略 ResourceArns 參數。

IAM 將以下列評估決定來回應每個 SimulatePrincipalPolicy 請求:allowedexplicitDenyimplicitDeny。對於包含評估決策 allowed 的每個回應,回應中會包含允許的特定 AWS KMS API 操作的名稱。還會包含評估時所使用的 KMS 金鑰的 ARN (如果有)。