AMI ウォーターマークを使用して AMI を追跡および識別する
AMI ウォーターマークは、プライベート AMI にアタッチして出所を追跡し、ガバナンスポリシーを適用するための識別子です。ウォーターマークは AMI ライフサイクル全体で保持されます。
-
ウォーターマーク付き AMI から起動された実行中のインスタンスから新しい AMI を作成すると、新しい AMI はウォーターマークを継承します。
-
ウォーターマーク付き AMI をコピーする場合、コピーにはウォーターマークが保持されます。
-
ウォーターマーク付き AMI を S3 に保存して復元する場合、復元された 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 で構成されます。account ID は、REST API 所有者の 12 桁の AWS account 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 にウォーターマークをアタッチするには
-
Amazon EC2 コンソールの https://console.aws.amazon.com/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 コマンドレットを使用します。
Add-EC2ImageWatermark `
-ImageId ami-1111111111EXAMPLE `
-ImageWatermarkName "prod-baseline"
1 つの AMI に最大 5 つのウォーターマークをアタッチできます。
AMI からウォーターマークをデタッチする
コンソール、AWS CLI、または PowerShell を使用して、AMI からウォーターマークをデタッチできます。
- Console
-
AMI からウォーターマークをデタッチするには
-
Amazon EC2 コンソールの https://console.aws.amazon.com/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 コマンドレットを使用します。
(Get-EC2Image -ImageId ami-046863d776a820ccd).ImageWatermarks
ウォーターマークで AMI をフィルタリング
コンソール、AWS CLI、PowerShell を使用して AMI をウォーターマークでフィルタリングできます。
- Console
-
- AWS CLI
-
AMI ウォーターマークでフィルタリングするには
image-watermark-key フィルターで「describe-images」コマンドを使用します。
aws ec2 describe-images \
--filters "Name=image-watermark-key,Values=111122223333:prod-baseline"
これにより、コピー操作によって継承された派生 AMI など、指定されたウォーターマークを持つ にアクセスできるすべての AMI が返されます。
- PowerShell
-
AMI ウォーターマークでフィルタリングするには
-Filter パラメータで Get-EC2Image コマンドレットを使用します。
Get-EC2Image `
-Filter @{Name="image-watermark-key"; Values="111122223333:prod-baseline"}
これにより、コピー操作によって継承された派生 AMI など、指定されたウォーターマークを持つ にアクセスできるすべての AMI が返されます。