AMI 계보를 사용하여 AMI의 기원 추적하기
AMI 계보는 모든 상위 AMI의 ID와 리전을 반환함으로써 AMI의 기원을 추적할 수 있도록 도와줍니다. AMI를 생성하거나 복사할 때, 새 AMI는 소스(상위) AMI의 ID와 리전 정보를 유지합니다. 이를 통해 루트 AMI까지 이어지는 AMI 체인을 추적할 수 있습니다.
주요 이점
AMI 계보를 사용하면 다음을 수행할 수 있습니다.
-
내부 정책 준수를 확인하기 위해 AMI 파생본을 추적
-
상위 AMI에서 보안 문제가 발견된 경우, 잠재적으로 취약한 AMI 식별
-
여러 리전에 걸쳐 AMI 기원에 대한 가시성 유지
AMI 계보 작동 방식
AMI 계보는 지정된 AMI를 생성하는 데 사용된 상위 AMI, 그 상위의 상위 AMI 등 루트 AMI에 도달할 때까지의 모든 상위 AMI를 식별합니다. 작동 방식은 다음과 같습니다.
-
각 AMI에는 소스(상위) AMI의 ID와 리전 정보가 표시됩니다.
-
선택한 AMI부터 시작하여, 계보 항목 목록에 각 부모 AMI가 순차적으로 표시됩니다.
-
계보 항목 목록은 루트 AMI에 도달할 때까지 거슬러 올라갑니다. 루트 AMI는 다음 중 하나에 해당합니다.
-
확인된 공급자의 퍼블릭 AMI(소유자 별칭이 amazon 또는 aws-marketplace로 표시됨)
-
기록된 상위 AMI가 없는 AMI. 예를 들어, 인스턴스에서 AMI를 생성하는 방식과 달리, RegisterImage를 사용하여 스냅샷 집합으로부터 직접 AMI를 생성한 경우에는 추적할 소스 AMI가 없습니다.
-
소스 AMI가 다른 파티션에 속한 AMI.
-
목록의 50번째 AMI. 계보 목록에 포함될 수 있는 최대 AMI 수는 50개입니다.
고려 사항
-
소스 AMI의 ID와 리전 정보는 CreateImage, CopyImage 또는 CreateRestoreImageTask를 사용하여 생성된 AMI에서만 제공됩니다.
-
CreateImage를 사용하여 생성된 AMI(인스턴스에서 AMI 생성)의 경우, 소스 AMI ID는 해당 인스턴스를 실행하는 데 사용된 AMI의 ID입니다.
-
다음의 경우에는 소스 AMI 정보를 사용할 수 없습니다.
-
다음과 같은 경우에도 소스 AMI 정보는 유지됩니다.
-
AMI를 리전 간에 복사한 경우.
-
소스 AMI가 등록 해제(삭제)된 경우.
-
소스 AMI에 대한 접근 권한이 없는 경우.
-
각 AMI 계보 목록은 최대 50개의 AMI로 제한됩니다.
AMI 계보 보기
다음 방법을 사용하여 AMI의 계보를 확인할 수 있습니다.
- Console
-
AMI의 계보를 보려면
-
https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.
-
탐색 창에서 AMI를 선택합니다.
-
AMI를 선택한 다음, AMI 계보 탭을 선택합니다.
-
AMI 계보 항목 테이블에는 계보 목록에 포함된 모든 AMI가 표시됩니다.
-
AMI ID - 계보 목록에 포함된 각 AMI의 식별자입니다. 테이블의 첫 번째 항목은 선택한 AMI이며, 이후 항목은 해당 AMI의 상위 AMI입니다.
-
소스 AMI ID - AMI ID 열에 표시된 AMI가 생성된 소스 AMI의 ID입니다. 대시(-)는 AMI 계보 목록의 끝을 의미합니다.
-
소스 AMI 리전 - 소스 AMI가 위치한 AWS 리전입니다.
-
계보 수준 - 계보 목록 내에서의 위치를 나타내며, 다음과 같은 의미를 가집니다.
-
0(입력 AMI)은 계보를 확인하려는 선택한 AMI를 의미합니다.
-
숫자가 증가할수록 더 오래된 상위 AMI를 의미합니다.
-
n(원본 AMI)은 루트 AMI를 의미하며, 숫자는 계보가 얼마나 과거까지 거슬러 올라가는지를 나타냅니다.
-
생성 날짜 - AMI가 생성된 날짜 및 시간으로, UTC 형식으로 표시됩니다.
-
소유자 별칭 - AMI 소유자의 별칭(예: amazon)입니다. 대시(-)는 AMI에 소유자 별칭이 없음을 의미합니다.
- AWS CLI
-
AMI의 계보를 보려면
get-image-ancestry 명령을 사용하여 AMI ID를 지정합니다.
aws ec2 get-image-ancestry \
--image-id ami-1111111111EXAMPLE \
--region us-east-1
다음은 예제 출력입니다. 출력에는 계보 순서대로 AMI가 나열되며, 첫 번째 항목은 지정한(입력) AMI이고, 이후에는 상위 AMI, 상위의 상위 AMI 순으로 표시되며, 마지막은 루트 AMI입니다.
{
"ImageAncestryEntries": [
{
"CreationDate": "2025-01-17T18:37:50.000Z",
"ImageId": "ami-1111111111EXAMPLE", // Input AMI
"SourceImageId": "ami-2222222222EXAMPLE",
"SourceImageRegion": "us-east-1"
},
{
"CreationDate": "2025-01-17T18:37:50.000Z",
"ImageId": "ami-2222222222EXAMPLE", // Parent AMI
"SourceImageId": "ami-3333333333EXAMPLE",
"SourceImageRegion": "us-east-1"
},
...
{
"CreationDate": "2025-01-17T18:37:50.000Z",
"ImageId": "ami-8888888888EXAMPLE", // Root AMI
"ImageOwnerAlias": "aws-marketplace",
"SourceImageId": "ami-9999999999EXAMPLE",
"SourceImageRegion": "us-east-2"
}
]
}
- PowerShell
-
AMI의 계보를 보려면
Get-EC2ImageAncestry cmdlet을 사용합니다.
Get-EC2ImageAncestry -ImageId ami-1111111111EXAMPLE
다음은 예제 출력입니다. 출력에는 계보 순서대로 AMI가 나열되며, 첫 번째 항목은 지정한(입력) AMI이고, 이후에는 상위 AMI, 상위의 상위 AMI 순으로 표시되며, 마지막은 루트 AMI입니다.
ImageAncestryEntries : {
@{
CreationDate = "2025-01-17T18:37:50.000Z"
ImageId = "ami-1111111111EXAMPLE" # Input AMI
SourceImageId = "ami-2222222222EXAMPLE"
SourceImageRegion = "us-east-1"
},
@{
CreationDate = "2025-01-17T18:37:50.000Z"
ImageId = "ami-2222222222EXAMPLE" # Parent AMI
SourceImageId = "ami-3333333333EXAMPLE"
SourceImageRegion = "us-east-1"
},
...
@{
CreationDate = "2025-01-17T18:37:50.000Z"
ImageId = "ami-8888888888EXAMPLE" # Root AMI
ImageOwnerAlias = "aws-marketplace"
SourceImageId = "ami-9999999999EXAMPLE"
SourceImageRegion = "us-east-2"
}
}
소스 AMI 식별
AMI를 생성하는 데 사용된 직계 상위(소스) AMI만 식별하면 되는 경우, 다음 방법을 사용할 수 있습니다.
- Console
-
선택한 AMI를 생성하는 데 사용된 소스 AMI를 식별하려면
-
https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.
-
탐색 창에서 AMI를 선택합니다.
-
세부 정보를 볼 AMI를 선택합니다.
소스 AMI 정보는 소스 AMI ID 및 소스 AMI 리전 필드에 표시됩니다.
- AWS CLI
-
지정된 AMI를 생성하는 데 사용된 소스 AMI를 식별하려면
describe-images 명령을 사용합니다.
aws ec2 describe-images \
--region us-east-1 \
--image-ids ami-0abcdef1234567890 \
--query "Images[].{ID:SourceImageId,Region:SourceImageRegion}"
다음은 예제 출력입니다.
[
{
"ID": "ami-0abcdef1234567890",
"Region": "us-west-2"
}
}
- PowerShell
-
지정된 AMI를 생성하는 데 사용된 소스 AMI를 식별하려면
Get-EC2Image cmdlet을 사용합니다.
Get-EC2Image -ImageId ami-0abcdef1234567890 | Select SourceImageId, SourceImageRegion
다음은 예제 출력입니다.
SourceImageId SourceImageRegion
------------- -----------------
ami-0abcdef1234567890 us-west-2