AWS Batch에 대해 암호화된 AMI를 생성하려면 어떻게 해야 합니까?

3분 분량
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)] 섹션에서 [스냅샷(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를 사용할 수 있습니다.

참고: Amazon EC2 콘솔에서 AMI를 볼 수 있습니다. 탐색 창의 [이미지(Images)] 섹션에서 [AMI]를 선택합니다.

KMS 키에 서비스 연결 역할 액세스 권한 부여<br>

Amazon Elastic Block Store(Amazon EBS) 암호화에 대한 고객 관리형 KMS 키를 지정하는 경우 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"
                }
            }
        }
    ]
}

참고: 가장 적합한 전략으로 스팟 컴퓨팅 환경을 사용하는 경우 앞의 키 정책에서 AWSServiceRoleForAutoScaling 대신 AWSServiceRoleForEC2SpotFleet를 사용하세요.

새 컴퓨팅 환경 만들기

새 컴퓨팅 환경을 만듭니다.

중요: 컴퓨팅 환경을 만들 때 사용자 지정 AMI ID 사용 확인란을 선택해야 합니다. 그런 다음 나타나는 [AMI ID] 상자에 AMI ID를 입력하고 [AMI 검증(Validate AMI)]을 선택합니다.


AWS 공식
AWS 공식업데이트됨 3년 전