我如何为 Batch 创建加密 AMI?

2 分钟阅读
0

我想为 AWS Batch 创建加密的亚马逊机器映像 (AMI)。

简述

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

解决方法

为已针对 Amazon ECS 优化的 AMI 创建快照

完成以下步骤:

  1. 基于 Amazon Elastic Container Service (Amazon ECS) 优化 AMI 启动 Amazon Elastic Compute Cloud (Amazon EC2) 实例
    **注意:**要选择 AMI,请参阅 Amazon ECS 优化 Linux AMI
  2. 从您启动的 EC2 实例的根卷创建快照
  3. 为避免产生费用,删除您创建的 EC2 实例。

加密快照并创建加密快照的 AMI

完成以下步骤:

  1. 打开 Amazon EC2 控制台
  2. 在导航窗格中,在 Elastic Block Store 下,选择快照
  3. 选择您创建的快照,选择操作,然后选择复制
  4. 复制快照窗口中,为加密选择加密此快照
  5. 对于 KMS 密钥,选择您自己的客户自主管理型 AWS KMS 密钥。
    **注意:**这些步骤中用于加密的密钥是对称密钥。
  6. 选择复制快照
  7. 在加密快照进入完成状态后选择加密快照,选择操作,然后选择从快照创建映像

注意:您可以从 Amazon EC2 控制台查看 AMI。在导航窗格的映像部分,选择 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"
        }
      }
    }
  ]
}

**注意:**如果您使用具有最适合策略的竞价型计算环境,在前面的密钥策略中使用 AWSServiceRoleForEC2SpotFleet,而不是 AWSServiceRoleForAutoScaling

创建新计算环境

创建一个新计算环境

重要说明:创建计算环境时,必须选择启用用户指定的 Ami ID 选项。然后,在出现的 AMI ID 框中输入您的 AMI ID,并选择验证 AMI

AWS 官方
AWS 官方已更新 4 个月前