AWS Batch 用に暗号化された Amazon マシンイメージ (AMI) を作成したいと考えています。
概要
カスタム AWS キー管理サービス (AWS KMS) キーを使用して AMI を暗号化し、暗号化された AMI を使用して AWS Batch インスタンスを起動できます。
解決策
Amazon ECS 用に最適化された AMI のスナップショットを作成する
次の手順を実行します。
- Amazon Elastic Container Service (Amazon ECS) に最適化された AMI に基づいて Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを起動します。
**注:**AMI を選択するには、「Amazon ECS に最適化された Linux AMI」を参照してください。
- 起動した EC2 インスタンスのルートボリュームからスナップショットを作成します。
- 課金を避けるには、作成した EC2 インスタンスを削除してください。
スナップショットを暗号化し、暗号化されたスナップショットの AMI を作成する
次の手順を実行します。
- Amazon EC2 コンソールを開きます。
- ナビゲーションペインの [Elastic ブロックストア] で [スナップショット] を選択します。
- 作成したスナップショットを選択し、[アクション] を選択し、[コピー] を選択します。
- [スナップショットのコピー] ウィンドウの [暗号化] で、[このスナップショットを暗号化] を選択します。
- [KMS キー] には、お客様が管理する AWS KMS キーを選択してください。
**注:**これらの手順で暗号化に使用されるキーは対称キーです。
- **[スナップショットをコピー]**を選択します。
- 完了状態になったら暗号化されたスナップショットを選択し、[アクション] を選択し、[スナップショットからイメージを作成] を選択します。
注:AMI は Amazon EC2 コンソールから表示できます。ナビゲーションペインの [イメージ] セクションから、[AMI] を選択します。
サービスにリンクされたロールに KMS キーへのアクセス権を付与する
Amazon Elastic Block Store (Amazon EBS) 暗号化用にカスタマー管理の AWS KMS キーを指定するには、サービスにリンクされたロールにそのキーへのアクセス権を付与します。このアクセスにより、Amazon EC2 Auto Scaling がお客様に代わってインスタンスを起動できるようになります。このアクセスを提供するには、KMS キーのキーポリシーを変更する必要があります。
ポリシーを更新するときは、AWSServiceRoleForAutoScaling を KMS キーのキーユーザーとして設定します。
このポリシーを使用するには、Amazon リソースネーム (ARN) を KMS キーにアクセスできるサービスにリンクされたロールの ARN に置き換えます。
ポリシーの例:
{
"Id": "key-consolepolicy-3",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Enable IAM User Permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:root"
},
"Action": "kms:*",
"Resource": "*"
},
{
"Sid": "Allow use of the key",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333: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::111122223333:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling"
},
"Action": [
"kms:CreateGrant",
"kms:ListGrants",
"kms:RevokeGrant"
],
"Resource": "*",
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": "true"
}
}
}
]
}
注:最適な戦略でスポットコンピューティング環境を使用する場合は、前述のキーポリシーの AWS ServiceRoleForAuto Scaling の代わりに AWSServiceRoleForEC2SpotFleet を使用してください。
新しいコンピューティング環境の作成
新しいコンピューティング環境を作成します。
重要:コンピューティング環境を作成する場合は、[ユーザー指定の AMI ID を有効にする] オプションを選択する必要があります。次に、表示される [AMI ID] ボックスに AMI ID を入力し、[AMI を検証] を選択します。