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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

暗号化されたボリュームで使用する必須の CMK キーポリシー

Amazon EC2 Auto Scaling (英語)サービスにリンクされたロールは、Amazon Web Services にアクセス許可を委任するより安全で透過的な方法を提供する、新しいタイプの IAM ロールです。Amazon EC2 Auto Scaling というサービスにリンクされたロールは、Amazon EC2 Auto Scaling によって事前定義されており、お客様の代わりにサービスから他のAmazon Web Services 呼び出す必要のあるアクセス許可がすべて含まれています。定義済みの権限には、AWSマネージド型カスタマーマスターキー (CMK)。ただし、これらのキーにはカスタマー管理の CMK へのアクセスは含まれていないため、これらのキーを完全に制御できます。

このトピックでは、Amazon EBS 暗号化用にカスタマーマネージド CMK を指定するときに Auto Scaling インスタンスを起動するために必要なキーポリシーを設定する方法について説明します。

注記

Amazon EC2 Auto Scaling では、デフォルトのAWS管理の CMK を使用して、アカウントの暗号化されたボリュームを保護します。

Overview

以下のようになりますAWS KMSキーは、Amazon EC2 Auto Scaling がインスタンスを起動するときに Amazon EBS 暗号化に使用できます。

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

  • カスタマー管理 CMK— お客様が作成、所有、管理するカスタム暗号化キー。詳細については、「」を参照してください。キーの作成()AWS Key Management Service開発者ガイド

    注意: キーは対称でなければなりません。Amazon EBS は非対称 CMK をサポートしていません。

暗号化されたスナップショットを作成するとき、または暗号化されたボリュームを指定する起動テンプレートを作成するとき、またはデフォルトで暗号化を有効にするときは、KMS キーを指定します。

キーポリシーの設定

KMS キーには、Amazon EC2 Auto Scaling が、カスタマーマネージド CMK で暗号化された Amazon EBS ボリュームを使用してインスタンスを起動できるようにするキーポリシーが必要です。

このページの例を使用して、Amazon EC2 Auto Scaling にカスタマー管理の CMK へのアクセスを許可するようにキーポリシーを設定します。CMK 作成時またはそれ以降に、キーポリシーを変更できます。

Amazon EC2 Auto Scaling と連携するには、少なくとも、2 つのポリシーステートメントをそのポリシーに追加する必要があります。

  • 最初のステートメントでは、PrincipalCMK を直接使用するには要素を。また、CMK で AWS KMS、EncryptDecryptReEncrypt*GenerateDataKey*、および DescribeKey オペレーションを実行するためのアクセス許可を含めます。

  • 2 番目のステートメントでは、Principal要素を使用して、独自のアクセス許可のサブセットを Amazon Web Services に委任します。AWS KMSまたは別のプリンシパル。 これにより、それらのサービスはお客様に代わって、CMK を使用して、暗号化されたリソースを作成できるようになります。

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

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

詳細については、以下のリソースを参照してください。

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

以下の 2 つのポリシーステートメントをカスタマー管理の CMK のキーポリシーに追加して、例の ARN を、CMK へのアクセスが許可されている適切なサービスにリンクされたロールの ARN に置き換えます。次の例では、AWSServiceRoleForAutoScaling という名前のサービスにリンクされたロールに、カスタマー管理の 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 } } }

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

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

まず、以下の 2 つのポリシーステートメントを CMK のキーポリシーに追加して、例の ARN を外部アカウントの ARN に置き換え、キーを使用できるアカウントを指定します。これにより、IAM ポリシーを使用して、指定したアカウントの IAM ユーザーまたはロールに次の CLI コマンドを使用して CMK の許可を作成するためのアクセス許可を付与できます。アカウントに 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 コマンドAWSサービスロールオートスケーリングアカウント内で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": "AllowCreationOfGrantForTheCMKinExternalAccount444455556666", "Effect": "Allow", "Action": "kms:CreateGrant", "Resource": "arn:aws:kms:us-west-2:444455556666:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" } ] }

これらのアクセス許可を付与すると、すべてが期待どおりに動作するはずです。詳細については、こちらのフォーラム投稿を参照してください。

キーポリシーの編集AWS KMSconsole

前のセクションの例では、キーポリシーにステートメントを追加する方法のみを示しています。これは、キーポリシーを変更する 1 つの方法にすぎません。キーポリシーを変更する最も簡単な方法は、AWS KMSコンソールのキーポリシー用のデフォルトビューを作成し、IAM エンティティ (ユーザーまたはロール) をキーユーザーで適切なキーポリシーを確認します。詳細については、「」を参照してください。の使用AWS管理コンソールのデフォルトビュー()AWS Key Management Service開発者ガイド

重要

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