AWS Batch 用に暗号化された AMI を作成するにはどうすればよいですか?

最終更新日: 2021 年 2 月 10 日

AWS Batch 用に暗号化された Amazon マシンイメージ (AMI) を作成したいと考えています。

簡単な説明

AWS Key Management Service (AWS KMS) のカスタムキーを使用して AMI を暗号化し、暗号化された AMI を使用して AWS Batch インスタンスを起動できます。

解決方法

Amazon Elastic Container Service (Amazon ECS) 用に最適化された AMI のスナップショットを作成する

1.    Amazon ECS 最適化 AMI に基づいて Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを起動します。

注: AMI を選択するには、Linux Amazon ECS 最適化 AMI を参照してください。

2.    ステップ 1 で起動した EC2 インスタンスのルートボリュームからスナップショットを作成します。

3.    料金が発生しないようにするには、ステップ 1 で作成した EC2 インスタンスを削除します。

スナップショットを暗号化し、暗号化されたスナップショットの AMI を作成する

1.    Amazon EC2 コンソールを開きます。

2.    ナビゲーションペインの [Elastic Block Store] セクションで、[Snapshots] (スナップショット) を選択します。

3.    前に作成したスナップショットを選択し、[Actions] (アクション)、[Copy] (コピー) の順に選択します。

4.    [Copy Snapshot] (スナップショットのコピー) ウィンドウの [Encryption] (暗号化) で、[Encrypt this snapshot] (このスナップショットの暗号化) のチェックボックスをオンにします。

5.    [Root Key] (ルートキー) には、独自のカスタマーマネージド AWS KMS キーを選択します。

注意: これらのステップの暗号化に使用されるキーは、対称キーです。

6.    [Copy] (コピー) を選択し、[Close] (閉じる) を選択します。

7.    暗号化されたスナップショットが完了状態に移行したら、そのスナップショットを選択し、[Actions] (アクション)、[Create Image] (イメージの作成) の順に選択します。

これで、AWS Batch インスタンスを起動するために使用できる暗号化された AMI ができました。

注: AMI は Amazon EC2 コンソールから表示できます。ナビゲーションペインの [Images] (イメージ) セクションで、[AMIs] (AMI) を選択します。

サービスリンクロールに KMS キーへのアクセス権を付与する<br>

Amazon Elastic Block Store (Amazon EBS) の暗号化にカスタマーマネージド KMS キーを指定する場合は、適切なサービスリンクロールに KMS キーへのアクセス権を付与する必要があります。これは、Amazon EC2 Auto Scaling がユーザーに代わってインスタンスを起動することを可能にします。このアクセス権を付与するには、KMS キーのキーポリシーを変更する必要があります。

ポリシーを更新するときは、KMS キーのキーユーザーとして AWSServiceRoleForAutoScaling を設定するようにしてください。

このポリシーを使用する場合は、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"
                }
            }
        }
    ]
}

注: 最適な戦略でスポットコンピューティング環境を使用している場合は、前のキーポリシーで AWSServiceRoleForAutoScaling ではなく AWSServiceRoleForEC2SpotFleet を使用します。

新しいコンピューティング環境を作成する

新しいコンピューティング環境を作成します

重要: コンピューティング環境を作成するときは、[Enable user-specified Ami ID] (ユーザー指定の AMI ID を有効にします) のチェックボックスをオンにする必要があります。その後、表示される [AMI ID] ボックスに AMI ID を入力し、[Validate AMI] (AMI の検証) を選択します。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?