カスタム AWS KMS キーを使用して暗号化された EBS ボリュームを作成またはアタッチできないのはなぜですか?

最終更新日: 2020 年 9 月 1 日

AWS Key Management Service (AWS KMS) カスタマーマネージドキーで暗号化されたスナップショットからの暗号化された Amazon Elastic Block Store (Amazon EBS) ボリュームを作成またはアタッチできないのはなぜですか?

簡単な説明

スナップショットと、それを暗号化するために使用したカスタム KMS キーが同じアカウントにあり、キーポリシーからのアクセス許可が欠落している場合、暗号化されたスナップショットから暗号化された EBS ボリュームを作成できない、またはそれをアタッチできない場合があります。KMS キーポリシーで、AWS Identity and Access Management (IAM) ユーザーまたはロールが許可されていることを確認してください。

解決方法

AWS CloudTrail Event 履歴を使用して、ポリシーから欠落しているアクセス許可を特定する

1.    CloudTrail コンソールを開きます。

2.    [Event history] (イベント履歴) をクリックしてから、時間範囲AttachVolume または CreateVolume API コールが実行された頃の 15 分間を入力します。

3.    フィルターで [Event source] (イベントソース) を選択してから、kms.amazonaws.com と入力します。

4.    結果がロードされたら、コンソールの右上にある [Download] (ダウンロード) ボタンをクリックして、[Download CSV] (CSV 形式でダウンロード) を選択します。

5.    先ほどダウンロードしたファイルを開き、AccessDeniedError code (エラーコード) 列をフィルタリングします。AccessDenied エラーコードを伴うすべての Event name (イベント名) は、欠落している許可であることがほとんどです。

注意: CloudTrail イベントは、[Event history] (イベント履歴) タブに表示されるまで最大 15 分かかります。CreateVolume または AttachVolume の失敗ステータスを受け取った直後に [Events history] (イベント履歴) をチェックしても、イベントが表示されていない場合があります。

欠落している許可を特定したら、以下の解決策を使用して問題を解決します。

KMS キーポリシーに、ボリュームをアタッチまたは作成しようとしている IAM ユーザーまたはロールが含まれていることを確認する

AWS KMS コンソールのデフォルトビューから以下を行います。

1.    AWS KMS コンソールを開きます。

2.    [カスタマー管理のキー] をクリックし、該当するキーを選択します。

3.    [Key policy] (キーポリシー) で、[Key users] (キーユーザー) までスクロールダウンします。[Key users] (キーユーザー) セクションに、ボリュームの作成に使用している IAM ユーザーまたはロールがリストされていることを確認します。

4.    [Key users] (キーのユーザー) セクションにユーザーまたはロールが表示されない場合は、[Add] (追加) をクリックした後、ユーザーまたはロールを選択した上で [Add] (追加) をクリックします。

AWS KMS コンソールのポリシービュービューから以下を行います。

注意: これまでに AWS KMS キーポリシーを手動で編集したことがあった場合、キーポリシーはポリシー (JSON) ビューのみで表示できます。必要な AWS KMS 許可を付与するため、ステートメントの Principal として IAM ユーザーまたはロールの ARN をリストするようにしてください。

例: キーポリシー

以下の例は、Key1 に対する UserA のアクセスを許可する KMS キーポリシーです。

{
    "Version": "2012-10-17",
    "Id": "key-consolepolicy-3",
    "Statement": [
        {
            "Sid": "Enable IAM User Permissions",
            ...
        },
        {
            "Sid": "Allow access for Key Administrators",
            ...
        },
        {
            "Sid": "Allow use of the keys",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111111111111:user/UserA"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow attachment of persistent resources",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111111111111:user/UserA"
            },
            "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                }
            }
        }
    ]
}

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


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