AMI를 Amazon EC2에서 공개적으로 사용할 수 있도록 설정 - Amazon Elastic Compute Cloud

AMI를 Amazon EC2에서 공개적으로 사용할 수 있도록 설정

AMI를 모든 AWS 계정과 공유하여 공개적으로 사용할 수 있도록 할 수 있습니다.

AMI의 퍼블릭 공유를 방지하려는 경우 AMI에 대한 퍼블릭 액세스 차단을 활성화할 수 있습니다. 이렇게 하면 AMI를 공개하려는 모든 시도가 차단되어 AMI 데이터의 무단 액세스 및 잠재적 오용을 방지하는 데 도움이 됩니다. 퍼블릭 액세스 차단을 활성화해도 이미 공개적으로 사용 가능한 AMI에는 영향을 미치지 않으며 공개 사용이 유지됩니다. 자세한 내용은 AMI에 대한 퍼블릭 액세스 치단 이해 단원을 참조하십시오.

특정 계정만 AMI를 사용하여 인스턴스를 시작하도록 허용하려면 특정 AWS 계정과 AMI 공유을(를) 참조하세요.

고려 사항

AMI를 퍼블릭으로 설정하기 전에 다음 사항을 고려하세요.

  • 소유권 - AMI를 공개하려면 사용자의 AWS 계정이 AMI를 소유해야 합니다.

  • 리전 - AMI는 리전 리소스입니다. AMI를 공유하면 공유한 리전에서만 사용할 수 있습니다. AMI를 다른 리전에서 사용할 수 있도록 하려면 AMI를 해당 리전에 복사한 후 공유하세요. 자세한 내용은 Amazon EC2 AMI 복사 단원을 참조하십시오.

  • 퍼블릭 액세스 차단 - AMI를 공개적으로 공유하려면 AMI를 공개적으로 공유할 각 리전에서 AMI에 대한 퍼블릭 액세스 차단을 비활성화해야 합니다. AMI를 공개적으로 공유한 후에는 AMI에 대한 퍼블릭 액세스 차단을 다시 활성화하여 AMI가 더 이상 퍼블릭 공유되지 않도록 할 수 있습니다.

  • 퍼블릭으로 설정할 수 없는 일부 AMI - 다음 구성 요소 중 하나가 AMI에 있으면 퍼블릭으로 설정할 수 없습니다(단, 특정 AWS 계정과 AMI를 공유할 수는 있음).

    • 암호화된 볼륨

    • 암호화된 볼륨의 스냅샷

    • 제품 코드

  • 민감한 데이터 노출 방지(Avoid exposing sensitive data) - AMI를 공유할 때 민감한 데이터의 노출을 방지하려면 공유 Linux AMI 생성을 위한 권장 사항에 설명된 보안 고려 사항을 읽고 권장 작업을 따르세요.

  • 사용 - AMI를 공유하면 사용자는 AMI에서만 인스턴스를 시작할 수 있습니다. 삭제, 공유 또는 수정할 수 없습니다. 그러나 AMI를 사용하여 인스턴스를 시작한 후에는 시작한 인스턴스에서 AMI를 생성할 수 있습니다.

  • 자동 사용 중단 - 기본적으로 모든 퍼블릭 AMI의 사용 중단 날짜가 AMI 생성 날짜로부터 2년으로 설정됩니다. 사용 중단 날짜를 2년보다 짧게 설정할 수 있습니다. 사용 중단 날짜를 취소하거나 중단 날짜를 연장하려면 특정 AWS 계정과 공유만을 통해 AMI를 프라이빗으로 설정해야 합니다.

  • 사용되지 않는 AMI 제거 - 퍼블릭 AMI가 사용 중단일에 도달한 후 6개월 이상 AMI에서 새 인스턴스를 시작하지 않은 경우 AWS에서는 퍼블릭 공유 속성을 제거하여 더 이상 사용되지 않는 AMI가 퍼블릭 AMI 목록에 표시되지 않도록 합니다.

  • 결제 - 다른 AWS 계정이 인스턴스를 시작하기 위해 AMI를 사용하는 경우에는 요금이 청구되지 않습니다. AMI를 사용하여 인스턴스를 시작하는 계정에는 AMI가 시작하는 인스턴스에 대한 요금이 청구됩니다.

AMI를 모든 AWS 계정과 공유(공개 공유)

