翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
暗号化されたボリュームで使用するために必要な AWS KMS キーポリシー
Amazon EC2 Auto Scaling は、サービスにリンクされたロールを使用して、アクセス許可を他の に委任します AWS のサービス。Amazon EC2 Auto Scaling のサービスにリンクされたロールは事前定義されており、Amazon EC2 Auto Scaling が AWS のサービス ユーザーに代わって他の を呼び出すために必要なアクセス許可が含まれています。事前定義されたアクセス許可には、 へのアクセスも含まれます AWS マネージドキー。ただし、顧客管理キーへのアクセスは含まれていないため、これらのキーを完全に制御できます。
このトピックでは、Amazon EBS 暗号化のカスタマーマネージドキーを指定するときに Auto Scaling インスタンスを起動するために必要なキーポリシーを設定する方法について説明します。
注記
Amazon EC2 Auto Scaling では、アカウントの暗号化されたボリュームの保護にデフォルトの AWS マネージドキー を使用する場合、追加の承認は不要です。
内容
概要
Amazon EC2 Auto Scaling がインスタンスを起動するときに AWS KMS keys 、Amazon EBS 暗号化に以下を使用できます。
-
AWS マネージドキー – Amazon EBS によって作成、所有、および管理されるアカウント内の暗号化キー。これは、新しいアカウントのデフォルトの暗号化キーです。カスタマーマネージドキーを指定しない限り、 AWS マネージドキー は暗号化に使用されます。
-
カスタマーマネージド型キー – お客様が作成、所有、および管理するカスタム暗号化キー。詳細については、デベロッパーガイドの「AWS Key Management Service キーの作成」を参照してください。
注:キーは対称である必要があります。Amazon EBS は非対称カスタマー管理キーをサポートしていません。
カスタマーマネージド型キーは、暗号化されたスナップショットを作成するとき、または暗号化されたボリュームを指定する起動テンプレートを作成するとき、またはデフォルトで暗号化を有効にするときに設定します。
キーポリシーを設定する
KMS キーには、Amazon EC2 Auto Scaling が、カスタマーマネージド型キーで暗号化された Amazon EBS ボリュームを使用してインスタンスを起動できるようにするキーポリシーが必要です。
このページの例を使用して、Amazon EC2 Auto Scaling にカスタマー管理型キーへのアクセスを許可するようにキーポリシーを設定します。カスタマー管理型 キーのキーポリシーは、キーの作成時または後で変更できます。
Amazon EC2 Auto Scaling で CMK のキーポリシーを使用するには、少なくとも、2 つのポリシーステートメントをそのポリシーに追加する必要があります。
-
最初のステートメントでは、
Principal
要素で指定された IAM アイデンティティに、カスタマー型マネージドキー を直接使用できるようにします。これには、キーに対して AWS KMSEncrypt
、、Decrypt
ReEncrypt*
、GenerateDataKey*
、およびDescribeKey
オペレーションを実行するアクセス許可が含まれます。 -
2 番目のステートメントでは、
Principal
要素で指定された IAM ID がCreateGrant
オペレーションを使用して、 AWS KMS または別のプリンシパルと統合された に独自のアクセス許可のサブセットを委任 AWS のサービス する許可を生成できるようにします。これにより、それらのサービスはお客様に代わって、キーを使用して、暗号化されたリソースを作成できるようになります。
キーポリシーに新しいポリシーステートメントを追加する場合は、ポリシーの既存のステートメントを変更しないでください。
以下の各例では、キー ID やサービスにリンクされたロールの名前など、置き換える必要のある引数が、ユーザープレースホルダーテキスト
として表示されます。ほとんどの場合、サービスにリンクされたロールの名前を Amazon EC2 Auto Scaling サービスにリンクされたロールの名前に置き換えることができます。
詳細については、以下のリソースを参照してください。
-
を使用してキーを作成するには AWS CLI、「create-key
」を参照してください。 -
でキーポリシーを更新するには AWS CLI、「put-key-policy
」を参照してください。 -
キー ID と Amazon リソースネーム (ARN) を確認するには、AWS Key Management Service デベロッパーガイドの「キー ID と ARN を検索する」を参照してください。
-
Amazon EC2 Auto Scaling というサービスにリンクされたロールについては、「Amazon EC2 Auto Scaling のサービスにリンクされたロール」を参照してください。
-
Amazon EBS 暗号化と KMS 全般の詳細については、「Amazon EBS ユーザーガイド」の「Amazon EBS 暗号化」および「AWS Key Management Service デベロッパーガイド」を参照してください。
例 1: カスタマー管理キーへのアクセスを許可するキーポリシーセクション
以下の 2 つのポリシーステートメントをカスタマー管理型キーのキーポリシーに追加して、例の ARN を、キーへのアクセスが許可されている適切なサービスにリンクされたロールの ARN に置き換えます。次の例では、[AWSServiceRoleForAutoScaling] という名前のサービスリンクロールに、カスタマーマネージドキーを使用するアクセス許可を付与します。
{ "Sid": "Allow service-linked role use of the customer managed key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
account-id
: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::
account-id
:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling
" ] }, "Action": [ "kms:CreateGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } }
例 2: カスタマー管理キーへのクロスアカウントアクセスを許可するキーポリシーセクション
カスタマー管理キーを Auto Scaling グループとは異なるアカウントで作成する場合は、キーへのクロスアカウントアクセスを許可するキーポリシーと組み合わせてグラントを使用する必要があります。
これには 2 つのステップがあり、以下の順序で完了する必要があります。
-
まず、カスタマー管理キーのキーポリシーに以下の 2 つのポリシーステートメントを追加します。サンプル ARN を他のアカウントの ARN に置き換えます。 を Auto Scaling グループ AWS アカウント を作成する の
111122223333
実際のアカウント ID に置き換えてください。そうすることで、次の CLI コマンドを使用して、指定されたアカウント内の IAM ユーザーまたはロールに、キーに対するグラントを作成する許可を提供できます。ただし、これ自体がキーへのアクセス許可をユーザーに提供するのではありません。{ "Sid": "Allow external account
111122223333
use of the customer managed key", "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": "*" } -
次に、Auto Scaling グループを作成するアカウントから、関連する許可を適切なサービスリンクロールに委任するグラントを作成します。グラントの
Grantee Principal
要素は、適切なサービスリンクロールの ARN です。key-id
は、キーの ARN です。以下の create-grant
CLI コマンドの例では、アカウント 111122223333
の [AWSServiceRoleForAutoScaling] という名前のサービスリンクロールに、アカウント444455556666
のカスタマーマネージドキーを使用するためのアクセス許可を付与しています。aws kms create-grant \ --region
us-west-2
\ --key-idarn: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 ポリシーの例では、アカウント
111122223333
内の IAM アイデンティティ (ユーザーまたはロール) がアカウント444455556666
内でカスタマーマネージド型キーの付与を作成できるようにします。{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreationOfGrantForTheKMSKeyinExternalAccount
444455556666
", "Effect": "Allow", "Action": "kms:CreateGrant", "Resource": "arn:aws:kms:us-west-2:444455556666:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d
" } ] }異なる AWS アカウント内での KMS キーに対するグラントの作成に関する詳細については、「 デベロッパーガイド」の「 AWS KMSでの権限」を参照してください。
重要
被付与者のプリンシパルとして指定されたサービスにリンクされたロール名は、既存のロールの名前でなければなりません。グラントを作成した後は、Amazon EC2 Auto Scaling が指定された KMS キーを確実に使用できるようにするために、サービスにリンクされたロールを削除して再作成しないでください。
AWS KMS コンソールでキーポリシーを編集する
以前のセクションの例では、キーポリシーにステートメントを追加する方法のみを示しています。これは、キーポリシーを変更する 1 つの方法にすぎません。キーポリシーを変更する最も簡単な方法は、キーポリシーに AWS KMS コンソールのデフォルトビューを使用し、IAM ID (ユーザーまたはロール) を適切なキーポリシーのキーユーザーの 1 つにすることです。詳細については、「 AWS Key Management Service デベロッパーガイド」の AWS Management Console 「デフォルトビューの使用」を参照してください。
重要
以下の点に注意してください。コンソールのデフォルトビューポリシーステートメントには、カスタマーマネージドキーでオペレーションを実行する AWS KMS Revoke
アクセス許可が含まれています。アカウントのカスタマーマネージドキー AWS アカウント へのアクセスを許可し、このアクセス許可を付与した付与を誤って取り消した場合、外部ユーザーは暗号化されたデータや、データの暗号化に使用されたキーにアクセスできなくなります。