AMI를 퍼블릭으로 설정 - Amazon Elastic Compute Cloud

AMI를 퍼블릭으로 설정

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

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

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

고려 사항

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

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

  • 리전 - AMI는 리전 리소스입니다. AMI를 공유하면 공유한 리전에서만 사용할 수 있습니다. AMI를 다른 리전에서 사용할 수 있도록 하려면 AMI를 해당 리전에 복사한 후 공유하세요. 자세한 내용은 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}]"

AMI에 대한 퍼블릭 액세스 차단

AMI의 퍼블릭 공유를 방지하려면 AMI에 대한 퍼블릭 액세스 차단을 활성화할 수 있습니다. 이 설정은 계정 수준에서 활성화되지만 AMI의 퍼블릭 공유를 방지하고자 하는 각 AWS 리전에서 활성화해야 합니다.

퍼블릭 액세스 차단을 활성화하면 AMI를 퍼블릭으로 설정하려는 모든 시도가 자동으로 차단됩니다. 하지만 이미 퍼블릭 AMI가 있는 경우에는 계속 공개적으로 사용할 수 있습니다.

AMI를 공개적으로 공유하려는 경우 퍼블릭 액세스 차단을 비활성화해야 합니다. 공유를 완료한 후에는 퍼블릭 액세스 차단을 다시 활성화하여 의도하지 않은 AMI의 퍼블릭 공유를 방지하는 것이 좋습니다.

관리자 사용자만 AMI에 대한 퍼블릭 액세스 차단을 활성화하거나 비활성화할 수 있도록 IAM 권한을 제한할 수 있습니다.

기본 설정

AMI에 대한 퍼블릭 액세스 차단 설정은 계정이 신규 또는 기존 계정인지와 퍼블릭 AMI가 있는지 여부에 따라 기본적으로 활성화 또는 비활성화됩니다. 다음 표 기본 설정이 나와 있습니다.

AWS 계정 AMI에 대한 퍼블릭 액세스 차단 기본 설정
신규 계정 활성화됨

퍼블릭 AMI가 없는 기존 계정¹

활성화됨

하나 이상의 퍼블릭 AMI가 있는 기존 계정

Disabled(비활성)

¹ 2023년 7월 15일 또는 그 이후에 계정에 하나 이상의 퍼블릭 AMI가 있는 경우, 이후에 모든 AMI를 프라이빗으로 전환했더라도 AMI에 대한 퍼블릭 액세스 차단은 계정에 대해 기본적으로 비활성화됩니다.

필수 IAM 권한

AMI에 대한 퍼블릭 액세스 차단을 사용하려면 다음 IAM 권한이 있어야 합니다.

  • EnableImageBlockPublicAccess

  • DisableImageBlockPublicAccess

  • GetImageBlockPublicAccessState

AMI에 대한 퍼블릭 액세스 치단 활성화

AMI의 퍼블릭 공유를 방지하려면 계정 수준에서 AMI에 대한 퍼블릭 액세스 차단을 활성화합니다. AMI의 퍼블릭 공유를 방지하려는 각 AWS 리전에서 AMI에 대한 퍼블릭 액세스 차단을 활성화해야 합니다. 이미 퍼블릭 AMI가 있는 경우에는 계속 공개적으로 사용할 수 있습니다.

Console
지정된 리전의 AMI에 대한 퍼블릭 액세스 차단 활성화 방법
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 모음(화면 상단)에서 AMI에 대한 공개 액세스 차단을 활성화하려는 리전을 선택합니다.

  3. 대시보드가 표시되지 않는다면 데이터 세트 그룹의 탐색 창에서 EC2 대시보드를 선택합니다.

  4. 계정 속성에서 데이터 보호 및 보안을 선택합니다.

  5. AMI에 대한 퍼블릭 액세스 차단에서 관리를 선택합니다.

  6. 새 퍼블릭 공유 차단 확인란을 선택한 다음 업데이트를 선택합니다.

    참고

    API가 이 설정을 구성하는 데에는 최대 10분이 걸릴 수 있습니다. 이 시간 동안 값은 새 퍼블릭 공유 허용됨으로 표시됩니다. API가 구성을 완료하면 값이 자동으로 새 퍼블릭 공유 차단됨으로 변경됩니다.

AWS CLI
지정된 리전의 AMI에 대한 퍼블릭 액세스 차단 활성화 방법

enable-image-block-public-access 명령을 사용하고 AMI에 대한 퍼블릭 액세스 차단을 활성화할 리전을 지정합니다. --image-block-public-access-state 파라미터에서 block-new-sharing를 지정합니다.

