為什麼我無法在 AWS KMS 中讀取或更新 AWS KMS 金鑰政策?

2 分的閱讀內容
0

我想在 AWS Key Management Service (KMS) 中更新 AWS KMS 金鑰政策。我確認我對 AWS Identity and Access Management (IAM) 身分 (使用者、群組和角色) 擁有管理員權限。但是,我無法閱讀或更新 KMS 金鑰政策。

簡短說明

IAM 主體必須具有 API 動作權限 GetKeyPolicy 才能讀取金鑰政策,必須具有 PutKeyPolicy 才能更新政策。這些權限可以直接透過金鑰政策授與,或是組合金鑰與 IAM 政策授與。如需詳細資訊,請參閱 AWS 金鑰管理服務

預設 AWS KMS key IAM 政策包含類似下列的陳述式:

{  "Sid": "Enable IAM User Permissions",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:root"
  },
  "Action": "kms:*",
  "Resource": "*"
}

AWS 帳戶 111122223333 的 IAM 實體可以執行附加政策中允許的任何 AWS KMS 動作。有時實體也無法執行 API 動作,例如 GetKeyPolicyPutKeyPolicy,即使其附加的政策包含權限亦同。若要解決此錯誤,請檢查「啟用 IAM 使用者權限」陳述式是否已變更。

解決方法

檢查 IAM 政策權限

確定您的 IAM 實體具有讀取和更新類似於此 IAM 政策之 AWS KMS key 的權限:

{  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "kms:Create*",
        "kms:Describe*",
        "kms:Enable*",
        "kms:List*",
        "kms:Put*",
        "kms:Update*",
        "kms:Revoke*",
        "kms:Disable*",
        "kms:Get*",
        "kms:Delete*",
        "kms:TagResource",
        "kms:UntagResource",
        "kms:ScheduleKeyDeletion",
        "kms:CancelKeyDeletion"
      ],
      "Resource": "arn:aws:kms:*:111122223333:key/*"
    }
  ]
}

使用 CloudTrail 事件歷史記錄

  1. 開啟 AWS CloudTrail 主控台,然後選擇事件歷史記錄
  2. 選擇查詢屬性下拉式清單,然後選擇事件名稱
  3. 在搜尋視窗中,輸入 PutKeyPolicy
  4. 開啟最近的 PutKeyPolicy 事件。
  5. 事件記錄中,複製政策,然後將其貼到您喜歡的文字編輯器中。
  6. 將政策解析成可讀的格式。
  7. 在 IAM 政策 Sid「允許金鑰管理員存取」中,請注意類似下列的 IAM 身分管理員:
{  "Sid": "Allow access for Key Administrators",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "arn:aws:iam::111122223333:role/Administrator"
    ]
   },

然後可以使用金鑰管理員重新獲取金鑰的存取權限。

使用 Athena 查詢

如果 CloudTrail 事件歷史記錄事件超過 90 天,您可以使用 Amazon Athena 來搜尋 CloudTrail 日誌。如需相關指示,請參閱使用 CloudTrail 主控台建立適用於 CloudTrail 日誌的 Athena 資料表

如需詳細資訊,請參閱如何在 Athena 中自動建立資料表以搜尋 CloudTrail 日誌?

相關資訊

安全存取金鑰

AWS KMS 概念

AWS 官方
AWS 官方已更新 1 年前