翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
KMS キー | 作成
事前定義されたキーポリシーを使用して KMS キーをリクエストします。
完全分類: デプロイ | 高度なスタックコンポーネント | KMS キー | 作成
変更タイプの詳細
変更タイプ ID |
ct-1d84keiri1jhg |
現在のバージョン |
1.0 |
予想される実行期間 |
60 分 |
AWS の承認 |
必須 |
お客様の承認 |
不要 |
実行モード |
自動 |
追加情報
KMS キーを作成する
AMS コンソールでのこの変更タイプのスクリーンショット:
仕組み:
RFC の作成ページに移動します。AMS コンソールの左側のナビゲーションペインでRFCs をクリックして RFCsリストページを開き、RFC の作成をクリックします。
デフォルトの変更タイプ参照ビューで一般的な変更タイプ (CT) を選択するか、カテゴリ別選択ビューで CT を選択します。
変更タイプ別に参照: クイック作成エリアで一般的な CT をクリックすると、すぐに RFC の実行ページを開くことができます。クイック作成で古い CT バージョンを選択することはできません。
CTs をソートするには、カードビューまたはテーブルビューですべての変更タイプ領域を使用します。どちらのビューでも、CT を選択し、RFC の作成をクリックして RFC の実行ページを開きます。必要に応じて、RFC の作成ボタンの横に古いバージョンで作成オプションが表示されます。
カテゴリ別に選択: カテゴリ、サブカテゴリ、項目、オペレーションを選択すると、CT 詳細ボックスが開き、必要に応じて古いバージョンで作成するオプションが表示されます。RFC の作成をクリックして、RFC の実行ページを開きます。
RFC の実行ページで、CT 名エリアを開き、CT の詳細ボックスを表示します。件名は必須です (変更タイプの参照ビューで CT を選択した場合は入力されます)。追加設定エリアを開き、RFC に関する情報を追加します。
実行設定領域で、使用可能なドロップダウンリストを使用するか、必要なパラメータの値を入力します。オプションの実行パラメータを設定するには、追加設定エリアを開きます。
完了したら、実行 をクリックします。エラーがない場合、RFC が正常に作成されたページに、送信された RFC の詳細と最初の実行出力が表示されます。
Run parameters エリアを開き、送信した設定を確認します。ページを更新して RFC 実行ステータスを更新します。必要に応じて、RFC をキャンセルするか、ページ上部のオプションを使用してコピーを作成します。
仕組み:
インライン作成 (すべての RFC と実行パラメータを含む
create-rfcコマンドを発行) またはテンプレート作成 (2 つの JSON ファイルを作成し、1 つは RFC パラメータ用、もう 1 つは実行パラメータ用) のいずれかを使用し、2 つのファイルを入力としてcreate-rfcコマンドを発行します。どちらの方法もここで説明します。返された RFC ID を使用して RFC:
aws amscm submit-rfc --rfc-idコマンドを送信します。IDRFC:
aws amscm get-rfc --rfc-idコマンドをモニタリングします。ID
変更タイプのバージョンを確認するには、次のコマンドを使用します。
aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=CT_ID
注記
変更タイプのスキーマの一部であるかどうかにかかわらず、任意の RFC で任意のCreateRfcパラメータを使用できます。たとえば、RFC ステータスが変更されたときに通知を受け取るには、リクエストの RFC パラメータ部分 (実行パラメータではなく) --notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}"にこの行を追加します。すべての CreateRfc パラメータのリストについては、AMS 変更管理 API リファレンスを参照してください。
インライン作成:
インラインで指定された実行パラメータ (インラインで実行パラメータを指定する場合は引用符をエスケープ) を指定して create RFC コマンドを発行し、返された RFC ID を送信します。たとえば、コンテンツを次のような内容に置き換えることができます。
必須パラメータのみ:
aws amscm create-rfc --titlemy-app-key--change-type-id ct-1d84keiri1jhg --change-type-version1.0--execution-parameters '{"Description":"KMS key for my-app","VpcId":"VPC_ID","Name":"my-app-key","StackTemplateId":"stm-enf1j068fhg34vugt","TimeoutInMinutes":60,"Parameters":{"Description":"KMS key for my-app"}}'
テンプレートの作成:
この変更タイプの実行パラメータ JSON スキーマをファイルに出力します。この例では、CreateKmsKeyAutoParams.json.
aws amscm get-change-type-version --change-type-id "ct-1d84keiri1jhg" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateKmsKeyAutoParams.jsonCreateKmsKeyAutoParams ファイルを変更して保存します。以下に例を示します。
ユーザーまたはロールに、作成された CMK を復号するアクセス許可を付与します。実行パラメータの例:
{ "Description": "KMS key for my-app", "VpcId": "VPC_ID”, "Name": "my-app-key-decrypt", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "IAMPrincipalsRequiringDecryptPermissions": [ "ARN:role/roleA", "ARN:user/userB", "ARN:role/instanceProfileA" ], "Description": "KMS key for my-app" } }結果のポリシーについては、「」を参照してくださいIAM ユーザーまたはロールの CML で復号するアクセス許可を付与します。
作成した CMK を使用して暗号化するアクセス許可をユーザーまたはロールに付与します。実行パラメータの例:
{ "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-encrypt", "Tags": [ { "Key": "Name", "Value": "my-app-key" } ], "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "IAMPrincipalsRequiringEncryptPermissions": [ "ARN:role/roleA", "ARN:user/userB", "ARN:role/instanceProfileA" ], "Description": "KMS key for my-app" } }結果のポリシーについては、「」を参照してくださいIAM ユーザーまたはロールの CML で暗号化するアクセス許可を付与します。
作成した CMK を使用して許可を作成するアクセス許可をユーザー、ロール、またはアカウントに付与します。実行パラメータの例:
{ "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-create-grants", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "IAMPrincipalsRequiringGrantsPermissions": [ "arn:aws:iam::999999999999:role/roleA", "888888888888" ], "Description": "KMS key for my-app" } }結果のポリシーについては、「」を参照してくださいIAM ユーザー、ロール、またはアカウントの CMK を使用してグラントを作成するアクセス許可を付与します。
AWS KMS と統合されている AWS のサービスのみが GRANT オペレーションを実行できるようにします。実行パラメータの例:
{ "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-limit-to-services", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "IAMPrincipalsRequiringGrantsPermissions": [ "arn:aws:iam::999999999999:role/roleA" ], "LimitGrantsToAWSResources": "true", "Description": "KMS key for my-app" } }結果のポリシーについては、「」を参照してくださいAWS KMS と統合されている AWS のサービスのみに GRANT オペレーションの実行を許可する。
暗号化オペレーションで暗号化コンテキストキーの使用を強制します。実行パラメータの例:
{ "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-encryption-keys", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "EnforceEncryptionContextKeys": "true", "Description": "KMS key for my-app" } }結果のポリシーについては、「」を参照してください暗号化オペレーションで暗号化コンテキストキーの使用を強制する。
暗号化オペレーションで暗号化コンテキストキーの特定のリストを適用します。実行パラメータの例:
{ "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-encryption-list", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "AllowedEncryptionContextKeys": [ "Name", "Application" ], "Description": "KMS key for my-app" } }結果のポリシーについては、「」を参照してください暗号化オペレーションで暗号化コンテキストキーの特定のリストを適用する。
作成された CMK へのアクセスを AWS サービスに許可します。実行パラメータの例:
{ "Description" : "KMS key for my-app", "VpcId" : "VPC_ID", "Name" : "my-app-key-allow-aws-service-access", "StackTemplateId" : "stm-enf1j068fhg34vugt", "TimeoutInMinutes" : 60, "Parameters" : { "AllowServiceRolesAccessKMSKeys": [ "ec2.us-east-1.amazonaws.com", "ecr.us-east-1.amazonaws.com" ], "Description": "KMS key for my-app" } }結果のポリシーについては、「」を参照してください作成された CMK へのアクセスを AWS サービスに許可する。
RFC テンプレート JSON ファイルをファイルに出力します。この例では、CreateKmsKeyAutoRfc.json:
aws amscm create-rfc --generate-cli-skeleton > CreateKmsKeyAutoRfc.jsonCreateKmsKeyAutoRfc.json ファイルを変更して保存します。たとえば、コンテンツを次のような内容に置き換えることができます。
{ "ChangeTypeId": "ct-1d84keiri1jhg", "ChangeTypeVersion": "1.0", "Title": "Create KMS Key" }CreateKmsKeyAuto Rfc ファイルと CreateKmsKeyAutoParams ファイルを指定して、RFC を作成します。
aws amscm create-rfc --cli-input-json file://CreateKmsKeyAutoRfc.json --execution-parameters file://CreateKmsKeyAutoParams.jsonレスポンスで新しい RFC の ID を受け取り、それを使用して RFC を送信およびモニタリングできます。送信するまで、RFC は編集状態のままであり、開始されません。
-
この CT は、 で KMS キーを作成する CloudFormation スタックを作成します
DeletionPolicy: Retain。設計上、作成された KMS キーは、スタックを削除した後も保持されます。KMS キーを削除する場合は、変更タイプ ct-2zxya20wmf5bf、管理 | 高度なスタックコンポーネント | KMS キー | 削除 (レビューが必要) を使用して RFC を作成します。 この変更タイプは ExecutionMode=Automated であるため、この変更タイプは AMS オペレーションによる手動レビューを必要とせず、KMS キー: 作成 (レビューが必要) よりも迅速に実行する必要があります。ただし、異常な状況が発生した場合は、手動バージョンの方がうまく機能する可能性があります。「KMS キー | 作成 (レビューが必要)」を参照してください。
この CT には、指定された AWS サービスに KMS キーへのアクセスを提供する新しいパラメータ AllowServiceRolesAccessKMSKeys があります。この変更は、Autoscaling グループサービスロールが、KMS キーに対するアクセス許可がないために、暗号化された EBS ボリュームを持つ EC2 インスタンスを起動できなかったために行われました。
AWS KMS キーの詳細については、AWS Key Management Service (KMS)
」、AWS Key Management Service のよくある質問 FAQs 」、およびAWS Key Management Service の概念」を参照してください。
KMS キー 結果のポリシーを作成する
KMS キーの作成方法に応じて、ポリシーを作成しました。これらのポリシー例は、 で提供されているさまざまな KMS キー作成シナリオと一致しますKMS キーを作成する。
IAM ユーザーまたはロールの CML で復号するアクセス許可を付与します
結果のポリシー例では、IAM ユーザー、ロール、またはインスタンスプロファイルに、CMK を使用して復号するアクセス許可を付与します。
{ "Sid": "Allow decrypt using the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::999999999999:role/roleA", "arn:aws:iam::999999999999:user/userB", "arn:aws:iam::999999999999:role/instanceProfileA" ] }, "Action": [ "kms:DescribeKey", "kms:Decrypt" ], "Resource": "*" }
KMS キーでこのポリシーを作成するための実行パラメータの変更タイプについては、「」を参照してください。 KMS キーを作成する
IAM ユーザーまたはロールの CML で暗号化するアクセス許可を付与します
結果のポリシー例では、IAM ユーザー、ロール、またはインスタンスプロファイルに、CMK を使用して暗号化するアクセス許可を付与します。
{ "Sid": "Allow encrypt using the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::999999999999:role/roleA", "arn:aws:iam::999999999999:user/userB", "arn:aws:iam::999999999999:role/instanceProfileA" ] }, "Action": [ "kms:DescribeKey", "kms:Encrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*" }
KMS キーでこのポリシーを作成するための実行パラメータの変更タイプについては、「」を参照してください。 KMS キーを作成する
IAM ユーザー、ロール、またはアカウントの CMK を使用してグラントを作成するアクセス許可を付与します
結果のポリシーの例:
{ "Sid": "Allow grants", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::999999999999:role/roleA", "arn:aws:iam::888888888888:root" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*" }
KMS キーでこのポリシーを作成するための実行パラメータの変更タイプについては、「」を参照してください。 KMS キーを作成する
AWS KMS と統合されている AWS のサービスのみに GRANT オペレーションの実行を許可する
結果のポリシーの例:
{ "Sid": "Allow grants", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::999999999999:role/roleA" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*" }, { "Sid": "Deny if grant is not for AWS resource", "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "false" } } } } }
KMS キーでこのポリシーを作成するための実行パラメータの変更タイプについては、「」を参照してください。 KMS キーを作成する
暗号化オペレーションで暗号化コンテキストキーの使用を強制する
結果のポリシーの例:
{ "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt" ], "Resource": "*", "Condition": { "Null": { "kms:EncryptionContextKeys": "true" } } }
KMS キーでこのポリシーを作成するための実行パラメータの変更タイプについては、「」を参照してください。 KMS キーを作成する
暗号化オペレーションで暗号化コンテキストキーの特定のリストを適用する
結果のポリシーの例:
{ "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContextKeys": [ "Name", "Application" ] } } }
KMS キーでこのポリシーを作成するための実行パラメータの変更タイプについては、「」を参照してください。 KMS キーを作成する
作成された CMK へのアクセスを AWS サービスに許可する
結果のポリシーの例:
{ "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:ListGrants", "kms:CreateGrant", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "ec2.us-west-2.amazonaws.com", "ecr.us-east-1.amazonaws.com" ], "kms:CallerAccount": "111122223333" } } }
KMS キーでこのポリシーを作成するための実行パラメータの変更タイプについては、「」を参照してください。 KMS キーを作成する
実行入力パラメータ
実行入力パラメータの詳細については、「」を参照してください変更タイプ ct-1d84keiri1jhg のスキーマ。
例: 必須パラメータ
{ "Description" : "Test description", "VpcId" : "vpc-12345678901234567", "Name" : "TestStack", "StackTemplateId" : "stm-enf1j068fhg34vugt", "TimeoutInMinutes" : 60, "Parameters" : { "Description" : "Test key" } }
例: すべてのパラメータ
{ "Description" : "Test description", "VpcId" : "vpc-12345678", "Name" : "TestStack", "Tags" : [ { "Key" : "foo", "Value" : "bar" } ], "StackTemplateId" : "stm-enf1j068fhg34vugt", "TimeoutInMinutes" : 60, "Parameters" : { "Alias" : "testkey", "EnableKeyRotation" : "true", "Description" : "Test key", "PendingWindow" : 30, "IAMPrincipalsRequiringDecryptPermissions" : [ "arn:aws:iam::123456789012:user/myuser", "arn:aws:iam::123456789012:role/myrole" ], "IAMPrincipalsRequiringEncryptPermissions" : [ "arn:aws:iam::123456789012:user/myuser", "arn:aws:iam::123456789012:role/myrole" ], "IAMPrincipalsRequiringGrantsPermissions" : [ "arn:aws:iam::123456789012:user/myuser", "arn:aws:iam::123456789012:role/myrole", "987654321098" ], "LimitGrantsToAWSResources" : "true", "EnforceEncryptionContextKeys" : "true", "AllowedEncryptionContextKeys" : [ "App" ], "AllowServiceRolesAccessKMSKeys": [ "ec2.us-east-1.amazonaws.com" ] } }