aws ec2 enable-image-block-public-access \ --region us-east-1 \ --image-block-public-access-state block-new-sharing

예상 결과

{ "ImageBlockPublicAccessState": "block-new-sharing" }
참고

API가 이 설정을 구성하는 데에는 최대 10분이 걸릴 수 있습니다. 이 시간 동안 get-image-block-public-access-state 명령을 실행하면 응답이 unblocked(으)로 표시됩니다. API가 구성을 완료하면 응답이 block-new-sharing(으)로 표시됩니다.

AMI에 대한 퍼블릭 액세스 치단 비활성화

계정의 사용자가 AMI를 공개적으로 공유할 수 있도록 허용하려면 계정 수준에서 퍼블릭 액세스 차단을 비활성화하세요. AMI의 퍼블릭 공유를 허용하려는 각 AWS 리전에서 AMI에 대한 퍼블릭 액세스 차단을 비활성화해야 합니다.

Console
지정된 리전의 AMI에 대한 퍼블릭 액세스 차단 비활성화 방법
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 모음(화면 상단)에서 AMI에 대한 퍼블릭 액세스 차단을 비활성화할 리전을 선택합니다.

  3. 대시보드가 표시되지 않는다면 데이터 세트 그룹의 탐색 창에서 EC2 대시보드를 선택합니다.

  4. 계정 속성에서 데이터 보호 및 보안을 선택합니다.

  5. AMI에 대한 퍼블릭 액세스 차단에서 관리를 선택합니다.

  6. 퍼블릭 공유 차단 확인란을 선택을 취소한 다음 업데이트를 선택합니다.

  7. 확인 메시지가 나타나면 confirm을 입력한 다음 퍼블릭 공유 허용을 선택합니다.

    참고

    API가 이 설정을 구성하는 데에는 최대 10분이 걸릴 수 있습니다. 이 시간 동안 값은 새 퍼블릭 공유 차단됨으로 표시됩니다. API가 구성을 완료하면 값이 자동으로 새 퍼블릭 공유 허용됨으로 변경됩니다.

AWS CLI
지정된 리전의 AMI에 대한 퍼블릭 액세스 차단 비활성화 방법

disable-image-block-public-access 명령을 사용하고 AMI에 대한 퍼블릭 액세스 차단을 비활성화할 리전을 지정합니다.

aws ec2 disable-image-block-public-access --region us-east-1

예상 결과

{ "ImageBlockPublicAccessState": "unblocked" }
참고

API가 이 설정을 구성하는 데에는 최대 10분이 걸릴 수 있습니다. 이 시간 동안 get-image-block-public-access-state 명령을 실행하면 응답이 block-new-sharing(으)로 표시됩니다. API가 구성을 완료하면 응답이 unblocked(으)로 표시됩니다.

AMI에 대한 퍼블릭 액세스 차단 상태 보기

AMI의 퍼블릭 공유가 계정에서 차단되었는지 확인하려면 AMI에 대한 퍼블릭 액세스 차단 상태를 확인해 볼 수 있습니다. AMI의 퍼블릭 공유가 차단되었는지 여부를 확인하고자 하는 각 AWS 리전의 상태를 확인해야 합니다.

Console
지정된 리전의 AMI에 대한 퍼블릭 액세스 차단 상태를 보는 방법
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 모음(화면 상단)에서 AMI에 대한 퍼블릭 액세스 차단 상태를 확인하고자 하는 리전을 선택합니다.

  3. 대시보드가 표시되지 않는다면 데이터 세트 그룹의 탐색 창에서 EC2 대시보드를 선택합니다.

  4. 계정 속성에서 데이터 보호 및 보안을 선택합니다.

  5. AMI에 대한 공개 액세스 차단에서 퍼블릭 액세스 필드를 선택합니다. 값은 새 퍼블릭 공유 차단됨 또는 새 퍼블릭 공유 허용됨으로 표시됩니다.

AWS CLI
지정된 리전의 AMI에 대한 퍼블릭 액세스 차단 상태를 가져오는 방법

get-image-block-public-access-state 명령을 사용하고 AMI에 대한 퍼블릭 액세스 차단 상태를 가져올 리전을 지정합니다.

aws ec2 get-image-block-public-access-state --region us-east-1

예상 출력 - 값은 block-new-sharing 또는 unblocked(으)로 표시됩니다.

{ "ImageBlockPublicAccessState": "block-new-sharing" }