暗号化された Amazon Elastic Block Store (Amazon EBS) ボリュームをスナップショットから作成またはアタッチできません。スナップショットは、AWS キー管理サービス (AWS KMS) の顧客管理キーで暗号化されます。
簡単な説明
暗号化されたスナップショットから暗号化された EBS ボリュームを作成またはアタッチできない場合があります。これは、スナップショットと、スナップショットの暗号化に使用されるカスタム KMS キーが同じアカウントにあり、キーポリシー権限がない場合に発生します。この問題を解決するには、AWS KMS キーポリシーで AWS ID およびアクセス管理 (IAM) ユーザーまたはロールを許可します。
解決策
CloudTrail イベント履歴を使用するポリシーから不足しているアクセス権限を特定します
- AWS CloudTrail コンソールを開きます。
- [イベント履歴] を選択します。次に、[時間範囲] に、AttachVolume または CreateVolume API 呼び出しが発生した時点の 15 分間の時間帯を入力します。
- [フィルター] を選択し、[イベントソース] を選択して、kms.amazonaws.com と入力します。
- 結果が読み込まれたら、ダウンロードボタンを選択し、[CSV をダウンロード] を選択します。
- .csv ファイルを開き、「エラーコード」 列を「AccessDenied」に絞り込みます。AccessDenied エラーコードの付いたイベント名は、通常、権限が不足していることです。
**注:CloudTrail イベントが [イベント履歴] タブに表示されるまでに最大 15 分かかることがあります。CreateVolume ** または ** AttachVolume ** が失敗したステータスを受け取った直後にイベント履歴を確認しても、イベントが表示されない場合があります。
不足している権限を特定したら、次の手順を実行して問題を解決します。
KMS キーポリシーに、ボリュームを作成またはアタッチする IAM ユーザーまたはロールが含まれていることを確認する
AWS KMS コンソールのデフォルトビュー
1. AWS KMS コンソールを開きます。
2. [カスタマー管理キー] を選択し、適切なキーを選択します。
3. [キーポリシー] で、[キーユーザー] までスクロールします。[キーユーザー] セクションに、ボリュームを作成またはアタッチする IAM ユーザーまたはロールが表示されていることを確認します。
4. [キーユーザー] セクションにユーザーまたはロールが表示されない場合は、[追加] を選択し、ユーザーまたはロールを選択して、[追加] を選択します。
AWS KMS コンソールのポリシービュー
以前に AWS KMS キーポリシーを手動で編集した場合、キーポリシーはポリシー (JSON) ビューでのみ使用できます。必要な AWS KMS アクセス権限を許可するには、ステートメントに IAM ユーザーまたはロールの ARN を プリンシパル として記載します。
キーポリシーの例
以下は、UserA に Key1 へのアクセスを許可する AWS 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"
}
}
}
]
}