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

最終更新日: 2021 年 8 月 26 日

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 のテーブルを自動的に作成する方法を教えてください」を参照してください。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?