

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ウォーターマークを使用して AMI 系統を追跡する
<a name="ami-watermarks"></a>

AMI ウォーターマークは、マシンイメージの履歴を追跡するシンプルなテキストラベルです。イメージレシピにウォーターマーク名を追加すると、Image Builder はビルドプロセス中に出力 AMI にアタッチします。

AMI をコピーまたは他のリージョンまたはアカウントに配布すると、ウォーターマークは自動的にコピーされます。AMI のすべてのコピーに同じウォーターマークがあります。これにより、イメージの履歴を追跡できます。

ウォーターマーク付き AMIs公開することはできません。レシピにウォーターマークが含まれている場合、またはソース AMI にウォーターマークがある場合、Image Builder は起動許可をパブリックに設定するディストリビューション設定を拒否します。

AMI ウォーターマークの主な特性:
+ **目的** – コピーとディストリビューション間の AMI 系統を追跡します。
+ **スコープ** – メタデータのみ。ウォーターマークは、インスタンスのパフォーマンスやランタイム動作には影響しません。
+ **可視性の制限** – ウォーターマークされた AMIs公開することはできません。

**Topics**
+ [ウォーターマークの制約](#ami-watermarks-constraints)
+ [前提条件](#ami-watermarks-prereqs)
+ [イメージレシピにウォーターマークを追加する](#ami-watermarks-add)
+ [既存のレシピのウォーターマークを表示する](#ami-watermarks-view)
+ [考慮事項](#ami-watermarks-considerations)

## ウォーターマークの制約
<a name="ami-watermarks-constraints"></a>

Image Builder イメージレシピの AMI ウォーターマークには、次の制約が適用されます。


| 制約 | 値 | 
| --- | --- | 
| レシピあたりのウォーターマーク | 1～5 | 
| 名前の長さ | 3～128 文字 | 
| 使用できる文字 | 文字、数字、スペース、および次の特殊文字: `( ) [ ] . / - ' @ _` | 
| エッジ文字 | 名前はスペースで開始または終了できません | 
| 大文字と小文字の区別 | ウォーターマーク名では大文字と小文字が区別されます | 
| Duplicates | 同じレシピ内の重複した名前は使用できません | 
| 出力 AMI あたりの合計 | ソース AMI ウォーターマークとレシピウォーターマークは 5 を超えることはできません | 

## 前提条件
<a name="ami-watermarks-prereqs"></a>

AMI ウォーターマークを使用する前に、次の要件を確認してください。
+ AMI ウォーターマークは、コンテナレシピではなくイメージレシピでのみサポートされています。
+ Image Builder の実行ロールには、 に対する アクセス`ec2:AttachImageWatermark`許可が含まれている必要があります`arn:aws:ec2:*::image/*`。Image Builder サービスにリンクされたロールを使用する場合、このアクセス許可は自動的に含まれます。

## イメージレシピにウォーターマークを追加する
<a name="ami-watermarks-add"></a>

イメージレシピまたは既存のレシピの新しいバージョンを作成するときに、ウォーターマークを追加できます。手順については、次のいずれかのタブを選択します。

------
#### [ Console ]

**イメージレシピにウォーターマークを追加するには**

1. イメージレシピを作成またはバージョン設定するときは、レシピ設定セクションで **AMI ウォーターマークを展開します**。

1. ウォーターマーク名 (3～128 文字) を入力します。**ウォーターマークの追加** を選択して、さらに名前を追加します (合計 5 つまで）。

1. 残りのレシピ作成ステップを完了し、**レシピの作成**を選択します。

------
#### [ AWS CLI ]

でウォーターマークを追加するには AWS CLI、 **create-image-recipe** コマンドの JSON 入力ファイルに `amiWatermarks`パラメータを含めます。

次の例は、ウォーターマークが設定されたレシピ JSON ファイルを示しています。

```
{
    "name": "{{MyWatermarkedRecipe}}",
    "description": "{{Recipe with AMI watermarks for lineage tracking.}}",
    "parentImage": "{{ami-1234567890abcdef1}}",
    "semanticVersion": "1.0.0",
    "components": [
        {
            "componentArn": "arn:aws:imagebuilder:{{us-west-2}}:{{111122223333}}:component/{{my-component/1.0.0/1}}"
        }
    ],
    "amiWatermarks": [
        "{{ProductionV1}}",
        "{{team-alpha}}"
    ]
}
```

次のコマンドを実行してレシピを作成します。

```
aws imagebuilder create-image-recipe --cli-input-json file://{{create-watermarked-recipe.json}}
```

次のリストでは、 `amiWatermarks`パラメータについて説明します。
+ **amiWatermarks** (文字列の配列、オプション) – このレシピから構築された出力 AMIs にアタッチするウォーターマーク名のリスト。1～5 の名前を指定します。各名前は 3～128 文字で、文字、数字、スペース、および次の特殊文字を含めることができます。 `( ) [ ] . / - ' @ _`

------
#### [ CloudFormation ]

`AmiWatermarks` プロパティを使用して、 `AWS::ImageBuilder::ImageRecipe`リソースで AMI ウォーターマークを指定できます。

次の例は、ウォーターマークが設定された最小限のイメージレシピテンプレートを示しています。

```
Resources:
  WatermarkedRecipe:
    Type: AWS::ImageBuilder::ImageRecipe
    Properties:
      Name: {{MyWatermarkedRecipe}}
      Version: {{1.0.0}}
      ParentImage: arn:aws:imagebuilder:{{us-west-2}}:aws:image/amazon-linux-2023-x86/x.x.x
      Components:
        - ComponentArn: arn:aws:imagebuilder:{{us-west-2}}:{{111122223333}}:component/{{my-component/1.0.0/1}}
      AmiWatermarks:
        - {{ProductionV1}}
        - {{team-alpha}}
```

`AmiWatermarks` プロパティは作成時にのみ設定できます。イメージレシピはイミュータブルであるため、ウォーターマークを変更するには新しいレシピバージョンが必要です。

`AmiWatermarks` プロパティの詳細については、*AWS CloudFormation 「 テンプレートリファレンス*」の[AWS::ImageBuilder::ImageRecipe](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-imagebuilder-imagerecipe.html)」を参照してください。

------

## 既存のレシピのウォーターマークを表示する
<a name="ami-watermarks-view"></a>

レシピ用に設定されたウォーターマークを表示するには、 で **get-image-recipe** コマンドを呼び出します AWS CLI。

```
aws imagebuilder get-image-recipe --image-recipe-arn arn:aws:imagebuilder:{{us-west-2}}:{{111122223333}}:image-recipe/{{my-watermarked-recipe}}/{{1.0.0}}
```

ウォーターマークがそのレシピバージョンに設定されている場合、レスポンスには `amiWatermarks`配列が含まれます。

## 考慮事項
<a name="ami-watermarks-considerations"></a>

AMI ウォーターマークを使用する場合は、次の点に注意してください。
+ ソース AMI からのウォーターマークとレシピで定義されたウォーターマークは、出力 AMI で結合されます。合計が 5 を超えることはできません。合計数が 5 を超えると、ビルドは失敗します。
+ ウォーターマーク付き AMI を他のリージョンまたはアカウントに配布すると、ウォーターマークは自動的に伝播されます。
+ Image Builder は、ウォーターマークされた AMIs がイメージ作成時にパブリックに設定されていないことを確認します。レシピにウォーターマーク (またはソース AMI にウォーターマーク) があり、ディストリビューション設定が起動許可をパブリックに設定すると、Image Builder は`InvalidParameterCombinationException`エラーを返します。