Image Builder로 크로스 계정 AMI 배포 설정 - EC2 Image Builder

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Image Builder로 크로스 계정 AMI 배포 설정

이 섹션에서는 Image Builder AMI를 지정한 다른 계정에 전달하도록 배포 설정을 구성하는 방법을 설명합니다.

그러면 대상 계정에서 필요에 따라 AMI를 시작하거나 수정할 수 있습니다.

참고

AWS CLI 이 섹션의 명령 예제는 이전에 이미지 레시피와 인프라 구성 JSON 파일을 생성했다고 가정합니다. 이미지 레시피용 JSON 파일을 생성하려면 를 사용하여 이미지 레시피를 생성하십시오. AWS CLI(을)를 참조하십시오. 인프라 구성을 위한 JSON 파일을 생성하려면 인프라 구성 생성(을)를 참조하십시오.

사전 조건 

대상 계정이 Image Builder 이미지에서 인스턴스를 성공적으로 시작할 수 있도록 하려면 모든 리전의 모든 대상 계정에 대해 적절한 권한을 구성해야 합니다.

AWS Key Management Service (AWS KMS) 를 사용하여 AMI를 암호화하는 경우 새 이미지를 암호화하는 데 사용되는 계정을 AWS KMS key 위해 를 구성해야 합니다.

Image Builder가 암호화된 AMI에 대해 계정 간 배포를 수행하는 경우 원본 계정의 이미지가 해독되어 대상 리전으로 푸시되며, 대상 리전에서 지정된 키를 사용하여 이미지를 다시 암호화합니다. Image Builder는 대상 계정을 대신하여 작동하며 대상 리전에서 생성한 IAM 역할을 사용하기 때문에 해당 계정은 원본 및 대상 리전 모두의 키에 액세스할 수 있어야 합니다.

암호화 키

AWS KMS(을)를 사용하여 이미지를 암호화하는 경우 다음 사전 조건이 필요합니다. IAM 사전 조건은 다음 섹션에서 다룹니다.

소스 계정 요구 사항
  • AMI를 구축하고 배포하는 모든 리전의 계정에서 KMS 키를 생성합니다. 기존 키를 사용할 수 있습니다.

  • 대상 계정에서 내 키를 사용할 수 있도록 모든 키의 키 정책을 업데이트하십시오.

대상 계정 요구 사항
  • 암호화된 AMI를 배포하는 데 필요한 작업을 해당 역할이 수행하도록 허용하는 인라인 정책을 EC2ImageBuilderDistributionCrossAccountRole에 추가합니다. IAM 구성 단계는 IAM 정책 사전 조건 섹션을 참조하십시오.

계정 간 액세스를 사용하는 방법에 대한 자세한 내용은 AWS KMS개발자 안내서의 다른 계정의 사용자에게 KMS 키 사용 허용을 참조하십시오.AWS Key Management Service

다음과 같이 이미지 레시피에 암호화 키를 지정합니다.

  • Image Builder 콘솔을 사용하는 경우 레시피의 스토리지(볼륨) 섹션에 있는 암호화(KMS 별칭) 드롭다운 목록에서 암호화 키를 선택합니다.

  • CreateImageRecipeAPI 작업 또는 의 create-image-recipe 명령을 사용하는 경우 JSON 입력의 AWS CLI아래 ebs blockDeviceMappings 섹션에서 키를 구성하십시오.

    다음 JSON 스니펫은 이미지 레시피의 암호화 설정을 보여줍니다. 암호화 키를 제공하는 것 외에도 encrypted 플래그를 true(으)로 설정해야 합니다.

    { ... "blockDeviceMappings": [ { "deviceName": "Example root volume", "ebs": { "deleteOnTermination": true, "encrypted": true, "iops": 100, "kmsKeyId": "image-owner-key-id", ... }, ... }], ... }

IAM 정책

