AWS KMS で KMS キーポリシーの読み取りや更新を実行できないのはなぜですか?

所要時間2分
0

AWS Key Management Service (AWS KMS) で AWS KMS キーポリシーを更新したいと考えています。AWS Identity and Access Management (IAM) アイデンティティ (ユーザー、グループ、およびロール) の管理者許可があることは確認しましたが、KMS キーポリシーの読み取りや更新を実行できません。

簡単な説明

IAM プリンシパルには、キーポリシーを読み取るための GetKeyPolicy と、ポリシーを更新するための PutKeyPolicy の API アクション許可が必要です。これらの許可は、キーポリシーで直接付与されるか、キーポリシーと IAM ポリシーの組み合わせで付与されます。詳細については、「Managing access to AWS KMS keys」を参照してください。

デフォルトの KMS キー IAM ポリシーには、以下のようなステートメントが含まれています。

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

AWS アカウント 111122223333 の IAM エンティティは、アタッチされたポリシーで許可されている任意の AWS KMS アクションを実行できます。アタッチされているポリシーに許可が設定されているのに、エンティティが GetKeyPolicy または PutKeyPolicy などの API アクションを実行できない場合は、「Enable IAM User Permissions」ステートメントが変更されている可能性があります。

解決方法

IAM ポリシー許可を検証する

以下の IAM ポリシーのように、KMS キーの読み取りと更新を行う許可が IAM エンティティにあることを確認します。

{
  "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 コンソールを開き、[Event history] (イベント履歴) をクリックします。

2.    [Lookup attributes] (ルックアップ属性) ドロップダウンリストをクリックしてから、[Event name] (イベント名) を選択します。

3.    検索ウィンドウに PutKeyPolicy と入力します。

4.    最新の PutKeyPolicy イベントを開きます。

5.    [Event record] (イベントレコード) でポリシーをコピーして、任意のテキストエディタに貼り付けます。

6.    ポリシーを読み取り可能な形式に解析します。

7.    IAM ポリシーの Sid「Allow access for Key Administrators」で、以下のような IAM アイデンティティ管理者を書き留めておきます。

{
  "Sid": "Allow access for Key Administrators",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "arn:aws:iam::111122223333:role/Administrator"
    ]
   },

その後、キー管理者を使用してキーへのアクセス権を取り戻すことができます。

Athena クエリを使用する

CloudTrail イベント履歴のイベントが 90 日以上経過している場合は、Amazon Athena を使用して CloudTrail ログを検索できます。

この手順については、「CloudTrail ログ用の Athena テーブルを作成するための CloudTrail コンソールの使用」を参照してください。

詳細については、「AWS CloudTrail ログ検索をするために Amazon Athena のテーブルを自動的に作成する方法を教えてください」を参照してください。


関連情報

AWS アクセスキーを管理するためのベストプラクティス

AWS KMS keys

AWS公式
AWS公式更新しました 3年前
コメントはありません