AMI를 퍼블릭으로 설정한 후에는 콘솔의 커뮤니티 AMI에서 사용할 수 있습니다. 이는 EC2 콘솔의 왼쪽 탐색기에 있는 AMI 카탈로그에서 또는 콘솔을 사용하여 인스턴스를 시작할 때 액세스할 수 있습니다. AMI 공개 후 AMI가 커뮤니티 AMI(Community AMIs)에 표시되는 데 약간의 시간이 걸릴 수 있다는 점에 유의하세요.

Console
퍼블릭 AMI 설정
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 AMI를 선택합니다.

  3. 목록에서 AMI를 선택한 후 작업(Actions), AMI 권한 수정(Edit AMI permissions)을 선택합니다.

  4. AMI 가용성에서 퍼블릭을 선택합니다.

  5. Save changes(변경 사항 저장)를 선택합니다.

AWS CLI

각 AMI에는 소유자를 제외하고 해당 AMI를 사용한 인스턴스 시작이 허용된 AWS 계정을 제어할 수 있는 launchPermission 속성이 존재합니다. AMI의 launchPermission 속성을 변경하여 이 AMI를 퍼블릭 설정(모든 AWS 계정에 시작 권한 허용)하거나 사용자가 지정한 AWS 계정과만 공유할 수 있습니다.

AMI의 시작 권한을 부여할 계정 ID는 목록에 추가하거나 제거할 수 있습니다. AMI를 퍼블릭 설정하려면 all 그룹을 지정합니다. 퍼블릭 권한과 명시적 시작 권한 모두 설정이 가능합니다.

퍼블릭 AMI 설정
  1. 다음과 같이 modify-image-attribute 명령을 사용하여 지정한 AMI의 launchPermission 목록에 all 그룹을 추가합니다.

    aws ec2 modify-image-attribute \ --image-id ami-0abcdef1234567890 \ --launch-permission "Add=[{Group=all}]"
  2. AMI의 시작 권한을 확인하려면 describe-image-attribute 명령을 사용합니다.

    aws ec2 describe-image-attribute \ --image-id ami-0abcdef1234567890 \ --attribute launchPermission
  3. (선택 사항) AMI를 프라이빗 상태로 되돌리려면 시작 권한 목록에서 all 그룹을 삭제합니다. AMI의 소유자는 언제나 시작 권한을 가지며 이 명령에 영향을 받지 않습니다.

    aws ec2 modify-image-attribute \ --image-id ami-0abcdef1234567890 \ --launch-permission "Remove=[{Group=all}]"
PowerShell

각 AMI에는 소유자를 제외하고 해당 AMI를 사용한 인스턴스 시작이 허용된 AWS 계정을 제어할 수 있는 launchPermission 속성이 존재합니다. AMI의 launchPermission 속성을 변경하여 이 AMI를 퍼블릭 설정(모든 AWS 계정에 시작 권한 허용)하거나 사용자가 지정한 AWS 계정과만 공유할 수 있습니다.

AMI의 시작 권한을 부여할 계정 ID는 목록에 추가하거나 제거할 수 있습니다. AMI를 퍼블릭 설정하려면 all 그룹을 지정합니다. 퍼블릭 권한과 명시적 시작 권한 모두 설정이 가능합니다.

퍼블릭 AMI 설정
  1. 다음과 같이 Edit-EC2ImageAttribute 명령을 사용하여 지정한 AMI의 launchPermission 목록에 all 그룹을 추가합니다.

    PS C:\> Edit-EC2ImageAttribute -ImageId ami-0abcdef1234567890 -Attribute launchPermission -OperationType add -UserGroup all
  2. AMI의 시작 권한을 확인하려면 다음 Get-EC2ImageAttribute 명령을 사용합니다.

    PS C:\> Get-EC2ImageAttribute -ImageId ami-0abcdef1234567890 -Attribute launchPermission
  3. (선택 사항) AMI를 프라이빗 상태로 되돌리려면 시작 권한 목록에서 all 그룹을 삭제합니다. AMI의 소유자는 언제나 시작 권한을 가지며 이 명령에 영향을 받지 않습니다.

    PS C:\> Edit-EC2ImageAttribute -ImageId ami-0abcdef1234567890 -Attribute launchPermission -OperationType remove -UserGroup all