AWS Identity and Access Management (IAM) 에서 계정 간 배포 권한을 구성하려면 다음 단계를 따르십시오.

  1. 여러 계정에 분산된 Image Builder AMI를 사용하려면 대상 계정 소유자가 EC2ImageBuilderDistributionCrossAccountRole(이)라는 계정에 새 IAM 역할을 생성해야 합니다.

  2. 계정 간 배포를 활성화하려면 역할에 Ec2ImageBuilderCrossAccountDistributionAccess 정책(을)를 연결해야 합니다. 관리형 정책에 대한 자세한 내용을 알아보려면 AWS Identity and Access Management 사용 설명서관리형 정책과 인라인 정책을 참조하십시오.

  3. 원본 계정 ID가 대상 계정의 IAM 역할에 연결된 신뢰 정책에 추가되었는지 확인하십시오. 리소스 기반 정책에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서를 참조하십시오.

  4. 배포하는 AMI가 암호화된 경우 대상 계정 소유자가 KMS 키를 사용할 수 있도록 다음 인라인 정책을 그들 계정의 EC2ImageBuilderDistributionCrossAccountRole에 추가해야 합니다. Principal 섹션에는 계정 번호가 포함되어 있습니다. 이를 통해 Image Builder는 각 지역에 적합한 키를 사용하여 AMI를 암호화하고 복호화하는 AWS KMS 데 사용할 때 대신 작업을 수행할 수 있습니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleToPerformKMSOperationsOnBehalfOfTheDestinationAccount", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*" } ] }

    인라인 정책에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서에서 인라인 정책을 참조하십시오.

  5. launchTemplateConfigurations(을)를 사용하여 Amazon EC2 시작 템플릿을 지정하는 경우 각 대상 계정의 내 EC2ImageBuilderDistributionCrossAccountRole에 다음 정책도 추가해야 합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateLaunchTemplateVersion", "ec2:ModifyLaunchTemplate" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/CreatedBy": "EC2 Image Builder" } } }, { "Effect": "Allow", "Action": [ "ec2:DescribeLaunchTemplates" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:launch-template/*", "Condition": { "StringEquals": { "aws:RequestTag/CreatedBy": "EC2 Image Builder" } } } ] }

계정 간 분배에 대한 제한

여러 계정에 Image Builder 이미지를 배포할 때는 몇 가지 제한 사항이 있습니다.

  • 대상 계정은 각 대상 리전의 동시 AMI 사본 50개로 제한됩니다.

  • 반가상화(PV) 가상화 AMI를 다른 리전에 복사하려는 경우 대상 리전이 PV 가상화 AMI를 지원해야 합니다. 자세한 내용은 Linux AMI 가상화 유형을 참조하십시오.

  • 암호화된 스냅샷의 암호화되지 않은 사본은 생성할 수 없습니다. KmsKeyId 파라미터에 AWS Key Management Service (AWS KMS) 고객 관리 키를 지정하지 않는 경우 Image Builder는 Amazon Elastic Block Store(Amazon EBS)의 기본 키를 사용합니다. 자세한 내용은 Amazon Elastic Compute Cloud 사용 설명서Amazon EBS 암호화를 참조하십시오.

자세한 내용은 EC2 Image Builder API 레퍼런스를 참조하십시오 CreateDistributionConfiguration.

콘솔에서 Image Builder AMI에 대한 계정 간 배포를 구성합니다.

이 섹션에서는 AWS Management Console(을)를 사용하여 Image Builder AMI의 계정 간 배포를 위한 배포 설정을 만들고 구성하는 방법을 설명합니다. 계정 간 배포를 구성하려면 특정 IAM 권한이 필요합니다. 계속하려면 먼저 이 섹션의 사전 조건 (을)를 완료해야 합니다.

Image Builder 콘솔에서 배포 설정을 생성하려면 다음 단계를 수행하십시오.

  1. https://console.aws.amazon.com/imagebuilder/에서 EC2 Image Builder 콘솔을 엽니다.

  2. 탐색 창에서 배포 설정을 선택합니다. 여기에는 내 계정에 생성된 배포 설정 목록이 표시됩니다.

  3. 배포 설정 페이지 상단에서 배포 설정 생성을 선택합니다. 그러면 배포 설정 생성 페이지로 이동합니다.

  4. 이미지 유형 섹션에서 Amazon Machine Image(AMI) 출력 유형을 선택합니다. 이것이 기본 설정입니다.

  5. 일반 섹션에서 생성하려는 배포 설정 리소스의 이름을 입력합니다(필수).

  6. 리전 설정 섹션에서 선택한 리전의 대상 계정에 AMI를 배포하려는 12자리 계정 ID를 입력하고 엔터 키를 누릅니다. 그러면 형식이 올바른지 확인한 다음 상자 아래에 입력한 계정 ID가 표시됩니다. 이 과정을 반복하여 계정을 더 추가합니다.

    입력한 계정을 제거하려면 계정 ID 오른쪽에 표시된 X를 선택합니다.

    각 리전의 출력 AMI 이름을 입력합니다.

  7. 필요한 추가 설정을 계속 지정하고 설정 생성을 선택하여 새 배포 설정 리소스를 생성합니다.

에서 Image Builder AMI에 대한 계정 간 배포를 구성합니다. AWS CLI

이 섹션에서는 배포 설정 파일을 구성하고 의 create-image 명령을 사용하여 Image Builder AMI를 빌드하고 여러 계정에 AWS CLI 배포하는 방법을 설명합니다.

계정 간 배포를 구성하려면 특정 IAM 권한이 필요합니다. create-image 명령을 실행하려면 먼저 이 섹션의 사전 조건 (을)를 완료해야 합니다.

  1. 배포 설정 파일 구성

    create-image 명령을 사용하여 다른 계정에 배포되는 Image Builder AMI를 생성하기 전에 AmiDistributionConfiguration 설정에서 대상 계정 ID를 지정하는 DistributionConfiguration JSON 구조를 생성해야 합니다. AWS CLI 원본 리전에 AmiDistributionConfiguration(을)를 하나 이상 지정해야 합니다.

    create-distribution-configuration.json(으)로 이름 붙인 다음 예제 파일은 해당 원본 리전의 계정 간 이미지 배포에 대한 구성을 보여줍니다.

    { "name": "cross-account-distribution-example", "description": "Cross Account Distribution Configuration Example", "distributions": [ { "amiDistributionConfiguration": { "targetAccountIds": ["123456789012", "987654321098"], "name": "Name {{ imagebuilder:buildDate }}", "description": "ImageCopy Ami Copy Configuration" }, "region": "us-west-2" } ] }
  2. 배포 설정 생성

    에서 create-distribution-configuration명령을 사용하여 Image Builder 배포 설정 리소스를 만들려면 명령에 다음 매개 변수를 제공하십시오. AWS CLI

    • --name 파라미터에 배포 이름을 입력합니다.

    • --cli-input-json 파라미터에서 생성한 배포 구성 JSON 파일을 첨부합니다.

    aws imagebuilder create-distribution-configuration --name my distribution name --cli-input-json file://create-distribution-configuration.json
    참고
    • JSON 파일 경로의 시작 부분에 file:// 표기법을 포함시켜야 합니다.

    • JSON 파일의 경로는 명령을 실행하는 기본 운영 체제에 대한 적절한 규칙을 따라야 합니다. 예를 들어 Windows에서는 디렉터리 경로를 참조하기 위해 백슬래시(\)를 사용하고 Linux에서는 슬래시(/)를 사용합니다.

--distributions 파라미터를 사용하여 명령에 직접 JSON을 제공할 수도 있습니다.