暗号化されたボリュームで使用するために必要なCMKキーポリシー - Amazon EC2 Auto Scaling (日本語)

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

暗号化されたボリュームで使用するために必要なCMKキーポリシー

暗号化された Amazon EBS 暗号化されたボリュームを指定するスナップショットまたは起動テンプレート、またはデフォルトで暗号化を有効にする場合、次のいずれかを選択できます。 AWS Key Management Service データを暗号化するカスタマーマスターキー(CMK):

  • AWS管理CMK — アカウントの暗号化キーで、 Amazon EBS 作成、所有、管理を行います。これは、新しいアカウントのデフォルトの暗号化キーです。AWS 管理の CMK は、カスタマー管理の CMK を指定する場合を除き、暗号化に使用されます。

  • 顧客管理CMK — 作成、所有、管理するカスタム暗号化キー。詳細については、以下を参照してください。 キーの作成AWS Key Management Service Developer Guide.

    注 : Amazon EBS は非対称 CMK をサポートしていません。

Amazon EC2 Auto Scaling では、AWS アカウントの暗号化されたボリュームの保護にデフォルトの AWS 管理の CMK を使用する場合、追加の承認は不要です。

顧客管理CMKを Amazon EBS 暗号化を行う場合は、適切な サービス連携ロール CMKにアクセスすることで Amazon EC2 Auto Scaling は、お客様に代わってインスタンスを起動することができます。そのためには、CMK 作成時またはそれ以降に CMK のキーポリシーを変更する必要があります。

キー・ポリシーの構成

このページの例を使用して、Amazon EC2 Auto Scaling にカスタマー管理の CMK へのアクセスを許可するようにキーポリシーを設定します。 で CMK のキーポリシーを使用するには、少なくとも、2 つのポリシーステートメントをそのポリシーに追加する必要があります。Amazon EC2 Auto Scaling.

  • 最初の文では、 IAM に指定されたID Principal CMKを直接使用する要素です。これには、 AWS KMS EncryptDecryptReEncrypt*GenerateDataKey*、および DescribeKey CMK上で動作します。

  • 2番目の文では、 IAM に指定されたID Principal 権限を使用して、自身の権限のサブセットを、 AWS KMS または別のプリンシパル。これにより、それらのサービスはお客様に代わって、CMK を使用して、暗号化されたリソースを作成できるようになります。

CMK ポリシーに新しいポリシーステートメントを追加する場合は、ポリシーの既存のステートメントを変更しないでください。

以下の各例について、キー ID やサービス連携ロールの名前など、置換する必要がある引数が次のように表示されます。replaceable text in italicsほとんどの場合、サービスにリンクされたロールの名前を Amazon EC2 Auto Scaling サービスにリンクされたロールの名前に置き換えることができます。ただし、起動設定を使用してスポットインスタンスを起動する場合は、 という名前のロールを使用します。AWSServiceRoleForEC2Spot.

以下のリソースを参照してください。

コンソールでのキーポリシーの編集

以下のセクションの例では、キーポリシーにステートメントを追加する方法のみを示しています。これは、キーポリシーを変更する 1 つの方法にすぎません。重要なポリシーを変更する最も簡単な方法は、 IAM コンソールのキーポリシーのデフォルトの表示で、 IAM エンティティ(ユーザーまたは役割)のいずれか 主要ユーザー 適切なキーポリシーについて 詳細については、以下を参照してください。 AWS Management Consoleのデフォルトビューの使用AWS Key Management Service Developer Guide.

重要

以下の点に注意してください。コンソールのデフォルトの表示ポリシーステートメントには、 AWS KMS Revoke CMK上で動作します。AWS アカウントにお客様のアカウントの CMK へのアクセスを許可した場合、このアクセス許可を付与するための許可を誤って取り消すと、外部ユーザーは暗号化されたデータにもデータの暗号化に使用されたキーにもアクセスできなくなります。

例: 。CMKへのアクセスを許可するCMKキーポリシーセクション

以下の 2 つのポリシーステートメントをカスタマー管理の CMK のキーポリシーに追加して、例の ARN を、CMK へのアクセスが許可されている適切なサービスにリンクされたロールの ARN に置き換えます。この例では、ポリシーセクションには、 自動スケーリングのためのAWSServiceRole CMKを使用する権限。

{ "Sid": "Allow service-linked role use of the CMK", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" ] }, "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::123456789012:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" ] }, "Action": [ "kms:CreateGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } }

例: 。CMKへのクロスアカウントアクセスを許可するCMKの主要ポリシーセクション

カスタマー管理 CMK が、Auto Scaling グループとは異なるアカウントにある場合は、CMK へのアクセスを許可するキーポリシーを組み合わせて付与する必要があります。詳細については、以下を参照してください。 権限の使用AWS Key Management Service Developer Guide.

まず、以下の 2 つのポリシーステートメントを CMK のキーポリシーに追加して、例の ARN を外部アカウントの ARN に置き換え、キーを使用できるアカウントを指定します。これにより、 IAM 提供するポリシー IAM 指定されたアカウント権限内のユーザーまたは役割で、次のCLIコマンドを使用してCMKの権限を作成します。AWS アカウントに CMK へのフルアクセスを付与しても、CMK へのアクセス権は IAM ユーザーまたはロールに付与されません。

{ "Sid": "Allow external account 111122223333 use of the CMK", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }
{ "Sid": "Allow attachment of persistent resources in external account 111122223333", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": [ "kms:CreateGrant" ], "Resource": "*" }

次に、関連するアクセス許可を適切なサービスにリンクされたロールに委任するための許可を作成します。許可の Grantee Principal 要素は、適切なサービスにリンクされたロールの ARN です。は、 key-id はCMKのARNです。以下が例です クリエイト・ア・グラント という名前のサービス リンク ロールを指定するCLIコマンド 自動スケーリングのためのAWSServiceRole アカウントで 111122223333 アカウントでCMKを使用する許可 444455556666.

aws kms create-grant \ --region us-west-2 \ --key-id arn:aws:kms:us-west-2:444455556666:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d \ --grantee-principal arn:aws:iam::111122223333:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling \ --operations "Encrypt" "Decrypt" "ReEncryptFrom" "ReEncryptTo" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "DescribeKey" "CreateGrant"

このコマンドが成功するには、リクエストを行うユーザーに CreateGrant アクションに対するアクセス許可が必要です。次の例は、 IAM ポリシーでは、 IAM ユーザーまたはアカウント内のロール 111122223333 アカウントでCMKの付与を作成します 444455556666.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow creation of grant for the CMK in external account 444455556666", "Effect": "Allow", "Action": "kms:CreateGrant", "Resource": "arn:aws:kms:us-west-2:444455556666:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" } ] }

暗号化されたボリュームでインスタンスを起動するために必要な、顧客管理CMKへのクロスアカウントアクセスの設定に問題がある場合は、 トラブルシューティングセクション.

詳細については、以下を参照してください。 Amazon EBS EncryptionLinux インスタンス用 Amazon EC2 ユーザーガイド および AWS Key Management Service Developer Guide.