如何为 AWS Batch 创建加密 AMI?

2 分钟阅读
0

我想为 AWS Batch 创建加密的 Amazon 系统映像 (AMI)。

简短描述

您可以使用自定义的 AWS Key Management Service (AWS KMS) 密钥加密您的 AMI,然后使用加密 AMI 来启动 AWS Batch 实例。

解决方法

为针对 Amazon Elastic Container Service (Amazon ECS) 经过优化的 AMI 创建快照

1.    启动一个 Amazon Elastic Compute Cloud(Amazon EC2)实例,该实例应基于 Amazon ECS 优化 AMI

注意:要选择 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(复制快照)窗口中,勾选 Encrypt this snapshot (加密此快照)复选框以进行加密

5.    对于 Root Key(根密钥),选择您自己的客户管理的 AWS KMS 密钥。

**注意:**这些步骤中用于加密的密钥是对称密钥。

6.    选择 Copy(复制),然后选择 Close(关闭)。

7.    在快照进入“已完成”状态后对其进行加密,选择 Actions(操作),然后选择 Create Image(创建映像)。

您现在拥有一个加密 AMI,可以用它来启动您的 AWS Batch 实例。

**注意:**您可以从 Amazon EC2 控制台查看 AMI。从导航窗格的 Images(镜像)部分中,选择 AMI

向与服务关联的角色授予对 KMS 密钥的访问权限<br>

如果为 Amazon Elastic Block Store (Amazon EBS) 加密指定客户管理的 KMS 密钥,您必须向与服务关联的适当角色授予对 KMS 密钥的访问权限。这样做将允许 Amazon EC2 Auto Scaling 代表您启动实例。要提供此访问权限,您必须修改 KMS 密钥的密钥策略

在更新策略时,务必将 AWSServiceRoleForAutoScaling 设置为 KMS 密钥的密钥用户。

如果使用此策略,请用允许访问 KMS 密钥的与服务关联的适当角色的 ARN 替换 Amazon Resource Name (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"
                }
            }
        }
    ]
}

**注意:**如果您使用具有最适合策略的 Spot 计算环境,那么使用 AWSServiceRoleForEC2SpotFleet 而不是前述密钥策略中的 AWSServiceRoleForAutoScaling

创建新的计算环境

创建新的计算环境

**重要提示:**在创建您的计算环境时,您必须勾选 Enable user-specified Ami ID(启用用户指定 Ami ID)复选框。然后在出现的 AMI ID 框中输入您的 AMI ID,并且选择 Validate AMI(验证 AMI)。


AWS 官方
AWS 官方已更新 3 年前