AMI 워터마크를 사용하여 AMI 추적 및 식별
AMI 워터마크는 출처를 추적하고 거버넌스 정책을 시행하기 위해 프라이빗 AMI에 연결하는 식별자입니다. 워터마크는 AMI의 전체 수명 주기 동안 유지됩니다.
-
워터마킹된 AMI에서 시작된 실행 중인 인스턴스에서 새 AMI를 생성하면 새 AMI가 워터마크를 상속합니다.
-
워터마킹된 AMI를 복사하면 복사본에도 해당 워터마크가 적용됩니다.
-
워터마킹된 AMI를 다른 계정과 공유하면 수신자에게 워터마크가 계속 표시됩니다.
주요 이점
-
계정 및 리전 간 출처 추적 - 승인된 기본 이미지에서 파생되는 AMI를 식별합니다.
-
계정 전체에서 관련 AMI를 필터링하고 찾습니다.
-
AMI 소비자가 프로젝트나 조직과 연결된 신뢰할 수 있는 AMI를 검색하고 식별할 수 있도록 지원합니다.
-
워터마크와 허용된 AMI를 결합하여 승인된 워터마크가 포함된 AMI로만 인스턴스 시작을 제한함으로써 거버넌스를 적용합니다.
AMI 워터마크 작동 방식
AMI 워터마크는 AMI에 연결하는 구조화된 식별자입니다. 다음은 워터마크의 주요 특징을 설명합니다.
-
지속성 - AMI에 워터마크를 연결하면 모든 파생 AMI에 워터마크가 적용됩니다.
-
소유자 전용 - AMI 소유자만 AMI에 워터마크를 연결할 수 있습니다.
-
모두에게 표시 - AMI에 액세스할 수 있는 누구나 워터마크를 볼 수 있습니다.
-
5개 제한 - AMI는 최대 5개의 워터마크를 가질 수 있습니다.
-
퍼블릭 AMI에서 사용 불가 - 퍼블릭 AMI에 워터마크를 연결하거나 워터마크가 있는 AMI를 퍼블릭으로 설정할 수 없습니다.
-
필터링 가능 - describe-images를 사용할 때 워터마크를 기준으로 AMI를 필터링할 수 있습니다.
워터마크는 다음 필드를 포함하는 구조화된 객체입니다.
-
WatermarkKey - 워터마크의 고유 식별자이며 account-id:watermark-name으로 구성됩니다. 계정 ID 부분은 AMI 소유자의 12자리 AWS 계정 ID입니다. 워터마크 이름 부분은 고객이 지정하는 이름입니다.
-
SourceImageRegion - 워터마크를 처음 연결한 AMI의 리전입니다.
-
SourceImageId - 워터마크를 처음 연결한 AMI입니다.
-
SourceImageCreationDate - 워터마크를 처음 연결한 AMI의 생성 날짜입니다.
-
WatermarkCreationTime - 워터마크를 적용한 시점의 타임스탬프입니다.
워터마크 이름은 3~128자여야 하며, 영숫자, 괄호(()), 대괄호([]), 공백, 마침표(.), 슬래시(/), 하이픈(-), 작은따옴표('), @ 기호 또는 밑줄(_)을 포함할 수 있습니다.
필수 권한
AMI 워터마크를 사용하려면 다음 IAM 권한이 필요합니다.
-
ec2:AttachImageWatermark - AMI에 워터마크를 연결합니다.
-
ec2:DetachImageWatermark - AMI에서 워터마크를 분리합니다.
-
ec2:DescribeImages - AMI의 워터마크를 봅니다.
AMI에 워터마크 연결
콘솔, AWS CLI 또는 PowerShell을 사용하여 AMI에 워터마크를 연결할 수 있습니다.
- Console
-
AMI에 워터마크를 연결하려면 다음을 수행하세요.
-
https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.
-
탐색 창에서 AMI를 선택합니다.
-
AMI를 선택합니다.
-
세부 정보 탭의 워터마크 섹션에서 워터마크 관리를 선택합니다.
-
워터마크 이름을 입력하고 연결을 선택합니다.
- AWS CLI
-
AMI에 워터마크를 연결하려면 다음을 수행하세요.
attach-image-watermark 명령을 사용합니다.
aws ec2 attach-image-watermark \
--image-id ami-1111111111EXAMPLE \
--image-watermark-name "prod-baseline"
다음은 예제 출력입니다.
{
"WatermarkKey": "123456789012:prod-baseline"
}
- PowerShell
-
AMI에 워터마크를 연결하려면 다음을 수행하세요.
Add-EC2ImageWatermark cmdlet을 사용합니다.
Add-EC2ImageWatermark `
-ImageId ami-1111111111EXAMPLE `
-ImageWatermarkName "prod-baseline"
단일 AMI에 최대 5개의 워터마크를 연결할 수 있습니다.
AMI에서 워터마크 분리
콘솔, AWS CLI 또는 PowerShell을 사용하여 AMI에서 워터마크를 분리할 수 있습니다.
- Console
-
AMI에서 워터마크를 분리하려면 다음을 수행하세요.
-
https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.
-
탐색 창에서 AMI를 선택합니다.
-
AMI를 선택합니다.
-
세부 정보 탭의 워터마크 섹션에서 워터마크 관리를 선택합니다.
-
제거할 워터마크를 선택하고 제거를 선택합니다.
- AWS CLI
-
AMI에서 워터마크를 분리하려면 다음을 수행하세요.
detach-image-watermark 명령을 사용합니다.
aws ec2 detach-image-watermark \
--image-id ami-1111111111EXAMPLE \
--image-watermark-key "111122223333:prod-baseline"
- PowerShell
-
AMI에서 워터마크를 분리하려면 다음을 수행하세요.
Remove-EC2ImageWatermark cmdlet을 사용합니다.
Remove-EC2ImageWatermark `
-ImageId ami-1111111111EXAMPLE `
-ImageWatermarkKey "111122223333:prod-baseline"
AMI에서 워터마크를 분리해도 이미 워터마크가 적용된 파생 AMI에서 워터마크가 제거되지 않습니다. 워터마크가 영구적으로 유지되도록 하려면 워터마크를 관리해야 하는 신뢰할 수 있는 관리자에게만 ec2:DetachImageWatermark 권한을 부여합니다.
AMI 워터마크 보기
콘솔, AWS CLI 또는 PowerShell을 사용하여 AMI에 대한 워터마크를 볼 수 있습니다.
- Console
-
- AWS CLI
-
AMI에 대한 워터마크를 보려면 다음을 수행하세요.
describe-images 명령을 사용합니다.
aws ec2 describe-images \
--image-ids ami-046863d776a820ccd \
--region us-east-1
응답에는 각 AMI에 대한 ImageWatermarks 배열이 포함됩니다.
{
"Images": [
{
"ImageId": "ami-046863d776a820ccd",
"Public": false,
"OwnerId": "123456789012",
...
"ImageWatermarks": [
{
"WatermarkKey": "111122223333:prod-baseline",
"Region": "us-east-1",
"SourceImageId": "ami-0b752bf1df193a6c4",
"SourceImageCreationDate": "2024-07-10T08:15:00",
"CreationDate": "2024-07-12T14:30:00"
},
{
"WatermarkKey": "222222222222:security-approved",
"Region": "eu-north-1",
"SourceImageId": "ami-12345678",
"SourceImageCreationDate": "2024-06-01T10:00:00",
"CreationDate": "2024-06-05T09:45:00"
}
]
}
]
}
- PowerShell
-
AMI에 대한 워터마크를 보려면 다음을 수행하세요.
Get-EC2Image cmdlet을 사용합니다.
(Get-EC2Image -ImageId ami-046863d776a820ccd).ImageWatermarks
워터마크로 AMI 필터링
콘솔, AWS CLI 또는 PowerShell을 사용하여 워터마크로 AMI를 필터링할 수 있습니다.
- Console
-
- AWS CLI
-
워터마크로 AMI를 필터링하려면 다음을 수행하세요.
describe-images 명령을 image-watermark-key 필터와 함께 사용합니다.
aws ec2 describe-images \
--filters "Name=image-watermark-key,Values=111122223333:prod-baseline"
이렇게 하면 사용자가 액세스할 수 있으며 지정된 워터마크가 적용된 AMI가 모두 반환됩니다. 복사 작업을 통해 워터마크를 상속받은 파생 AMI도 여기에 포함됩니다.
- PowerShell
-
워터마크로 AMI를 필터링하려면 다음을 수행하세요.
Get-EC2Image cmdlet을 -Filter 파라미터와 함께 사용합니다.
Get-EC2Image `
-Filter @{Name="image-watermark-key"; Values="111122223333:prod-baseline"}
이렇게 하면 사용자가 액세스할 수 있으며 지정된 워터마크가 적용된 AMI가 모두 반환됩니다. 복사 작업을 통해 워터마크를 상속받은 파생 AMI도 여기에 포함됩니다.