공유 대상 확인이 필요한 AMI

AMI 시작 권한의 공유 대상을 확인하고 승인된 계정에만 이미지 사용을 허용하세요.

설명

AMI의 launch_permissions는 이미지를 사용해 인스턴스를 시작할 수 있는 대상을 정합니다. 여러 승인된 계정에 AMI를 배포하는 것은 정상적인 운영 방식이지만, 필요 없는 계정이나 공개 그룹까지 허용하면 이미지의 사용 범위가 의도보다 넓어집니다. group_names: ['all']은 공개 공유 설정입니다.

공유할 이미지에는 비밀번호, 키, 내부 전용 데이터가 남아 있지 않아야 합니다. AMI 시작 권한은 실행 중인 인스턴스에 로그인할 권한과는 다릅니다.

잠재적 영향

  • 이미지에 남은 설정이나 민감한 데이터가 승인되지 않은 사용자에게 전달될 수 있습니다.
  • 의도하지 않은 계정에서 이미지가 사용되면 배포 버전과 사용 대상을 관리하기 어려워질 수 있습니다.

해결 방법

  • 공개 배포가 목적이 아니라면 공개 그룹을 제거하고 승인된 계정만 허용하세요. 계정이 여러 개라는 이유만으로 필요한 공유를 제거할 필요는 없습니다.
  • launch_permissions를 변경할 때는 유지할 모든 대상을 지정하세요. 일부 대상만 넘기면 기존의 다른 시작 권한이 제거될 수 있습니다.
  • 공유 전에 이미지의 비밀정보와 내부 데이터를 제거하고, 공유 대상과 이미지 버전을 주기적으로 점검하세요.

예시

실제 AMI와 승인된 계정 ID로 바꿔 사용하는 설정 발췌입니다.

변경 전

yaml
- name: Update AMI Launch Permissions, making it public
  amazon.aws.ec2_ami:
    image_id: "{{ instance.image_id }}"
    state: present
    launch_permissions:
      group_names: ['all']

공개 그룹에 AMI 시작 권한을 부여합니다. 내부용 이미지에는 적합하지 않습니다.

변경 후

yaml
- name: Allow AMI to be launched by another account
  amazon.aws.ec2_ami:
    image_id: "{{ instance.image_id }}"
    state: present
    launch_permissions:
      user_ids: ['123456789012']

명시한 계정으로 공유 대상을 제한합니다. 여러 계정에 배포해야 한다면 승인된 계정 전체를 목록에 포함하세요.

참조