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