AWS AMI 계정 공유 범위 점검

AMI 공유 대상이 승인된 계정인지 확인하고 불필요한 시작 권한을 제거하세요.

설명

AMI는 실제로 필요한 AWS 계정에만 공유해야 합니다. 승인된 여러 계정과 이미지를 공유하는 것은 정상적인 운영 방식이며, 특정 계정에 대한 공유가 곧 공개 공유를 뜻하지는 않습니다. 다만 공유 대상이 늘어날수록 누가 해당 AMI를 사용할 수 있는지 통제하기 어려워집니다.

AMI는 애플리케이션 코드, 에이전트, 운영 설정이 포함될 수 있는 중요한 배포 자산입니다. 불필요한 계정까지 시작 권한을 가지면 내부 표준이 적용되지 않은 환경으로 이미지가 확산될 수 있습니다.

잠재적 영향

  • 이미지 확산 위험: 업무상 필요하지 않은 계정도 해당 AMI로 인스턴스를 시작할 수 있습니다.
  • 운영 통제 약화: 어떤 계정이 어떤 이미지를 쓰는지 추적하기 어려워집니다.
  • 민감 설정 노출 가능: 이미지 안의 설정이나 에이전트 구성이 넓게 퍼질 수 있습니다.

해결 방법

  • 하나의 AMI는 실제로 필요한 계정에만 최소 범위로 공유하세요.
  • 공통으로 재사용할 이미지와 계정별 전용 이미지를 분리해 관리하세요.
  • aws_ami_launch_permission을 주기적으로 점검해 불필요한 계정의 시작 권한을 제거하세요.

예시

AMI와 계정 ID는 예시입니다. 해당 리전에서 소유한 실제 AMI와 승인된 12자리 계정 ID를 사용하세요.

변경 전

hcl
resource "aws_ami_launch_permission" "example_a" {
  image_id   = "ami-0abcdef1234567890"
  account_id = "123456789012"
}

resource "aws_ami_launch_permission" "example_b" {
  image_id   = "ami-0abcdef1234567890"
  account_id = "111122223333"
}

변경 후

hcl
resource "aws_ami_launch_permission" "example_a" {
  image_id   = "ami-0abcdef1234567890"
  account_id = "123456789012"
}

변경 전에는 두 계정이 같은 AMI의 시작 권한을 가집니다. 변경 후에는 승인된 첫 번째 계정의 권한만 유지합니다. 두 계정 모두 필요하다면 두 권한을 유지할 수 있으며, 기존에 배포하거나 복사한 이미지의 관리도 별도로 확인해야 합니다.

참조