如何為 AWS Batch 建立加密的 AMI?

2 分的閱讀內容
0

我想為 AWS Batch 建立加密的 Amazon Machine Image (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 區段中,選擇快照

3.    選取您先前建立的快照,選擇動作,然後選擇複製

4.    在複製快照視窗中,對於加密,勾選加密此快照核取方塊。

5.    對於根金鑰,請選擇您自己的客戶受管 AWS KMS key。

**注意:**在這些步驟中用於加密的金鑰是對稱金鑰。

6.    選擇複製,然後選取關閉

7.    在加密快照移至已完成狀態後選取,並選擇動作,然後選擇建立映像

現在您的加密 AMI 可用以啟動 AWS Batch 執行個體。

注意:您可以從 Amazon EC2 主控台檢視 AMI。從導覽窗格的映像區段中,選擇 AMI

授予服務連結角色存取 KMS 金鑰的權限<br>

如果您為 Amazon Elastic Block Store (Amazon EBS) 加密指定客戶受管 KMS 金鑰,則必須為適當的服務連結角色提供 KMS 金鑰存取權。如此一來 Amazon EC2 Auto Scaling 即可代表您啟動執行個體。若要提供此存取權,您必須修改 KMS 金鑰的金鑰政策

更新政策時,請務必將 AWSServiceRoleForAutoScaling 設為 KMS 金鑰的金鑰使用者。

如果您使用此政策,請將 Amazon Resource Name (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"
                }
            }
        }
    ]
}

**注意:**如果您使用的是具有自動調整策略的 spot 運算環境,請在上述金鑰政策中使用 AWSServiceRoleForEC2SpotFleet,而非 AWSServiceRoleForAutoScaling

建立新的運算環境

建立新的運算環境

重要事項:建立運算環境時,必須勾選啟用使用者指定的 AMI ID 核取方塊。然後,在出現的 AMI ID 方塊中輸入您的 AMI ID,然後選擇驗證 AMI


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