

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

# コンポーネントを使用した Image Builder イメージのカスタマイズ
<a name="manage-components"></a>

Image Builder は、 AWS Task Orchestrator and Executor (AWSTOE) コンポーネント管理アプリケーションを使用して複雑なワークフローを調整します。 AWSTOE アプリケーションと連携するビルドおよびテストコンポーネントは、イメージをカスタマイズまたはテストするためのスクリプトを定義する YAML ドキュメントに基づいています。AMI イメージの場合、Image Builder は Amazon EC2 ビルドインスタンスとテストインスタンスにコンポーネントと AWSTOE コンポーネント管理アプリケーションをインストールします。コンテナイメージの場合、コンポーネントと AWSTOE コンポーネント管理アプリケーションは実行中のコンテナ内にインストールされます。

Image Builder は AWSTOE 、 を使用してすべてのインスタンス上のアクティビティを実行します。Image Builder コマンドを実行したり、Image Builder コンソールを使用したり AWSTOE するときに、 を操作するための追加のセットアップは必要ありません。

**注記**  
Amazon が管理するコンポーネントのサポート期間が終了すると、そのコンポーネントはメンテナンスされなくなります。この問題が発生する約 4 週間前に、コンポーネントを使用しているすべてのアカウントに通知が届き、そのアカウント内の影響を受けるレシピのリストが各 AWS Health Dashboardから届きます。詳細については AWS Health、[AWS Health 「 ユーザーガイド](https://docs.aws.amazon.com/health/latest/ug/)」を参照してください。

**新しいイメージを構築するためのワークフローステージ**  
新しいイメージを構築するための Image Builder ワークフローには、次の 2 つの段階があります。

1. **ビルドステージ** (スナップショット前) — ビルドステージでは、ベースイメージを実行している Amazon EC2 ビルドインスタンスに変更を加え、新しいイメージのベースラインを作成します。例えば、レシピには、アプリケーションをインストールしたり、オペレーティングシステムのファイアウォール設定を変更したりするコンポーネントを含めることができます。

   ビルドステージでは、コンポーネントドキュメントから以下のフェーズが実行されます。
   + ビルド
   + validate

   この段階が正常に完了すると、Image Builder はテスト段階以降に使用するスナップショットまたはコンテナイメージを作成します。

1. **テストステージ** (スナップショット後) — テストステージでは、AMI を作成するイメージとコンテナイメージにいくつかの違いがあります。AMI ワークフローでは、Image Builder はビルドステージの最終ステップとして作成したスナップショットから EC2 インスタンスを起動します。新しいインスタンスでテストを実行して設定を検証し、インスタンスが期待どおりに機能していることを確認します。コンテナワークフローでは、テストはビルドに使用したのと同じインスタンスで実行されます。

   イメージビルドのテストステージでは、レシピに含まれている各コンポーネントに対して、コンポーネントドキュメントから次のフェーズが実行されます。
   + test

   このコンポーネントフェーズは、ビルドコンポーネントタイプとテストコンポーネントタイプの両方に適用されます。この段階が正常に完了すると、Image Builder はスナップショットまたはコンテナイメージから最終イメージを作成して配布できます。

**注記**  
 AWSTOE アプリケーションフレームワークでは、コンポーネントドキュメントで多くのフェーズを定義できますが、Image Builder には、実行するフェーズと、実行するステージに関する厳格なルールがあります。イメージのビルドステージでコンポーネントを実行するには、コンポーネントドキュメントで、`build` と `validate` の少なくとも 1 つのフェーズを定義する必要があります。イメージのテストステージでコンポーネントを実行するには、コンポーネントドキュメントで `test` フェーズを定義し、他のフェーズは定義しないようにする必要があります。  
Image Builder はステージを独立して実行するため、コンポーネントドキュメント内の参照を連鎖させることはステージの境界を越えることはできません。ビルドステージで実行されるフェーズの値をテストステージで実行されるフェーズにチェーンすることはできません。ただし、目的のターゲットに入力パラメータを定義し、コマンドラインから値を渡すことはできます。Image Builder レシピのコンポーネントパラメータ設定の詳細については、「[チュートリアル: 入力パラメータを持つカスタムコンポーネントを作成する](tutorial-component-parameters.md)」を参照してください。

ビルドインスタンスまたはテストインスタンスのトラブルシューティングを支援するために、コンポーネントが実行されるたびに何が起こっているかを追跡するための入力ドキュメントとログファイルを含むログフォルダ AWSTOE を作成します。パイプライン設定で Amazon S3 バケットを設定した場合、ログもそこに書き込まれます。YAML ドキュメントとログ出力の詳細については、「[カスタム AWSTOE コンポーネントのコンポーネントドキュメントフレームワークを使用する](toe-use-documents.md)」を参照してください。

**ヒント**  
追跡用のコンポーネントが多い場合に、タグ付けを使用すると、割り当てたタグに基づいて特定のコンポーネントまたはバージョンを識別できます。の Image Builder コマンドを使用したリソースのタグ付けの詳細については AWS CLI、このガイドの[リソースにタグを付ける](tag-resources.md)「」セクションを参照してください。

このセクションでは、Image Builder コンソールまたは AWS CLI内のコマンドを使用して、コンポーネントを一覧表示、表示、作成、インポートする方法について説明します。

**Topics**
+ [コンポーネントの詳細を一覧表示して表示する](component-details.md)
+ [AWS Marketplace コンポーネントを使用してイメージをカスタマイズする](use-marketplace-components.md)
+ [マネージドコンポーネントを使用した Image Builder イメージのカスタマイズ](use-managed-components.md)
+ [Image Builder イメージ用のカスタムコンポーネントの開発](create-custom-components.md)
+ [Image Builder が AWS Task Orchestrator and Executor アプリケーションを使用してコンポーネントを管理する方法](toe-component-manager.md)

# コンポーネントの詳細を一覧表示して表示する
<a name="component-details"></a>

このセクションでは、EC2 Image Builder レシピで使用するコンポーネントに関する情報を検索し、詳細を表示する方法について説明します。

**Topics**
+ [Image Builder コンポーネントの一覧表示](#list-components)
+ [からコンポーネントビルドバージョンを一覧表示する AWS CLI](#cli-list-component-versions)
+ [からコンポーネントの詳細を取得する AWS CLI](#cli-get-component)
+ [からコンポーネントポリシーの詳細を取得する AWS CLI](#cli-get-component-policy)

## Image Builder コンポーネントの一覧表示
<a name="list-components"></a>

次のいずれかの方法を使用して、Image Builder コンポーネントの一覧を表示してフィルタリングできます。

------
#### [ AWS マネジメントコンソール ]

でコンポーネントのリストを表示するには AWS マネジメントコンソール、次の手順に従います。

1. [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/) で、EC2 Image Builder コンソールを開きます。

1. ナビゲーションペインから **コンポーネント** を選択します。デフォルトでは、Image Builder にはアカウントが所有するコンポーネントのリストが表示されます。

1. オプションでコンポーネントの所有権でフィルタリングできます。自分が所有していないがアクセスできるコンポーネントを表示するには、所有者タイプドロップダウンリストを展開し、いずれかの値を選択します。所有者タイプリストは、検索バーの検索テキストボックスの横にあります。次の値から選択できます。
   + **AWS Marketplace** – AWS Marketplace 製品サブスクリプションに直接関連付けられているコンポーネント。
   + **クイックスタート（Amazon マネージド）** - Amazon が作成管理する一般公開されているコンポーネント。
   + **Owned by me** - あなたが作成したコンポーネント。デフォルトではこれが選択されています。
   + **Shared with me** - 他人が作成し、自分のアカウントからあなたと共有したコンポーネント。
   + **サードパーティー管理** – ユーザーがサブスクライブしたサードパーティーが所有するコンポーネント AWS Marketplace。

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

以下の例は、**[list-components](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/list-components.html)** コマンドを使用して、アカウントが所有する Image Builder コンポーネントの一覧を返す方法を示しています。

```
aws imagebuilder list-components
```

オプションでコンポーネントの所有権でフィルタリングできます。owner 属性は、一覧表示するコンポーネントの所有者を定義します。デフォルトでは、このリクエストはアカウントが所有するコンポーネントのリストを返します。`--owner` コンポーネント所有者別に結果をフィルタリングするには、**list-components** コマンドを実行するときにパラメータで次の値のいずれかを指定します。

**コンポーネントオーナーの値**
+ `AWSMarketplace`
+ `Amazon`
+ `Self`
+ `Shared`
+ `ThirdParty`

以下の例では、**list-components**コマンドに`--owner`パラメータを付けて結果をフィルタリングしている。

```
aws imagebuilder list-components --owner Self
{
    "requestId": "012a3456-b789-01cd-e234-fa5678b9012b",
    "componentVersionList": [
        {
            "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/sample-component01/1.0.0",
            "name": "sample-component01",
            "version": "1.0.0",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2020-09-24T16:58:24.444Z"
        },
        {
            "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/sample-component01/1.0.1",
            "name": "sample-component01",
            "version": "1.0.1",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2021-07-10T03:38:46.091Z"
        }
    ]
}
```

```
aws imagebuilder list-components --owner Amazon
```

```
aws imagebuilder list-components --owner Shared
```

```
aws imagebuilder list-components --owner ThirdParty
```

------

## からコンポーネントビルドバージョンを一覧表示する AWS CLI
<a name="cli-list-component-versions"></a>

次の例は、**[list-component-build-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/list-component-build-versions.html)**コマンドを使用して特定のセマンティックバージョンを持つコンポーネントビルドバージョンを一覧表示する方法を示しています。Image Builder リソースのセマンティックバージョニングの詳細については、[Image Builder でのセマンティックバージョニング](ibhow-semantic-versioning.md)を参照してください。

```
aws imagebuilder list-component-build-versions --component-version-arn arn:aws:imagebuilder:us-west-2:123456789012:component/example-component/1.0.1
{
    "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    "componentSummaryList": [
        {
            "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/examplecomponent/1.0.1/1",
            "name": "examplecomponent",
            "version": "1.0.1",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "description": "An example component that builds, validates and tests an image",
            "changeDescription": "Updated version.",
            "dateCreated": "2020-02-19T18:53:45.940Z",
            "tags": {
                "KeyName": "KeyValue"
            }
        }
    ]
}
```

## からコンポーネントの詳細を取得する AWS CLI
<a name="cli-get-component"></a>

次の例は、コンポーネントの Amazon リソースネーム (ARN) を指定するときに、「**[get-component](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/get-component.html)**」コマンドを使用してコンポーネントの詳細を取得する方法を示しています。

```
aws imagebuilder get-component --component-build-version-arn arn:aws:imagebuilder:us-west-2:123456789012:component/example-component/1.0.1/1
			{
    "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11112",
    "component": {
        "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/examplecomponent/1.0.1/1",
        "name": "examplecomponent",
        "version": "1.0.1",
        "type": "BUILD",
        "platform": "Linux",
        "owner": "123456789012",
        "data": "name: HelloWorldTestingDocument\ndescription: This is hello world testing document... etc.\"\n",
        "encrypted": true,
        "dateCreated": "2020-09-24T16:58:24.444Z",
        "tags": {}
    }
}
```

## からコンポーネントポリシーの詳細を取得する AWS CLI
<a name="cli-get-component-policy"></a>

次の例は、コンポーネントの Amazon リソースネーム (ARN) を指定するときに、**[get-component-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/get-component-policy.html)**コマンドを使用してコンポーネントの詳細を取得する方法を示しています。

```
aws imagebuilder get-component-policy --component-arn arn:aws:imagebuilder:us-west-2:123456789012:component/example-component/1.0.1
```

# AWS Marketplace コンポーネントを使用してイメージをカスタマイズする
<a name="use-marketplace-components"></a>

は、独立系ソフトウェアベンダー (ISVs) によって作成された多数のイメージに加えて、独自の Image Builder イメージをカスタマイズするために使用できるコンポーネント AWS Marketplace を提供します。これらの AWS Marketplace コンポーネントをイメージレシピで使用して新しいイメージを構築するには、事前にサブスクライブする必要があります。

イメージレシピで AWS Marketplace コンポーネントを指定すると、Image Builder はサブスクリプションを検証し、依存関係チェックを実行して、それを使用するために必要なリソースがあることを確認します。検証が成功すると、Image Builder は、イメージパイプラインビルドで使用するコンポーネントとそのアーティファクトの安全なダウンロードを作成します。

## AWS Marketplace コンポーネントの検出
<a name="use-marketplace-components-discover"></a>

レシピで使用する AWS Marketplace ソフトウェアコンポーネントは、Image Builder コンソールの**「製品の検出**」ページから次のように検出できます。

1. [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/) で、EC2 Image Builder コンソールを開きます。

1. ナビゲーションペインで、 **AWS Marketplace**セクションの製品**の検出**を選択します。

1. **[Components]** (コンポーネント) タブを選択します。このタブには、 AWS Marketplace 関連するコンポーネントを含む配信オプションを使用するすべての製品が一覧表示されます AWS Marketplace。

1. コンポーネントを含む特定のソフトウェア製品を検索するには、検索バーに名前の一部を入力するか、`Status`、、`Operating System``Publisher`、または でフィルタリングします`Categories`。検索バーには、結果のページ分割コントロールも含まれています。

### 結果
<a name="w2aac13c26b7b7"></a>

各 AWS Marketplace 製品には、以下の情報を含む独自の詳細パネルがあります。

** AWS Marketplace 製品名とロゴ**  
ソフトウェア製品名は、 の製品詳細にリンクされています AWS Marketplace。リンクを選択すると、 の製品の詳細を確認できます AWS Marketplace。または、すでに調査を行っている場合は、サブスクリプションオプションの概要を表示し、**「サブスクリプションオプションの表示**」ボタンを使用して検索結果から直接サブスクライブすることもできます。

**バージョン**  
これには、コンポーネントのプライマリバージョンが含まれます。

**オペレーティングシステム**  
コンポーネントを実行するように設計されたオペレーティングシステム。

**パブリッシャー**  
コンポーネントのパブリッシャー。これは、 のパブリッシャーの詳細ページにリンクされています AWS Marketplace。パブリッシャーの詳細ページがブラウザの新しいタブで開きます。

**カテゴリ**  
コンポーネントに適用される 1 つ以上の AWS Marketplace 製品カテゴリ。

**ステータス**  
この製品をサブスクライブしているかどうかを示します。サブスクライブしていない場合は、**サブスクリプションオプションを表示**を選択して AWS Marketplace 製品のサブスクリプションオプションの概要を確認し、オプションで Image Builder コンソールから直接サブスクライブできます。

**関連付けられたコンポーネント**  
 AWS Marketplace 製品にサブスクリプションに含まれているバージョンが 1 つ以上ある場合は、**関連コンポーネント**セクションに表示されます。セクションは最初に折りたたまれ、関連するコンポーネントの数が表示されます。セクションを展開すると、詳細を確認できます。

**注記**  
 AWS Marketplace イメージ製品に関連付けられている Center for Internet Security (CIS) コンポーネントは、**Discover 製品の**結果に表示されません。イメージ製品をサブスクライブすると、関連するコンポーネントが**サブスクリプション**ページに表示され、**イメージレシピの作成**ダイアログにサードパーティーコンポーネントとして表示されます。コンポーネントの詳細については、「」を参照してください[CIS Fardening のコンポーネント](toe-cis.md)。

## AWS Marketplace コンポーネントをサブスクライブする
<a name="use-marketplace-components-subscribe"></a>

レシピで使用するコンポーネントを含む AWS Marketplace 製品を見つけたら、次のように Image Builder コンソールから直接サブスクライブするか、 AWS Marketplace コンソールからサブスクライブできます。

1. [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/) で、EC2 Image Builder コンソールを開きます。

1. ナビゲーションペインで、 **AWS Marketplace**セクションの製品**の検出**を選択します。

1. **[Components]** (コンポーネント) タブを選択します。このタブには、 AWS Marketplace 関連するコンポーネントを含む配信オプションを使用するすべての製品が一覧表示されます AWS Marketplace。

1. 特定の AWS Marketplace 製品を検索するには、検索バーに名前の一部を入力します。パブリッシャーがわかっていても、正確な製品名やスペルがわからない場合は、 でフィルタリング`Publisher`して、パブリッシャーが利用可能な製品のリストを取得することもできます。

1. 結果リストからサブスクライブする製品を選択し、**サブスクリプションオプションの表示**を選択します。これは、 AWS Marketplace 製品のサブスクリプションオプションの概要を示しています。

1. Image Builder コンソールを離れずに製品をサブスクライブするには、**サブスクライブ**を選択します。サブスクリプションが処理されていることが通知されます。サブスクライブすると、**ステータス**は に更新されます`Subscribed`。

現在サブスクライブしている AWS Marketplace 製品の詳細については、「」で説明されているコンソールの手順を参照してください[AWS Marketplace Image Builder のサブスクリプション](integ-marketplace.md#integ-marketplace-subs)。

## Image Builder イメージレシピで AWS Marketplace コンポーネントを使用する
<a name="use-marketplace-components-recipe"></a>

Image Builder イメージレシピの AWS Marketplace コンポーネントは、他のタイプのコンポーネントを使用するのと同じ方法で使用できます。 AWS Marketplace イメージ製品に関連付けられているほとんどのコンポーネントでは、所有権カテゴリは です`AWS Marketplace`。たとえば、サブスクライブした AWS Marketplace 製品のビルドコンポーネントを使用するには、**ビルドコンポーネントを追加**を選択し、`AWS Marketplace`リストから を選択します。これにより、コンポーネントを一覧表示 AWS Marketplace する選択パネルがコンソールインターフェイスの右側に表示されます。

**注記**  
CIS 強化コンポーネントをお探しの場合は、 ではなく`Third party managed`所有権リストから を選択します`AWS Marketplace`。

コンポーネントのパラメータを選択、配置、設定する方法の詳細については、「」を参照してください[イメージレシピの新しいバージョンを作成する](create-image-recipes.md)。

# マネージドコンポーネントを使用した Image Builder イメージのカスタマイズ
<a name="use-managed-components"></a>

マネージドコンポーネントは AWS、例えば Center for Internet Security (CIS) などのサードパーティー組織と提携して作成されます。イメージまたはコンテナレシピでマネージドコンポーネントを使用する場合、Amazon はパッチやその他の更新が適用された最新のコンポーネントバージョンを提供します。コンポーネントのリストを取得したり、コンポーネント情報を取得したりするには、「」を参照してください[コンポーネントの詳細を一覧表示して表示する](component-details.md)。

次の注目の AWS マネージドコンポーネントのリストには、 を通じて CIS 強化 AMIs をサブスクライブするときに使用できるコンポーネントが含まれています AWS Marketplace。

**Topics**
+ [Distributor パッケージ管理コンポーネントによる Image Builder Windows イメージのアプリケーションのインストール](mgdcomponent-distributor-win.md)
+ [CIS Fardening のコンポーネント](toe-cis.md)
+ [Image Builder 用の Amazon managed STIG 強化コンポーネント](ib-stig.md)

# Distributor パッケージ管理コンポーネントによる Image Builder Windows イメージのアプリケーションのインストール
<a name="mgdcomponent-distributor-win"></a>

AWS Systems Manager Distributor は、ソフトウェアをパッケージ化して AWS Systems Manager マネージドノードに公開するのに役立ちます。独自のソフトウェアをパッケージ化して公開したり、Distributor を使用して AWSから提供されるエージェントソフトウェアパッケージを検索して公開することができます。Systems Manager Distributor の詳細については、AWS Systems Manager User Guide の[AWS Systems Manager Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html) を参照してください。

**Distributor の管理コンポーネント**  
次の Image Builder マネージドコンポーネントは AWS Systems Manager 、Distributor を使用して Windows インスタンスにアプリケーションパッケージをインストールします。
+ `distributor-package-windows` 管理コンポーネントは AWS Systems Manager Distributor を使用して、Windows イメージのビルドインスタンスで指定したアプリケーションパッケージをインストールします。このコンポーネントをレシピに含めるときにパラメータを設定するには、「[スタンドアロンコンポーネントとして `distributor-package-windows` を設定する](#mgdcomponent-distributor-config-standalone)」を参照してください。
+ `aws-vss-components-windows` コンポーネントは AWS Systems Manager Distributor を使用して Windows イメージビルドインスタンスに`AwsVssComponents`パッケージをインストールします。このコンポーネントをレシピに含めるときにパラメータを設定するには、「[スタンドアロンコンポーネントとして `aws-vss-components-windows` を設定する](#mgdcomponent-vss-config-standalone)」を参照してください。

Image Builder レシピで管理コンポーネントを使用する方法の詳細については、[イメージレシピの新しいバージョンを作成する](create-image-recipes.md) (イメージレシピ用) または [新しいコンテナレシピのバージョンを作成](create-container-recipes.md) (コンテナレシピ用) を参照してください。`AwsVssComponents` パッケージの詳細については、「*Amazon EC2 ユーザーガイド*」の「[アプリケーション整合性のある VSS スナップショットの作成](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/application-consistent-snapshots.html)」を参照してください。

## 前提条件
<a name="mgdcomponent-distributor-prereq"></a>

Systems Manager Distributor に依存する Image Builder コンポーネントを使用してアプリケーションパッケージをインストールする前に、次の前提条件が満たされていることを確認する必要があります。
+ Systems Manager Distributor を使用してインスタンスにアプリケーションパッケージをインストールする Image Builder コンポーネントには、Systems Manager API を呼び出す権限が必要です。Image Builder レシピのコンポーネントを使用する前に、許可を付与する IAM ポリシーとロールを作成する必要があります。許可を設定するには、[Systems Manager Distributor の権限設定](#mgdcomponent-distributor-permissions) を参照してください。

**注記**  
Image Builder は現在、インスタンスを再起動する Systems Manager Distributor パッケージをサポートしていません。例えば、`AWSNVMe`、`AWSPVDrivers`、および `AwsEnaNetworkDriver` Distributor パッケージはインスタンスを再起動するため、許可されません。

## Systems Manager Distributor の権限設定
<a name="mgdcomponent-distributor-permissions"></a>

`distributor-package-windows` コンポーネントとそれを使用する他のコンポーネント (`aws-vss-components-windows` など) を実行するには、ビルドインスタンスに対する追加の権限が必要です。ビルドインスタンスは Systems Manager API を呼び出して Distributor のインストールを開始し、結果をポーリングできる必要があります。

の手順に従って、Image Builder コンポーネント AWS マネジメントコンソール がビルドインスタンスから Systems Manager Distributor パッケージをインストールするアクセス許可を付与するカスタム IAM ポリシーとロールを作成します。

**ステップ 1: ポリシーの作成**  
Distributor 権限用の IAM ポリシーを作成します。

1. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソール を開きます。

1. ナビゲーションペインで **ポリシー**を選択してから **ポリシーの作成**を選択します。

1. 「**ポリシーの作成**」ページの [**JSON**] タブを選択し、デフォルトの内容を次の JSON ポリシーに置き換えます。必要に応じてパーティション、リージョン、アカウント ID に置き換えるか、ワイルドカードを使用します。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowDistributorSendCommand",
               "Effect": "Allow",
               "Action": "ssm:SendCommand",
               "Resource": [
                   "arn:aws:ssm:*::document/AWS-ConfigureAWSPackage",
                   "arn:aws:ec2:*:111122223333:instance/*"
               ]
           },
           {
               "Sid": "AllowGetCommandInvocation",
               "Effect": "Allow",
               "Action": "ssm:GetCommandInvocation",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. **[Review policy]** (ポリシーの確認) を選択します。

1. [**名前**] に、ポリシーの識別名 (`InvokeDistributor` など) を入力するか、希望する別の名前を入力します。

1. (オプション) [**説明**] に、ロールの目的の説明を入力します。

1. [**Create policy**] (ポリシーの作成) を選択します。

**ステップ 2: ロールの作成**  
Distributor 権限用の IAM ロールを作成します。

1. IAM コンソールのナビゲーションペインから、[**ロール**]、[**ロールの作成**] の順にクリックします。

1. **[Select type of trusted entity]** (信頼されたエンティティの種類を選択) で、**[AWS のサービス]** を選択します。

1. [**このロールを使用するサービスを選択**] のすぐ下で、[**EC2**]、[**次へ: アクセス許可)**] を選択します。

1. [**ユースケースの選択**] で、[**EC2**]、[**次へ: アクセス許可)**] の順に選択します。

1. ポリシーのリストで、**AmazonSSMManagedInstanceCore** の横にあるチェックボックスを選択します。(リストを絞り込むには、検索ボックスに`SSM`と入力します)。

1. このポリシーのリストで、**[EC2InstanceProfileForImageBuilder]** の横のボックスを選択します。(リストを絞り込むには、検索ボックスに`ImageBuilder`と入力します)。

1. **[Next: Tags]** (次へ: タグ) を選択します。

1. (オプション) 1 つまたは複数のタグキー値のペアを追加して、このロールのアクセスを整理、追跡、または制御し、**[次へ: 確認]** を選択します。

1. [**ロール名**] に、ロールの名前 (`InvokeDistributor` など) を入力するか、希望する別の名前を入力します。

1. (オプション) [**ロールの説明**] で、デフォルトのテキストをこのロールの目的の説明に置き換えます。

1. [**ロールの作成**] を選択します。**ロール**ページが再度表示されます。

**ステップ 3: ポリシーをロールにアタッチする**  
Distributor のアクセス許可を設定する最後のステップは、IAM ロールに IAM ポリシーをアタッチすることです。

1. IAM コンソールの **[ロール]** ページで、作成したロールを選択します。ロールの **概要ページ**が表示されます。

1. [**ポリシーのアタッチ**] を選択します。

1. 前の手順で作成したポリシーを検索して、名前の隣にあるチェックボックスを選択します。

1. **[Attach policy]** (ポリシーのアタッチ) を選択します。

Systems Manager Distributor を使用するコンポーネントを含むすべてのイメージの Image Builder インフラストラクチャー構成リソースでこのロールを使用してください。詳細については、「[インフラストラクチャ構成を作成します。](create-infra-config.md)」を参照してください。

## スタンドアロンコンポーネントとして `distributor-package-windows` を設定する
<a name="mgdcomponent-distributor-config-standalone"></a>

レシピの `distributor-package-windows` コンポーネントを使用するには、インストールするパッケージを設定する以下のパラメータを設定します。

**注記**  
`distributor-package-windows` コンポーネントをレシピで使用する前に、すべての [前提条件](#mgdcomponent-distributor-prereq) が満たされていることを確認する必要があります。
+ **アクション** (必須) — パッケージをインストール / アンインストールを指定します。有効な値は、`Install` および `Uninstall` です。デフォルト値は `Install` です。
+ **PackageName** (必須) — インストールまたはアンインストールする Distributor パッケージの名前。有効なパッケージ名のリストについては、「[Distributor パッケージの検索](#mgdcomponent-distributor-find-pkg)」を参照してください。
+ **PackageVersion** (オプション) — インストールする Distributor パッケージのバージョン。PackageVersion はデフォルトで推奨バージョンに設定されます。
+ **AdditionalArbutor** (オプション) — パッケージのインストール、アンインストール、または更新を行うスクリプトに指定する追加パラメータを含む JSON 文字列。詳細については、**[Systems Manager コマンドドキュメントプラグインリファレンス]** ページの [aws: configurePackage](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-command-ssm-plugin-reference.html#aws-configurepackage) **[入力]** セクションにある **additionalArguments** を参照してください。

## スタンドアロンコンポーネントとして `aws-vss-components-windows` を設定する
<a name="mgdcomponent-vss-config-standalone"></a>

`aws-vss-components-windows` コンポーネントをレシピで使用する場合、オプションで特定のバージョンの `AwsVssComponents` パッケージを使用するように `PackageVersion` パラメータを設定できます。このパラメータを省略すると、コンポーネントはデフォルトで推奨バージョンの `AwsVssComponents` パッケージを使用するようになります。

**注記**  
`aws-vss-components-windows` コンポーネントをレシピで使用する前に、すべての [前提条件](#mgdcomponent-distributor-prereq) が満たされていることを確認する必要があります。

## Distributor パッケージの検索
<a name="mgdcomponent-distributor-find-pkg"></a>

Amazon とサードパーティーは、Systems Manager Distributor でインストールできるパブリックパッケージを提供しています。

で使用可能なパッケージを表示するには AWS マネジメントコンソール、 [AWS Systems Manager コンソール](https://console.aws.amazon.com/systems-manager/;)にログインし、ナビゲーションペインから **Distributor** を選択します。**[Distributor]** ページには、入手可能なすべてのパッケージが表示されます。で利用可能なパッケージの一覧表示の詳細については AWS CLI、*AWS Systems Manager 「 ユーザーガイド*」の[「パッケージの表示 (コマンドライン)](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-view-packages.html)」を参照してください。

独自のプライベート Systems Manager Distributor パッケージを作成することもできます。詳細については、AWS Systems Manager User Guide の [Create a package](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-create.html) を参照してください。

# CIS Fardening のコンポーネント
<a name="toe-cis"></a>

Center for Internet Security (CIS) は、コミュニティ主導の非営利組織です。サイバーセキュリティの専門家が協力して、公的機関と民間組織をサイバー脅威から守る IT セキュリティガイドラインを策定しています。CIS Benchmarks と呼ばれる、世界的に認められた一連のベストプラクティスは、世界中の IT 組織がシステムを安全に構成できるよう支援しています。トレンド記事、ブログ記事、ポッドキャスト、ウェビナー、ホワイトペーパーについては、Center for Internet Security ウェブサイトの [CIS Insights](https://www.cisecurity.org/insights) をご覧ください。

**CIS ベンチマーク**  
CIS は、オペレーティングシステム、クラウドプラットフォーム、アプリケーション、データベースなど、特定のテクノロジーに関する設定のベストプラクティスを提供する CIS ベンチマークと呼ばれる設定ガイドラインを作成および管理しています。CIS ベンチマークは、PCI DSS、HIPAA、DoD クラウドコンピューティング SRG、FISMA、DFARS、FEDRAMP などの組織や標準によって業界標準として認められています。詳細については、インターネットセキュリティセンター Web サイトの「[CIS ベンチマーク](https://www.cisecurity.org/benchmark)」を参照してください。

**CIS Fardening のコンポーネント**  
で CIS 強化イメージをサブスクライブすると AWS Marketplace、スクリプトを実行して設定に CIS ベンチマークレベル 1 のガイドラインを適用する、関連する強化コンポーネントにもアクセスできます。CIS 組織は CIS 強化コンポーネントを所有、保守し、最新のガイドラインに確実に反映されるようにしています。

**注記**  
CIS 強化コンポーネントは、Image Builder レシピの標準コンポーネント順序ルールに従っていません。CIS 強化コンポーネントは常に最後に実行され、ベンチマークテストが出力イメージに対して確実に実行されます。

# Image Builder 用の Amazon managed STIG 強化コンポーネント
<a name="ib-stig"></a>

セキュリティ技術実装ガイド（STIGs）は、情報システムとソフトウェアを保護するために国防情報システム局（DISA）によって作成された構成強化基準です。システムを STIG 標準に準拠させるには、さまざまなセキュリティ設定をインストール、設定、およびテストする必要があります。

Image Builder には STIG 強化コンポーネントが用意されており、ベースラインとなる STIG 標準に準拠したイメージをより効率的に構築できます。これらの STIG コンポーネントは、設定ミスをスキャンし、修正スクリプトを実行します。STIG 準拠のコンポーネントを使用することによる追加料金は発生しません。

**重要**  
いくつかの例外を除き、パラメータで指定しない限り、STIG 強化コンポーネントはサードパーティーパッケージをインストールしません。サードパーティーのパッケージがインスタンスに既にインストールされていて、Image Builder がそのパッケージをサポートしている関連する STIG がある場合は、強化コンポーネントがそれらを適用します。

このページには、Image Builder がサポートするすべての STIG が一覧表示されており、新しいイメージをビルドしてテストするときに Image Builder が起動する EC2 インスタンスに適用されます。イメージに追加の STIG 設定を適用したい場合は、カスタムコンポーネントを作成して設定することができます。カスタムコンポーネントを作成する方法の詳細については、「[コンポーネントを使用した Image Builder イメージのカスタマイズ](manage-components.md)」を参照してください。

イメージを作成すると、STIG 強化コンポーネントは、サポートされている STIG が適用されたかスキップされたかを記録します。STIG 強化コンポーネントを使用するイメージの Image Builder ログを確認することをお勧めします。Image Builder ログにアクセスして確認する方法については、「[パイプラインビルドのトラブルシューティング](troubleshooting.md#troubleshooting-pipelines)」を参照してください。

**コンプライアンスレベル**
+ **高 (カテゴリ I)**

  最も深刻なリスクです。機密性、可用性、または整合性の損失につながる可能性のある脆弱性が含まれます。
+ **ミディアム (カテゴリ II)**

  機密性、可用性、完全性が失われる可能性があるが、そのリスクを軽減できる脆弱性を含まれます。
+ **低 (カテゴリー III)**

  機密性、可用性、または整合性の喪失から保護するための対策を低下させる脆弱性。

**Topics**
+ [Windows の STIG 強化コンポーネント](#windows-os-stig)
+ [Windows 用 STIG バージョン履歴ログ](#ib-windows-version-hist)
+ [Linux の STIG 強化コンポーネント](#linux-os-stig)
+ [Linux 用 STIG バージョン履歴ログ](#ib-linux-version-hist)
+ [SCAP コンプライアンス検証ツール (コンポーネント)](#scap-compliance)

## Windows の STIG 強化コンポーネント
<a name="windows-os-stig"></a>

AWSTOE Windows STIG 強化コンポーネントはスタンドアロンサーバー用に設計されており、ローカルグループポリシーを適用します。STIG 準拠の強化コンポーネントは、国防総省 (DoD) 証明書をインストールおよび更新します。また、STIG への準拠を維持するために不要な証明書も削除します。現在、STIG ベースラインは Windows Server の次のバージョンでサポートされています: 2012 R2、2016、2019、2022、2025。

このセクションには、Windows STIG の各強化コンポーネントの現在の設定が一覧表示され、その後にバージョン履歴ログが続きます。

### Windows STIG Low (Category III)
<a name="ib-windows-stig-low"></a>

次のリストには、コンポーネント強化がインフラストラクチャーに適用される STIG 設定が含まれています。サポートされている設定がご使用のインフラストラクチャに当てはまらない場合、強化コンポーネントはその設定をスキップして次に進みます。例えば、一部の STIG 設定は、スタンドアロンサーバーには適用されない場合があります。組織固有のポリシーは、管理者が文書設定をレビューするための要件など、堅牢化コンポーネントが適用する設定にも影響します。

Windows 向け STIG の完全なリストについては、「[STIG ドキュメントライブラリ](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=windows)」を参照してください。完全なリストを表示する方法の詳細については、「[STIG 表示ツール](https://public.cyber.mil/stigs/srg-stig-tools/)」を参照してください。
+ **Windows Server 2025 STIG バージョン 1 リリース 1**

  V-278082, V-278083, V-278084, V-278085, V-278098, V-278104, V-278110、および V-278231
+ **Windows Server 2022 STIG バージョン 2 リリース 7**

  V-254335, V-254336, V-254337, V-254338, V-254351, V-254357, V-254363, および V-254481
+ **Windows Server 2019 STIG バージョン 3 リリース 7**

  V-205691、V-205819、V-205858、V-205859、V-205860、V-205870、V-205871、および V-205923
+ **Windows Server 2016 STIG バージョン 2 リリース 10**

  V-224916、V-224917、V-224918、V-224919、V-224931、V-224942、および V-225060
+ **Windows Server 2012 R2 MS STIG バージョン 3 リリース 5**

  V-225250, V-225318, V-225319, V-225324, V-225327, V-225328, V-225330, V-225331, V-225332, V-225333, V-225334, V-225335, V-225336, V-225342, V-225343, V-225355, V-225357, V-225358, V-225359, V-225360, V-225362, V-225363, V-225376, V-225392, V-225394, V-225412, V-225459, V-225460, V-225462, V-225468, V-225473, V-225476, V-225479, V-225480, V-225481, V-225482, V-225483, V-225484, V-225485, V-225487, V-225488, V-225489, V-225490, V-225511, V-225514, V-225525, V-225526, V-225536, V-225537
+ **Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 7**

  Microsoft .NET フレームワークには、カテゴリ III の脆弱性に対応する STIG 設定は適用されません。
+ **Windows Firewall STIG バージョン 2 リリース 2**

  V-241994、V-241995、V-241996、V-241999、V-242000、V-242001、V-242006、V-242007、V-242008
+ **Internet Explorer 11 STIG バージョン 2 リリース 6**

  V-223056 および V-223078
+ **Microsoft Edge STIG バージョン 2 リリース 4 (Windows Server 2022 および 2025 のみ)**

  V-235727、V-235731、V-235751、V-235752 および V-235765
+ **Microsoft Defender STIG バージョン 2 リリース 7**

  Microsoft Antivirus for Category III の脆弱性には STIG 設定は適用されません。

### Windows STIG Medium (Category II)
<a name="ib-windows-stig-medium"></a>

次のリストには、コンポーネント強化がインフラストラクチャーに適用される STIG 設定が含まれています。サポートされている設定がご使用のインフラストラクチャに当てはまらない場合、強化コンポーネントはその設定をスキップして次に進みます。例えば、一部の STIG 設定は、スタンドアロンサーバーには適用されない場合があります。組織固有のポリシーは、管理者が文書設定をレビューするための要件など、堅牢化コンポーネントが適用する設定にも影響します。

Windows 向け STIG の完全なリストについては、「[STIG ドキュメントライブラリ](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=windows)」を参照してください。完全なリストを表示する方法の詳細については、「[STIG 表示ツール](https://public.cyber.mil/stigs/srg-stig-tools/)」を参照してください。

**注記**  
Windows STIG Medium 強化コンポーネントには、カテゴリ II の脆弱性専用にリストされている STIG 設定に加えて、Windows STIG Low 強化コンポーネント AWSTOE に適用されるすべてのリストされた STIG 設定が含まれます。
+ **Windows Server 2025 STIG バージョン 1 リリース 1**

  Category III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。

  V-278015、 V-278016、 V-278019、 V-278020、 V-278021、 V-278022、 V-278023、 V-278024、 V-278025、 V-278026、 V-278033、 V-278034、 V-278035、 V-278036、 V-278037、 V-278038、 V-278039、 V-278047、 V-278048、 V-278049、 V-278050、 V-278051、 V-278052、 V-278053、 V-278054、 V-278055、 V-278056、 V-278057、 V-278058、 V-278059、 V-278060、 V-278061、 V-278062、 V-278063、 V-278064、 V-278065、 V-278066、 V-278067、 V-278068、 V-278069、 V-278070、 V-278071、 V-278072、 V-278073、 V-278074、 V-278075、 V-278076、 V-278077、 V-278078、 V-278079、 V-278080、 V-278086、 V-278088、 V-278089、 V-278091、 V-278092、 V-278093、 V-278094、 V-278095、 V-278096、 V-278097、 V-278102、 V-278103、 V-278105、 V-278106、 V-278107、 V-278108、 V-278109、 V-278111、 V-278112、 V-278113、 V-278114、 V-278115、 V-278116、 V-278117、 V-278118、 V-278119、 V-278120、 V-278122、 V-278123、 V-278124、 V-278126、 V-278127、 V-278129、 V-278130、 V-278131、 V-278165、 V-278168、 V-278169、 V-278170、 V-278171、 V-278174、 V-278180、 V-278181、 V-278182、 V-278183、 V-278184、 V-278185、 V-278187、 V-278188、 V-278189、 V-278192、 V-278193、 V-278194、 V-278195、 V-278198、 V-278199、 V-278200、 V-278201、 V-278202、 V-278203、 V-278204、 V-278205、 V-278206、 V-278209、 V-278210、 V-278211、 V-278212、 V-278213、 V-278214、 V-278218、 V-278220、 V-278221、 V-278222、 V-278223、 V-278226、 V-278227、 V-278228、 V-278229、 V-278230、 V-278232、 V-278233、 V-278234、 V-278235、 V-278236、 V-278237、 V-278238、 V-278239、 V-278240、 V-278241、 V-278243、 V-278244、 V-278245、 V-278247、 V-278248、 V-278249、 V-278251、 V-278252、 V-278253、 V-278254、 V-278255、 V-278256、 V-278257、 V-278258、 V-278259、 V-278260、 V-278261、 V-278262、 V-279916、 V-279917、 V-279918、 V-279919、 V-279920、 V-279921、 V-279922、 および V-279923
+ **Windows Server 2022 STIG バージョン 2 リリース 7**

  Category III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。

  V-254247、 V-254269、 V-254270、 V-254271、 V-254272、 V-254273、 V-254274、 V-254275、 V-254276、 V-254277、 V-254278、 V-254285、 V-254286、 V-254287、 V-254288、 V-254289、 V-254290、 V-254291、 V-254292、 V-254296、 V-254297、 V-254298、 V-254299、 V-254300、 V-254301、 V-254302、 V-254303、 V-254304、 V-254305、 V-254307、 V-254309、 V-254311、 V-254312、 V-254313、 V-254314、 V-254315、 V-254316、 V-254319、 V-254320、 V-254321、 V-254322、 V-254323、 V-254324、 V-254325、 V-254326、 V-254327、 V-254328、 V-254329、 V-254330、 V-254331、 V-254332、 V-254333、 V-254334、 V-254339、 V-254341、 V-254342、 V-254344、 V-254345、 V-254346、 V-254347、 V-254348、 V-254349、 V-254350、 V-254355、 V-254356、 V-254358、 V-254359、 V-254360、 V-254361、 V-254362、 V-254364、 V-254365、 V-254366、 V-254367、 V-254368、 V-254369、 V-254370、 V-254371、 V-254372、 V-254373、 V-254375、 V-254376、 V-254377、 V-254379、 V-254380、 V-254382、 V-254383、 V-254384、 V-254431、 V-254433、 V-254434、 V-254435、 V-254436、 V-254438、 V-254439、 V-254440、 V-254442、 V-254443、 V-254444 V-254445、 V-254447、 V-254448、 V-254449、 V-254450、 V-254451、 V-254452、 V-254453、 V-254454、 V-254455、 V-254456、 V-254459、 V-254460、 V-254461、 V-254462、 V-254463、 V-254464、 V-254468、 V-254470、 V-254471、 V-254472、 V-254473、 V-254476、 V-254477、 V-254478、 V-254479、 V-254480、 V-254482、 V-254483、 V-254484、 V-254485、 V-254486、 V-254487、 V-254488、 V-254489、 V-254491、 V-254493、 V-254494、 V-254495、 V-254497、 V-254498、 V-254499、 V-254501、 V-254502、 V-254503、 V-254504、 V-254505、 V-254506、 V-254507、 V-254508、 V-254509、 V-254510、 V-254511、 V-254512、 V-278942、 V-278943、 V-278944、 V-278945、 V-278946、 V-278947、 V-278948、 および V-278949
+ **Windows Server 2019 STIG バージョン 3 リリース 7**

  Category III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。

  V-205625、 V-205626、 V-205627、 V-205629、 V-205630、 V-205633、 V-205634、 V-205635、 V-205636、 V-205637、 V-205638、 V-205639、 V-205640、 V-205641、 V-205642、 V-205643、 V-205644、 V-205648、 V-205649、 V-205650、 V-205651、 V-205652、 V-205655、 V-205656、 V-205659、 V-205660、 V-205662、 V-205671、 V-205672、 V-205673、 V-205675、 V-205676、 V-205678、 V-205679、 V-205680、 V-205681、 V-205682、 V-205683、 V-205684、 V-205685、 V-205686、 V-205687、 V-205688、 V-205689、 V-205690、 V-205692、 V-205693、 V-205694、 V-205697、 V-205698、 V-205708、 V-205709、 V-205712、 V-205714、 V-205716、 V-205717、 V-205718、 V-205719、 V-205720、 V-205722、 V-205730、 V-205731、 V-205733、 V-205747、 V-205748、 V-205749、 V-205751、 V-205752、 V-205754、 V-205755、 V-205756、 V-205758、 V-205759、 V-205760、 V-205761、 V-205762、 V-205763、 V-205764、 V-205765、 V-205766、 V-205767、 V-205768、 V-205769、 V-205770、 V-205771、 V-205772、 V-205773、 V-205774、 V-205775、 V-205776、 V-205777、 V-205778、 V-205779、 V-205780、 V-205781、 V-205782、 V-205783、 V-205784、 V-205795、 V-205796、 V-205797、 V-205798、 V-205801、 V-205808、 V-205809、 V-205810、 V-205811、 V-205812、 V-205813、 V-205814、 V-205815、 V-205816、 V-205817、 V-205821、 V-205822、 V-205823、 V-205824、 V-205825、 V-205826、 V-205827、 V-205828、 V-205830、 V-205832、 V-205833、 V-205835、 V-205836、 V-205837、 V-205838、 V-205842、 V-205861、 V-205863、 V-205865、 V-205866、 V-205867、 V-205868、 V-205869、 V-205872、 V-205873、 V-205874、 V-205909、 V-205910、 V-205911、 V-205912、 V-205915、 V-205916、 V-205917、 V-205918、 V-205920、 V-205921、 V-205922、 V-205925、 V-257503、 V-278934、 V-278935、 V-278936、 V-278937、 V-278938、 V-278939、 V-278940、 および V-278941
+ **Windows Server 2016 STIG バージョン 2 リリース 10**

  Category III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。

  V-224850、 V-224851、 V-224852、 V-224853、 V-224854、 V-224855、 V-224856、 V-224857、 V-224858、 V-224859、 V-224866、 V-224867、 V-224868、 V-224869、 V-224870、 V-224871、 V-224872、 V-224873、 V-224877、 V-224878、 V-224879、 V-224880、 V-224881、 V-224882、 V-224883、 V-224884、 V-224885、 V-224886、 V-224888、 V-224890、 V-224892、 V-224893、 V-224894、 V-224895、 V-224896、 V-224897、 V-224900、 V-224901、 V-224902、 V-224903、 V-224904、 V-224905、 V-224906、 V-224907、 V-224908、 V-224909、 V-224910、 V-224911、 V-224912、 V-224913、 V-224914、 V-224915、 V-224920、 V-224921、 V-224922、 V-224924、 V-224925、 V-224926、 V-224927、 V-224928、 V-224929、 V-224930、 V-224935、 V-224936、 V-224937、 V-224938、 V-224939、 V-224940、 V-224941、 V-224943、 V-224944、 V-224945、 V-224946、 V-224947、 V-224948、 V-224949、 V-224951、 V-224952、 V-224953、 V-224955、 V-224956、 V-224957、 V-224959、 V-224960、 V-224962、 V-224963、 V-224965、 V-224966、 V-224967、 V-224968、 V-224969、 V-224987、 V-224988、 V-224989、 V-224995、 V-224996、 V-224997、 V-224998、 V-224999、 V-225000、 V-225001、 V-225002、 V-225003、 V-225004、 V-225005、 V-225008、 V-225009、 V-225010、 V-225011、 V-225013、 V-225014、 V-225015、 V-225016、 V-225017、 V-225018、 V-225019、 V-225020、 V-225021、 V-225022、 V-225023、 V-225024、 V-225026、 V-225027、 V-225028、 V-225029、 V-225030、 V-225031、 V-225032、 V-225033、 V-225034、 V-225035、 V-225038、 V-225039、 V-225040、 V-225041、 V-225042、 V-225043、 V-225047、 V-225049、 V-225050、 V-225051、 V-225052、 V-225055、 V-225056、 V-225057、 V-225058、 V-225059、 V-225061、 V-225062、 V-225063、 V-225064、 V-225065、 V-225066、 V-225067、 V-225068、 V-225070、 V-225072、 V-225073、 V-225074、 V-225076、 V-225077、 V-225078、 V-225080、 V-225081、 V-225082、 V-225083、 V-225084、 V-225085、 V-225086、 V-225087、 V-225088、 V-225089、 V-225092、 V-225093、 および V-257502
+ **Windows Server 2012 R2 MS STIG バージョン 3 リリース 5**

  Category III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。

  V-225239, V-225259, V-225260, V-225261, V-225263, V-225264, V-225265, V-225266, V-225267, V-225268, V-225269, V-225270, V-225271, V-225272, V-225273, V-225275, V-225276, V-225277, V-225278, V-225279, V-225280, V-225281, V-225282, V-225283, V-225284, V-225285, V-225286, V-225287, V-225288, V-225289, V-225290, V-225291, V-225292, V-225293, V-225294, V-225295, V-225296, V-225297, V-225298, V-225299, V-225300, V-225301, V-225302, V-225303, V-225304, V-225305, V-225314, V-225315, V-225316, V-225317, V-225325, V-225326, V-225329, V-225337, V-225338, V-225339, V-225340, V-225341, V-225344, V-225345, V-225346, V-225347, V-225348, V-225349, V-225350, V-225351, V-225352, V-225353, V-225356, V-225367, V-225368, V-225369, V-225370, V-225371, V-225372, V-225373, V-225374, V-225375, V-225377, V-225378, V-225379, V-225380, V-225381, V-225382, V-225383, V-225384, V-225385, V-225386, V-225389, V-225391, V-225393, V-225395, V-225397, V-225398, V-225400, V-225401, V-225402, V-225404, V-225405, V-225406, V-225407, V-225408, V-225409, V-225410, V-225411, V-225413, V-225414, V-225415, V-225441, V-225442, V-225443, V-225448, V-225452, V-225453, V-225454, V-225455, V-225456, V-225457, V-225458, V-225461, V-225463, V-225464, V-225469, V-225470, V-225471, V-225472, V-225474, V-225475, V-225477, V-225478, V-225486, V-225494, V-225500, V-225501, V-225502, V-225503, V-225504, V-225506, V-225508, V-225509, V-225510, V-225513, V-225515, V-225516, V-225517, V-225518, V-225519, V-225520, V-225521, V-225522, V-225523, V-225524, V-225527, V-225528, V-225529, V-225530, V-225531, V-225532, V-225533, V-225534, V-225535, V-225538, V-225539, V-225540, V-225541, V-225542, V-225543, V-225544, V-225545, V-225546, V-225548, V-225549, V-225550, V-225551, V-225553, V-225554, V-225555, V-225557, V-225558, V-225559, V-225560, V-225561, V-225562, V-225563, V-225564, V-225565, V-225566, V-225567, V-225568, V-225569, V-225570, V-225571, V-225572, V-225573, V-225574
+ **Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 7**

  Category III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。

  V-225223, V-225230, V-225235、および V-225238
+ **Windows Firewall STIG バージョン 2 リリース 2**

  Category III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。

  V-241989, V-241990, V-241991, V-241993, V-241998, V-242003, V-242004、および V-242005
+ **Internet Explorer 11 STIG バージョン 2 リリース 6**

  Category III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。

  V-223015、 V-223017、 V-223018、 V-223019、 V-223020、 V-223021、 V-223022、 V-223023、 V-223024、 V-223025、 V-223026、 V-223027、 V-223028、 V-223029、 V-223030、 V-223031、 V-223032、 V-223033、 V-223034、 V-223035、 V-223036、 V-223037、 V-223038、 V-223039、 V-223040、 V-223041、 V-223042、 V-223043、 V-223044、 V-223045、 V-223046、 V-223048、 V-223049、 V-223050、 V-223051、 V-223052、 V-223053、 V-223054、 V-223055、 V-223057、 V-223058、 V-223059、 V-223060、 V-223061、 V-223062、 V-223063、 V-223064、 V-223065、 V-223066、 V-223067、 V-223068、 V-223069、 V-223070、 V-223071、 V-223072、 V-223073、 V-223074、 V-223075、 V-223076、 V-223077、 V-223079、 V-223080、 V-223081、 V-223082、 V-223083、 V-223084、 V-223085、 V-223086、 V-223087、 V-223088、 V-223089、 V-223090、 V-223091、 V-223092、 V-223093、 V-223094、 V-223095、 V-223096、 V-223097、 V-223098、 V-223099、 V-223100、 V-223101、 V-223102、 V-223103、 V-223104、 V-223105、 V-223106、 V-223107、 V-223108、 V-223109、 V-223110、 V-223111、 V-223112、 V-223113、 V-223114、 V-223115、 V-223116、 V-223117、 V-223118、 V-223119、 V-223120、 V-223121、 V-223123、 V-223125、 V-223126、 V-223127、 V-223128、 V-223129、 V-223130、 V-223131、 V-223132、 V-223133、 V-223134、 V-223135、 V-223136、 V-223137、 V-223138、 V-223139、 V-223140、 V-223141、 V-223142、 V-223143、 V-223144、 V-223145、 V-223146、 V-223147、 V-223148、 V-223149、 V-250540、 および V-250541
+ **Microsoft Edge STIG バージョン 2 リリース 4 (Windows Server 2022 および 2025 のみ)**

  Category III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。

  V-235720、V-235721、V-235723、V-235724、V-235725、V-235726、V-235728、V-235729、V-235730、V-235732、V-235733、V-235734、V-235735、V-235736、V-235737、V-235738、V-235739、V-235740、V-235741、V-235742、V-235743、V-235744、V-235745、V-235746、V-235747、V-235748、V-235749、V-235750、V-235754、V-235756、V-235760、V-235761、V-235763、V-235764、V-235766、V-235767、V-235768、V-235769、V-235770、V-235771、V-235772、V-235773、V-235774、および V-246736
+ **Microsoft Defender STIG バージョン 2 リリース 7**

  Category III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。

  V-213427、 V-213429、 V-213430、 V-213431、 V-213432、 V-213433、 V-213434、 V-213435、 V-213436、 V-213437、 V-213438、 V-213439、 V-213440、 V-213441、 V-213442、 V-213443、 V-213444、 V-213445、 V-213446、 V-213447、 V-213448、 V-213449、 V-213450、 V-213451、 V-213454、 V-213455、 V-213456、 V-213457、 V-213458、 V-213459、 V-213460、 V-213461、 V-213462、 V-213463、 V-213464、 V-213465、 V-213466、 V-278647、 V-278648、 V-278649、 V-278650、 V-278651、 V-278652、 V-278653、 V-278654、 V-278655、 V-278656、 V-278658、 V-278659、 V-278660、 V-278661、 V-278662、 V-278668、 V-278669、 V-278672、 V-278674、 V-278675、 V-278676、 V-278677、 V-278678、 V-278679、 V-278680、 および V-278863

### Windows STIG High (Category I)
<a name="ib-windows-stig-high"></a>

次のリストには、コンポーネント強化がインフラストラクチャーに適用される STIG 設定が含まれています。サポートされている設定がご使用のインフラストラクチャに当てはまらない場合、強化コンポーネントはその設定をスキップして次に進みます。例えば、一部の STIG 設定は、スタンドアロンサーバーには適用されない場合があります。組織固有のポリシーは、管理者が文書設定をレビューするための要件など、堅牢化コンポーネントが適用する設定にも影響します。

Windows 向け STIG の完全なリストについては、「[STIG ドキュメントライブラリ](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=windows)」を参照してください。完全なリストを表示する方法の詳細については、「[STIG 表示ツール](https://public.cyber.mil/stigs/srg-stig-tools/)」を参照してください。

**注記**  
Windows STIG 高強化コンポーネントには、カテゴリ I の脆弱性専用にリストされている STIG 設定に加えて、Windows STIG Low および Windows STIG Medium 強化コンポーネント AWSTOE に適用されるすべてのリストされた STIG 設定が含まれます。
+ **Windows Server 2025 STIG バージョン 1 リリース 1**

  Category II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。

  V-278040, V-278099, V-278100, V-278101, V-278121, V-278125, V-278128, V-278196, V-278215, V-278216, V-278217, V-278219, V-278225, V-278242, V-278246、および V-278250
+ **Windows Server 2022 STIG バージョン 2 リリース 7**

  Category II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。

  V-254250, V-254293, V-254352, V-254353, V-254354, V-254374, V-254378, V-254381, V-254446, V-254466, V-254467, V-254469, V-254474, V-254475, V-254492, V-254496、および V-254500
+ **Windows Server 2019 STIG バージョン 3 リリース 7**

  Category II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。

  V-205653, V-205654, V-205663, V-205711, V-205713, V-205724, V-205725, V-205750, V-205753, V-205757, V-205802, V-205804, V-205805, V-205806, V-205849, V-205908, V-205914、および V-205919
+ **Windows Server 2016 STIG バージョン 2 リリース 10**

  Category II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。

  V-224831, V-224874, V-224932, V-224933, V-224934, V-224954, V-224958, V-224961, V-225025, V-225045, V-225046, V-225048, V-225053, V-225054, V-225071, V-225079、および V-225091
+ **Windows Server 2012 R2 MS STIG バージョン 3 リリース 5**

  Category II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。

  V-225274, V-225354, V-225364, V-225365, V-225366, V-225390, V-225396, V-225399, V-225444, V-225449, V-225491, V-225492, V-225493, V-225496, V-225497, V-225498, V-225505, V-225507, V-225547, V-225552, V-225556
+ **Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 7**

  Microsoft .NET Framework のCategory II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定が含まれます。カテゴリ I の脆弱性に対して、追加的な STIG 設定は適用されません。
+ **Windows Firewall STIG バージョン 2 リリース 2**

  Category II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。

  V-241992, V-241997, および V-242002
+ **Internet Explorer 11 STIG バージョン 2 リリース 6**

  V-252910
+ **Microsoft Edge STIG バージョン 2 リリース 4 (Windows Server 2022 および 2025 のみ)**

  Category II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。

  V-235758 と V-235759
+ **Microsoft Defender STIG バージョン 2 リリース 7**

  Category II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。

  V-213426, V-213428, V-213452、および V-213453

## Windows 用 STIG バージョン履歴ログ
<a name="ib-windows-version-hist"></a>

このセクションには、四半期ごとの STIG アップデートの Windows 強化コンポーネントのバージョン履歴が記録されます。四半期ごとの変更点と公開されたバージョンを確認するには、タイトルを選択して情報を展開します。

### 2026 年Q1 四半期の変更 - 3/10/2026:
<a name="2026-q1-windows"></a>

Windows Server 2025 のサポートを追加し、該当するすべての STIGsに更新しました。

**STIG-Build-Windows**
+ Windows Server 2025 STIG バージョン 1 リリース 1
+ Windows Server 2022 STIG バージョン 2 リリース 7
+ Windows Server 2019 STIG バージョン 3 リリース 7
+ Windows Server 2016 STIG バージョン 2 リリース 10
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 5
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 7
+ Windows Firewall STIG バージョン 2 リリース 2
+ Internet Explorer 11 STIG バージョン 2 リリース 8
+ Microsoft Edge STIG バージョン 2 リリース 4 (Windows Server 2022 および 2025 のみ)

### 2025 年第 3 四半期の変更-2025 年 9 月 4 日 (変更なし):
<a name="2025-q3-windows"></a>

2025 年第 3 四半期リリースに対する Windows コンポーネント STIGS に変更はありませんでした。

### 2025 年第 2 四半期の変更 - 2025 年 6 月 26 日:
<a name="2025-q2-windows"></a>

STIG のバージョンを更新し、2025 年第 2 四半期のリリースに対して以下のように STIGS を適用しました。

**STIG-Build-Windows-Low バージョン 2025.2.x**
+ Windows Server 2022 STIG バージョン 2 リリース 4
+ Windows Server 2019 STIG バージョン 3 リリース 4
+ Windows Server 2016 STIG バージョン 2 リリース 10
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 5
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 6
+ Windows Firewall STIG バージョン 2 リリース 2
+ Internet Explorer 11 STIG バージョン 2 リリース 5
+ Microsoft Edge STIG バージョン 2 リリース 2 (Windows Server 2022 のみ)

**STIG-Build-Windows-Medium バージョン 2025.2.x**
+ Windows Server 2022 STIG バージョン 2 リリース 4
+ Windows Server 2019 STIG バージョン 3 リリース 4
+ Windows Server 2016 STIG バージョン 2 リリース 10
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 5
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 6
+ Windows Firewall STIG バージョン 2 リリース 2
+ Internet Explorer 11 STIG バージョン 2 リリース 5
+ Microsoft Edge STIG バージョン 2 リリース 2 (Windows Server 2022 のみ)
+ Defender STIG バージョン 2 リリース 4

**STIG-Build-Windows-High バージョン 2025.2.x**
+ Windows Server 2022 STIG バージョン 2 リリース 4
+ Windows Server 2019 STIG バージョン 3 リリース 4
+ Windows Server 2016 STIG バージョン 2 リリース 10
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 5
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 6
+ Windows Firewall STIG バージョン 2 リリース 2
+ Internet Explorer 11 STIG バージョン 2 リリース 5
+ Microsoft Edge STIG バージョン 2 リリース 2 (Windows Server 2022 のみ)
+ Defender STIG バージョン 2 リリース 4

### 2025 年 Q1 四半期の変更 - 2025 年 5 月 4 日:
<a name="2025-q1-windows"></a>

2025 年第 1 四半期リリースに対するすべての STIG コンポーネントで、Internet Explorer 11 STIG バージョン 2 リリース 5 の STIGS を更新しました。
+ STIG-Build-Windows-Low バージョン 2025.1.x
+ STIG-Build-Windows-Medium バージョン 2025.1.x
+ STIG-Build-Windows-High バージョン 2025.1.x

### 2024 年Q4 四半期の変更 - 02/04/2025:
<a name="2024-q4-windows"></a>

STIG のバージョンを更新し、2024 年第 4 四半期のリリースに対して以下のように STIGS を適用しました。

**STIG-Build-Windows-Low バージョン 2024.4.0**
+ Windows Server 2022 STIG バージョン 2 リリース 2
+ Windows Server 2019 STIG バージョン 3 リリース 2
+ Windows Server 2016 STIG バージョン 2 リリース 9
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 5
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 2
+ Windows Firewall STIG バージョン 2 リリース 2
+ Internet Explorer 11 STIG バージョン 2 リリース 5
+ Microsoft Edge STIG バージョン 2 リリース 2 (Windows Server 2022 のみ)

**STIG-Build-Windows-Medium バージョン 2024.4.0**
+ Windows Server 2022 STIG バージョン 2 リリース 2
+ Windows Server 2019 STIG バージョン 3 リリース 2
+ Windows Server 2016 STIG バージョン 2 リリース 9
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 5
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 2
+ Windows Firewall STIG バージョン 2 リリース 2
+ Internet Explorer 11 STIG バージョン 2 リリース 5
+ Microsoft Edge STIG バージョン 2 リリース 2 (Windows Server 2022 のみ)
+ Defender STIG バージョン 2 リリース 4

**STIG-Build-Windows-High バージョン 2024.4.0**
+ Windows Server 2022 STIG バージョン 2 リリース 2
+ Windows Server 2019 STIG バージョン 3 リリース 2
+ Windows Server 2016 STIG バージョン 2 リリース 9
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 5
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 2
+ Windows Firewall STIG バージョン 2 リリース 2
+ Internet Explorer 11 STIG バージョン 2 リリース 5
+ Microsoft Edge STIG バージョン 2 リリース 2 (Windows Server 2022 のみ)
+ Defender STIG バージョン 2 リリース 4

### 2024 年Q3 四半期の変更 - 10/04/2023 (変更なし):
<a name="2024-q3-windows"></a>

2024 年第 3 四半期リリースの Windows コンポーネント STIGS に変更はありませんでした。

### 2024 年第 2 四半期の変更 - 2024 年 5 月 10 日 (変更なし):
<a name="2024-q2-windows"></a>

2024 年第 2 四半期リリースの Windows コンポーネント STIG には変更はありませんでした。

### 2024 年第 1 四半期の変更 - 2024 年 2 月 6 日 (変更なし):
<a name="2024-q1-windows"></a>

2024 年第 1 四半期リリースの Windows コンポーネント STIG には変更はありませんでした。

### 2023 年第 4 四半期の変更 - 2023 年 12 月 4 日 (変更なし):
<a name="2023-q4-windows"></a>

2023 年第 4 四半期リリースの Windows コンポーネント STIG には変更はありませんでした。

### 2023 年第 3 四半期の変更-2023 年 4 月 10 日 (変更なし):
<a name="2023-q3-windows"></a>

2023 年第 3 四半期リリースの Windows コンポーネント STIGS には変更はありませんでした。

### 2023 年第 2 四半期の変更-2023 年 5 月 3 日 (変更なし):
<a name="2023-q2-windows"></a>

2023 年第 2 四半期リリースの Windows コンポーネント STIGS には変更はありませんでした。

### 2023 年第 1 四半期の変更-2023 年 3 月 27 日 (変更なし):
<a name="2023-q1-windows"></a>

2023 年第 1 四半期リリースの Windows コンポーネント STIGS には変更はありませんでした。

### 2022 年第 4 四半期の変更-2023 年 2 月 1 日:
<a name="2022-q4-windows"></a>

STIG のバージョンを更新し、2022 年第 4 四半期リリース用の STIGS を適用。

**STIG-Build-Windows-Low バージョン2022.4.x**
+ Windows Server 2022 STIG バージョン 1 リリース 1
+ Windows Server 2019 STIG バージョン 2 リリース 5
+ Windows Server 2016 STIG バージョン 2 リリース 5
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 5
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 2
+ Windows Firewall STIG バージョン 2 リリース 1
+ Internet Explorer 11 STIG バージョン 2 リリース 3
+ Microsoft Edge STIG バージョン 1 リリース 6 (Windows Server 2022 のみ)

**STIG-Build-Windows-Medium バージョン2022.4.x**
+ Windows Server 2022 STIG バージョン 1 リリース 1
+ Windows Server 2019 STIG バージョン 2 リリース 5
+ Windows Server 2016 STIG バージョン 2 リリース 5
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 5
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 2
+ Windows Firewall STIG バージョン 2 リリース 1
+ Internet Explorer 11 STIG バージョン 2 リリース 3
+ Microsoft Edge STIG バージョン 1 リリース 6 (Windows Server 2022 のみ)
+ Defender STIG バージョン 2 リリース 4 (Windows Server 2022 のみ)

**STIG-Build-Windows-High バージョン2022.4.x**
+ Windows Server 2022 STIG バージョン 1 リリース 1
+ Windows Server 2019 STIG バージョン 2 リリース 5
+ Windows Server 2016 STIG バージョン 2 リリース 5
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 5
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 2
+ Windows Firewall STIG バージョン 2 リリース 1
+ Internet Explorer 11 STIG バージョン 2 リリース 3
+ Microsoft Edge STIG バージョン 1 リリース 6 (Windows Server 2022 のみ)
+ Defender STIG バージョン 2 リリース 4 (Windows Server 2022 のみ)

### 2022 年第 3 四半期の変更-2022 年 9 月 30 日 (変更なし):
<a name="2022-q3-windows"></a>

2022 年第 3 四半期リリースの Windows コンポーネント STIGS には変更はありませんでした。

### 2022 年第 2 四半期の変更-2022 年 8 月 2 日:
<a name="2022-q2-windows"></a>

STIG のバージョンを更新し、2022 年第 2 四半期リリース用の STIGS を適用。

**STIG-Build-Windows-Low バージョン1.5.x**
+ Windows Server 2019 STIG バージョン 2 リリース 4
+ Windows Server 2016 STIG バージョン 2 リリース 4
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 3
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 1
+ Windows Firewall STIG バージョン 2 リリース 1
+ Internet Explorer 11 STIG バージョン 1 リリース 19

**STIG-Build-Windows-Medium バージョン1.5.x**
+ Windows Server 2019 STIG バージョン 2 リリース 4
+ Windows Server 2016 STIG バージョン 2 リリース 4
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 3
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 1
+ Windows Firewall STIG バージョン 2 リリース 1
+ Internet Explorer 11 STIG バージョン 1 リリース 19

**STIG-Build-Windows-High バージョン1.5.x**
+ Windows Server 2019 STIG バージョン 2 リリース 4
+ Windows Server 2016 STIG バージョン 2 リリース 4
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 3
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 1
+ Windows Firewall STIG バージョン 2 リリース 1
+ Internet Explorer 11 STIG バージョン 1 リリース 19

### 2022 年第 1 四半期の変更-2022 年 8 月 2 日 (変更なし):
<a name="2022-q1-windows"></a>

2022 年第 1 四半期リリースの Windows コンポーネント STIGS には変更はありませんでした。

### 2021 年第 4 四半期の変更-2021 年 12 月 20 日:
<a name="2021-q4-windows"></a>

STIG のバージョンを更新し、2021 年第 4 四半期リリース用の STIGS を適用。

**STIG-Build-Windows-Low バージョン1.5.x**
+ Windows Server 2019 STIG バージョン 2 リリース 3
+ Windows Server 2016 STIG バージョン 2 リリース 3
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 3
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 1
+ Windows Firewall STIG バージョン 2 リリース 1
+ Internet Explorer 11 STIG バージョン 1 リリース 19

**STIG-Build-Windows-Medium バージョン1.5.x**
+ Windows Server 2019 STIG バージョン 2 リリース 3
+ Windows Server 2016 STIG バージョン 2 リリース 3
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 3
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 1
+ Windows Firewall STIG バージョン 2 リリース 1
+ Internet Explorer 11 STIG バージョン 1 リリース 19

**STIG-Build-Windows-High バージョン1.5.x**
+ Windows Server 2019 STIG バージョン 2 リリース 3
+ Windows Server 2016 STIG バージョン 2 リリース 3
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 3
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 1
+ Windows Firewall STIG バージョン 2 リリース 1
+ Internet Explorer 11 STIG バージョン 1 リリース 19

### 2021 年第 3 四半期の変更-2021 年 9 月 30 日:
<a name="2021-q3-windows"></a>

STIG のバージョンを更新し、2021 年第 3 四半期リリース用の STIGS を適用。

**STIG-Build-Windows-Low バージョン1.4.x**
+ Windows Server 2019 STIG バージョン 2 リリース 2
+ Windows Server 2016 STIG バージョン 2 リリース 2
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 2
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 1
+ Windows ファイアウォール STIG バージョン 1 リリース 7
+ Internet Explorer 11 STIG バージョン 1 リリース 19

**STIG-Build-Windows-Medium バージョン1.4.x**
+ Windows Server 2019 STIG バージョン 2 リリース 2
+ Windows Server 2016 STIG バージョン 2 リリース 2
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 2
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 1
+ Windows ファイアウォール STIG バージョン 1 リリース 7
+ Internet Explorer 11 STIG バージョン 1 リリース 19

**STIG-Build-Windows-High バージョン1.4.x**
+ Windows Server 2019 STIG バージョン 2 リリース 2
+ Windows Server 2016 STIG バージョン 2 リリース 2
+ Windows Server 2012 R2 MS STIG バージョン 3 リリース 2
+ Microsoft .NET Framework 4.0 STIG バージョン 2 リリース 1
+ Windows ファイアウォール STIG バージョン 1 リリース 7
+ Internet Explorer 11 STIG バージョン 1 リリース 19

## Linux の STIG 強化コンポーネント
<a name="linux-os-stig"></a>

このセクションには Linux STIG 強化コンポーネントに関する情報が含まれ、その後にバージョン履歴ログが続きます。Linux ディストリビューションに独自の STIG 設定がない場合、強化コンポーネントは RHEL 設定を適用します。

Linux コンポーネントには、Linux インスタンスの以下の動作をカスタマイズするのに役立つオプションの入力パラメータがあります。
+ **レベル (文字列)**   値を指定しない場合、デフォルトは `High`で、適用可能なすべての Low、Medium、High 設定が適用されます。
+ **InstallPackages (文字列)**   値が の場合`No`、コンポーネントは追加のソフトウェアパッケージをインストールしません。値が の場合`Yes`、コンポーネントはコンプライアンスを最大化するために必要な追加のソフトウェアパッケージをインストールします。デフォルトは `No` です。
+ **SetDoDConsentBanner (文字列)**   値が の場合`No`、STIG Linux コンポーネントのいずれかがインストールされているインスタンスにアタッチすると、DoD 同意バナーは表示されません。値が の場合`Yes`、STIG Linux コンポーネントのいずれかがインストールされているインスタンスにアタッチすると、ログイン前に DoD 同意バナーが表示されます。バナーはログインする前に確認する必要があります。デフォルトは `No` です。

  同意バナーの例については、DLA ドキュメントサービスのウェブサイトにアクセスしたときに表示される [Disclaimer Department of Defense Privacy and Consent Notice](https://dso.dla.mil/) を参照してください。

強化コンポーネントは、次のように Linux ディストリビューションに基づいてサポートされている STIG 設定を適用します。

**Red Hat Enterprise Linux (RHEL) 7 STIG 設定**
+ RHEL 7
+ CentOS 7
+ Amazon Linux 2 (AL2)

**RHEL 8 STIG 設定**
+ RHEL 8
+ CentOS 8

**RHEL 9 STIG 設定**
+ RHEL 9
+ CentOS Stream 9

### Linux STIG Low (Category III)
<a name="ib-linux-stig-low"></a>

次のリストには、コンポーネント強化がインフラストラクチャーに適用される STIG 設定が含まれています。サポートされている設定がご使用のインフラストラクチャに当てはまらない場合、強化コンポーネントはその設定をスキップして次に進みます。例えば、一部の STIG 設定は、スタンドアロンサーバーには適用されない場合があります。組織固有のポリシーは、管理者が文書設定をレビューするための要件など、堅牢化コンポーネントが適用する設定にも影響します。

詳細なリストについては、「[STIGs Document Library](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=operating-systems%2Cunix-linux)」を参照してください。完全なリストを表示する方法の詳細については、「[STIG 表示ツール](https://public.cyber.mil/stigs/srg-stig-tools/)」を参照してください。

**RHEL 7 STIG バージョン 3 リリース 15**
+ 

**RHEL 7/CentOS 7/AL2**  
V-204452、V-204576、および V-204605

**RHEL 8 STIG バージョン 2 リリース 6**
+ 

**RHEL 8/CentOS 8**  
V-230241, V-230269, V-230270, V-230281, V-230285, V-230346, V-230381, V-230395, V-230468, V-230469, V-230485, V-230486, V-230491, V-230494, V-230495, V-230496, V-230497, V-230498, V-230499, and V-244527

**RHEL 9 STIG バージョン 2 リリース 7**
+ 

**RHEL 9/CentOS Stream 9**  
V-257782, V-257824, V-258138, V-258037, V-257880, V-258069, V-258076, V-258067, V-257946, V-257947, V-257795, V-257796、および V-258173

**Amazon Linux 2023 STIG バージョン 1 リリース 2**

V-274141

**SLES 12 STIG バージョン 3 リリース 4**

V-217108, V-217113, V-217140, V-217198, V-217209, V-217211, V-217212, V-217213, V-217214, V-217215, V-217216, V-217236, V-217237, V-217238, V-217239, V-217282, V-255915

**SLES 15 STIG バージョン 2 リリース 6**

V-234811, V-234850, V-234868, V-234873, V-234905, V-234907, V-234908, V-234909, V-234933, V-234934, V-234935, V-234936, V-234955, V-234963, V-234967、および V-255921

**Ubuntu 18.04 STIG バージョン 2 リリース 15**

V-219163, V-219164, V-219165, V-219172, V-219173, V-219174, V-219175, V-219178, V-219179, V-219180, V-219210, V-219301, V-219327, V-219332, V-219333

**Ubuntu 20.04 STIG バージョン 2 リリース 4**

V-238202, V-238203, V-238221, V-238222, V-238223, V-238224, V-238226, V-238234, V-238235, V-238237, V-238308, V-238323, V-238357, V-238362, V-238373

**Ubuntu 22.04 STIG バージョン 2 リリース 7**

V-260472、V-260476、V-260479、V-260480、V-260481、V-260520、V-260521、V-260549、V-260550、V-260551、V-260552、V-260581、V-260596

**Ubuntu 24.04 STIG バージョン 1 リリース 4**

V-270645, V-270646, V-270664, V-270677, V-270690, V-270695, V-270706, V-270710, V-270734, V-270749, V-270752, V-270818、および V-270820

### Linux STIG Medium (Category II)
<a name="ib-linux-stig-medium"></a>

次のリストには、コンポーネント強化がインフラストラクチャーに適用される STIG 設定が含まれています。サポートされている設定がご使用のインフラストラクチャに当てはまらない場合、強化コンポーネントはその設定をスキップして次に進みます。例えば、一部の STIG 設定は、スタンドアロンサーバーには適用されない場合があります。組織固有のポリシーは、管理者が文書設定をレビューするための要件など、堅牢化コンポーネントが適用する設定にも影響します。

詳細なリストについては、「[STIGs Document Library](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=operating-systems%2Cunix-linux)」を参照してください。完全なリストを表示する方法の詳細については、「[STIG 表示ツール](https://public.cyber.mil/stigs/srg-stig-tools/)」を参照してください。

**注記**  
Linux STIG Medium 強化コンポーネントには、カテゴリ II の脆弱性専用にリストされている STIG 設定に加えて、Linux STIG Low 強化コンポーネント AWSTOE に適用されるすべてのリストされた STIG 設定が含まれます。

**RHEL 7 STIG バージョン 3 リリース 15**

この Linux ディストリビューションのCategory III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。
+ 

**RHEL 7/CentOS 7/AL2**  
V-204405、 V-204406、 V-204407、 V-204408、 V-204409、 V-204410、 V-204411、 V-204412、 V-204413、 V-204414、 V-204415、 V-204416、 V-204417、 V-204418、 V-204420、 V-204422、 V-204423、 V-204426、 V-204427、 V-204431、 V-204434、 V-204435、 V-204437、 V-204449、 V-204450、 V-204451、 V-204457、 V-204466、 V-204490、 V-204491、 V-204503、 V-204507、 V-204508、 V-204510、 V-204511、 V-204512、 V-204514、 V-204515、 V-204516、 V-204517、 V-204521、 V-204524、 V-204531、 V-204536、 V-204537、 V-204538、 V-204539、 V-204540、 V-204541、 V-204542、 V-204543、 V-204544、 V-204545、 V-204546、 V-204547、 V-204548、 V-204549、 V-204550、 V-204551、 V-204552、 V-204553、 V-204554、 V-204555、 V-204556、 V-204557、 V-204558、 V-204559、 V-204560、 V-204562、 V-204563、 V-204564、 V-204565、 V-204566、 V-204567、 V-204568、 V-204572、 V-204579、 V-204584、 V-204585、 V-204587、 V-204588、 V-204589、 V-204590、 V-204591、 V-204592、 V-204593、 V-204596、 V-204597、 V-204598、 V-204599、 V-204600、 V-204601、 V-204602、 V-204609、 V-204610、 V-204611、 V-204612、 V-204613、 V-204614、 V-204615、 V-204616、 V-204617、 V-204619、 V-204622、 V-204625、 V-204630、 V-204631、 V-204633、 V-233307、 V-237634、 V-237635、 V-251703、 V-255925、 V-255927、 V-255928、 および V-256970

**RHEL 8 STIG バージョン 2 リリース 6**

この Linux ディストリビューションのCategory III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。
+ 

**RHEL 8/CentOS 8**  
V-230222、 V-230228、 V-230231、 V-230233、 V-230236、 V-230237、 V-230238、 V-230239、 V-230240、 V-230240、 V-230243、 V-230244、 V-230245、 V-230246、 V-230247、 V-230248、 V-230249、 V-230250、 V-230255、 V-230256、 V-230257、 V-230258、 V-230259、 V-230260、 V-230261、 V-230262、 V-230266、 V-230267、 V-230268、 V-230271、 V-230273、 V-230275、 V-230276、 V-230277、 V-230278、 V-230279、 V-230280、 V-230282、 V-230282、 V-230286、 V-230287、 V-230288、 V-230290、 V-230291、 V-230296、 V-230298、 V-230310、 V-230311、 V-230312、 V-230313、 V-230314、 V-230315、 V-230316、 V-230318、 V-230319、 V-230320、 V-230321、 V-230322、 V-230324、 V-230325、 V-230326、 V-230327、 V-230330、 V-230332、 V-230333、 V-230335、 V-230337、 V-230339、 V-230341、 V-230343、 V-230345、 V-230347、 V-230348、 V-230352、 V-230353、 V-230354、 V-230356、 V-230357、 V-230358、 V-230359、 V-230360、 V-230361、 V-230362、 V-230363、 V-230365、 V-230366、 V-230368、 V-230369、 V-230370、 V-230372、 V-230373、 V-230375、 V-230376、 V-230377、 V-230378、 V-230380、 V-230382、 V-230383、 V-230385、 V-230386、 V-230387、 V-230389、 V-230390、 V-230392、 V-230393、 V-230394、 V-230396、 V-230397、 V-230398、 V-230399、 V-230400、 V-230401、 V-230402、 V-230403、 V-230404、 V-230405、 V-230406、 V-230407、 V-230408、 V-230409、 V-230410、 V-230411、 V-230412、 V-230413、 V-230418、 V-230419、 V-230421、 V-230422、 V-230423、 V-230424、 V-230425、 V-230426、 V-230427、 V-230428、 V-230429、 V-230430、 V-230431、 V-230432、 V-230433、 V-230434、 V-230435、 V-230436、 V-230437、 V-230438、 V-230439、 V-230444、 V-230446、 V-230447、 V-230448、 V-230449、 V-230455、 V-230456、 V-230462、 V-230463、 V-230464、 V-230465、 V-230466、 V-230467、 V-230470、 V-230471、 V-230472、 V-230473、 V-230474、 V-230475、 V-230478、 V-230480、 V-230481、 V-230482、 V-230483、 V-230488、 V-230489、 V-230493、 V-230502、 V-230503、 V-230505、 V-230506、 V-230507、 V-230523、 V-230524、 V-230525、 V-230526、 V-230527、 V-230532、 V-230535、 V-230536、 V-230537、 V-230538、 V-230539、 V-230540、 V-230541、 V-230542、 V-230543、 V-230544、 V-230545、 V-230546、 V-230547、 V-230548、 V-230549、 V-230550、 V-230555、 V-230556、 V-230557、 V-230559、 V-230560、 V-230561、 V-237640、 V-237642、 V-237643、 V-244519、 V-244523、 V-244524、 V-244525、 V-244526、 V-244528、 V-244531、 V-244533、 V-244535、 V-244536、 V-244538、 V-244539、 V-244542、 V-244543、 V-244544、 V-244545、 V-244547、 V-244550、 V-244551、 V-244552、 V-244553、 V-244554、 V-250315、 V-250315、 V-250315、 V-250316、 V-250316、 V-250317、 V-251707、 V-251708、 V-251709、 V-251710、 V-251711、 V-251713、 V-251714、 V-251715、 V-251716、 V-251717、 V-251718、 V-256974、 V-257258、 V-257258、 V-274877、 V-279929、 V-279930、 および V-279931

**RHEL 9 STIG バージョン 2 リリース 7**

この Linux ディストリビューションのCategory III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。
+ 

**RHEL 9/CentOS Stream 9**  
V-257780、 V-257781、 V-257783、 V-257786、 V-257788、 V-257790、 V-257791、 V-257792、 V-257793、 V-257794、 V-257797、 V-257798、 V-257799、 V-257800、 V-257801、 V-257802、 V-257803、 V-257804、 V-257805、 V-257806、 V-257807、 V-257808、 V-257809、 V-257810、 V-257811、 V-257812、 V-257813、 V-257814、 V-257815、 V-257816、 V-257817、 V-257818、 V-257825、 V-257827、 V-257828、 V-257829、 V-257830、 V-257831、 V-257832、 V-257833、 V-257834、 V-257836、 V-257838、 V-257839、 V-257840、 V-257841、 V-257842、 V-257849、 V-257882、 V-257883、 V-257884、 V-257885、 V-257886、 V-257887、 V-257888、 V-257889、 V-257890、 V-257891、 V-257892、 V-257893、 V-257894、 V-257895、 V-257896、 V-257897、 V-257898、 V-257899、 V-257900、 V-257901、 V-257902、 V-257903、 V-257904、 V-257905、 V-257906、 V-257907、 V-257908、 V-257909、 V-257910、 V-257911、 V-257912、 V-257913、 V-257914、 V-257915、 V-257916、 V-257917、 V-257918、 V-257919、 V-257920、 V-257921、 V-257922、 V-257923、 V-257924、 V-257925、 V-257926、 V-257927、 V-257928、 V-257929、 V-257930、 V-257933、 V-257934、 V-257935、 V-257936、 V-257939、 V-257940、 V-257942、 V-257943、 V-257944、 V-257948、 V-257951、 V-257952、 V-257953、 V-257954、 V-257957、 V-257958、 V-257959、 V-257960、 V-257961、 V-257962、 V-257963、 V-257964、 V-257965、 V-257966、 V-257967、 V-257968、 V-257969、 V-257970、 V-257971、 V-257972、 V-257973、 V-257974、 V-257975、 V-257976、 V-257977、 V-257978、 V-257979、 V-257980、 V-257982、 V-257983、 V-257985、 V-257987、 V-257988、 V-257992、 V-257993、 V-257994、 V-257995、 V-257996、 V-257997、 V-257998、 V-257999、 V-258000、 V-258001、 V-258002、 V-258003、 V-258004、 V-258005、 V-258006、 V-258007、 V-258008、 V-258009、 V-258010、 V-258011、 V-258028、 V-258034、 V-258035、 V-258038、 V-258039、 V-258040、 V-258041、 V-258043、 V-258046、 V-258049、 V-258052、 V-258054、 V-258055、 V-258056、 V-258057、 V-258060、 V-258063、 V-258064、 V-258065、 V-258066、 V-258068、 V-258070、 V-258071、 V-258072、 V-258073、 V-258074、 V-258075、 V-258077、 V-258079、 V-258080、 V-258081、 V-258082、 V-258083、 V-258084、 V-258085、 V-258088、 V-258089、 V-258090、 V-258091、 V-258092、 V-258093、 V-258095、 V-258097、 V-258098、 V-258099、 V-258100、 V-258101、 V-258102、 V-258103、 V-258104、 V-258105、 V-258107、 V-258108、 V-258109、 V-258110、 V-258111、 V-258112、 V-258113、 V-258114、 V-258115、 V-258116、 V-258117、 V-258118、 V-258119、 V-258120、 V-258121、 V-258122、 V-258123、 V-258124、 V-258125、 V-258126、 V-258128、 V-258129、 V-258130、 V-258133、 V-258137、 V-258140、 V-258141、 V-258142、 V-258144、 V-258145、 V-258146、 V-258147、 V-258148、 V-258150、 V-258151、 V-258152、 V-258153、 V-258154、 V-258156、 V-258157、 V-258158、 V-258159、 V-258160、 V-258161、 V-258162、 V-258163、 V-258164、 V-258165、 V-258166、 V-258167、 V-258168、 V-258169、 V-258170、 V-258171、 V-258172、 V-258175、 V-258176、 V-258177、 V-258178、 V-258179、 V-258180、 V-258181、 V-258182、 V-258183、 V-258184、 V-258185、 V-258186、 V-258187、 V-258188、 V-258189、 V-258190、 V-258191、 V-258192、 V-258193、 V-258194、 V-258195、 V-258196、 V-258197、 V-258198、 V-258199、 V-258200、 V-258201、 V-258202、 V-258203、 V-258204、 V-258205、 V-258206、 V-258207、 V-258208、 V-258209、 V-258210、 V-258211、 V-258212、 V-258213、 V-258214、 V-258215、 V-258216、 V-258217、 V-258218、 V-258219、 V-258220、 V-258221、 V-258222、 V-258223、 V-258224、 V-258225、 V-258226、 V-258227、 V-258228、 V-258229、 V-258232、 V-258233、 V-258234、 V-258237、 V-258239、 V-258240、 V-270174、 V-270175、 V-270176、 V-270177、 V-272488、 および V-279936

**Amazon Linux 2023 STIG バージョン 1 リリース 2**

この Linux ディストリビューションのCategory III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。

V-273995、 V-274000、 V-274001、 V-274002、 V-274003、 V-274004、 V-274005、 V-274006、 V-274008、 V-274009、 V-274010、 V-274011、 V-274012、 V-274013、 V-274014、 V-274017、 V-274018、 V-274019、 V-274020、 V-274021、 V-274022、 V-274023、 V-274024、 V-274026、 V-274027、 V-274028、 V-274030、 V-274031、 V-274032、 V-274033、 V-274034、 V-274035、 V-274036、 V-274037、 V-274040、 V-274041、 V-274042、 V-274044、 V-274045、 V-274047、 V-274048、 V-274049、 V-274050、 V-274051、 V-274053、 V-274054、 V-274059、 V-274061、 V-274062、 V-274069、 V-274070、 V-274071、 V-274072、 V-274073、 V-274074、 V-274075、 V-274076、 V-274077、 V-274078、 V-274079、 V-274081、 V-274082、 V-274083、 V-274084、 V-274085、 V-274086、 V-274087、 V-274088、 V-274089、 V-274090、 V-274091、 V-274092、 V-274093、 V-274094、 V-274095、 V-274096、 V-274097、 V-274098、 V-274099、 V-274100、 V-274101、 V-274102、 V-274103、 V-274104、 V-274105、 V-274106、 V-274107、 V-274108、 V-274109、 V-274110、 V-274111、 V-274112、 V-274113、 V-274114、 V-274115、 V-274116、 V-274117、 V-274119、 V-274120、 V-274121、 V-274122、 V-274123、 V-274124、 V-274125、 V-274126、 V-274127、 V-274128、 V-274129、 V-274130、 V-274131、 V-274132、 V-274133、 V-274134、 V-274135、 V-274136、 V-274137、 V-274138、 V-274139、 V-274140、 V-274142、 V-274143、 V-274144、 V-274145、 V-274147、 V-274149、 V-274151、 V-274152、 V-274154、 V-274155、 V-274156、 V-274157、 V-274160、 V-274161、 V-274162、 V-274163、 V-274164、 V-274165、 V-274166、 V-274167、 V-274168、 V-274169、 V-274170、 V-274173、 V-274177、 V-274181、 V-274182、 V-274185、 および V-274187

**SLES 12 STIG バージョン 3 リリース 4**

この Linux ディストリビューションのCategory III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。

V-217102、 V-217105、 V-217105、 V-217106、 V-217106、 V-217110、 V-217116、 V-217117、 V-217118、 V-217119、 V-217120、 V-217121、 V-217122、 V-217124、 V-217125、 V-217126、 V-217127、 V-217128、 V-217130、 V-217134、 V-217138、 V-217143、 V-217147、 V-217152、 V-217153、 V-217154、 V-217155、 V-217156、 V-217158、 V-217161、 V-217163、 V-217166、 V-217167、 V-217168、 V-217169、 V-217170、 V-217171、 V-217182、 V-217183、 V-217188、 V-217190、 V-217191、 V-217194、 V-217195、 V-217196、 V-217197、 V-217200、 V-217201、 V-217202、 V-217203、 V-217204、 V-217205、 V-217206、 V-217207、 V-217208、 V-217210、 V-217217、 V-217218、 V-217223、 V-217227、 V-217230、 V-217240、 V-217241、 V-217242、 V-217243、 V-217244、 V-217245、 V-217246、 V-217247、 V-217248、 V-217249、 V-217250、 V-217251、 V-217252、 V-217253、 V-217254、 V-217255、 V-217257、 V-217258、 V-217260、 V-217265、 V-217266、 V-217267、 V-217269、 V-217272、 V-217273、 V-217274、 V-217275、 V-217276、 V-217277、 V-217278、 V-217279、 V-217280、 V-217283、 V-217284、 V-217286、 V-217287、 V-217288、 V-217289、 V-217290、 V-217291、 V-217292、 V-217293、 V-217294、 V-217295、 V-217296、 V-217299、 V-217300、 V-217301、 V-217302、 V-233308、 V-237605、 V-237606、 V-237607、 V-237608、 V-237609、 V-237610、 V-237611、 V-237612、 V-237613、 V-237614、 V-237615、 V-237616、 V-237617、 V-237618、 V-237619、 V-237620、 V-237621、 V-237622、 V-237623、 V-251720、 V-251722、 V-255914、 および V-256981

**SLES 15 STIG バージョン 2 リリース 6**

この Linux ディストリビューションのCategory III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。

V-234802、 V-234807、 V-234808、 V-234809、 V-234813、 V-234815、 V-234817、 V-234821、 V-234822、 V-234823、 V-234825、 V-234827、 V-234828、 V-234829、 V-234830、 V-234832、 V-234833、 V-234834、 V-234835、 V-234836、 V-234837、 V-234838、 V-234839、 V-234840、 V-234841、 V-234842、 V-234843、 V-234844、 V-234845、 V-234848、 V-234854、 V-234855、 V-234856、 V-234857、 V-234858、 V-234861、 V-234862、 V-234863、 V-234869、 V-234870、 V-234875、 V-234878、 V-234880、 V-234881、 V-234882、 V-234883、 V-234884、 V-234885、 V-234886、 V-234887、 V-234888、 V-234889、 V-234891、 V-234895、 V-234896、 V-234897、 V-234899、 V-234900、 V-234901、 V-234902、 V-234903、 V-234904、 V-234906、 V-234910、 V-234911、 V-234912、 V-234913、 V-234914、 V-234918、 V-234924、 V-234928、 V-234932、 V-234937、 V-234938、 V-234939、 V-234940、 V-234941、 V-234942、 V-234943、 V-234944、 V-234945、 V-234946、 V-234947、 V-234948、 V-234949、 V-234950、 V-234951、 V-234952、 V-234954、 V-234956、 V-234957、 V-234958、 V-234959、 V-234961、 V-234962、 V-234964、 V-234966、 V-234969、 V-234973、 V-234975、 V-234976、 V-234977、 V-234978、 V-234979、 V-234981、 V-234982、 V-234983、 V-234991、 V-235002、 V-235003、 V-235007、 V-235008、 V-235009、 V-235010、 V-235013、 V-235014、 V-235015、 V-235016、 V-235017、 V-235018、 V-235019、 V-235020、 V-235021、 V-235022、 V-235023、 V-235024、 V-235025、 V-235026、 V-235028、 V-235029、 V-235030、 V-251724、 V-255920、 V-256983、 および V-274879

**Ubuntu 18.04 STIG バージョン 2 リリース 15**

この Linux ディストリビューションのCategory III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。

V-219149, V-219155, V-219156, V-219160, V-219166, V-219168, V-219176, V-219181, V-219184, V-219186, V-219188, V-219189, V-219190, V-219191, V-219192, V-219193, V-219194, V-219195, V-219196, V-219197, V-219198, V-219199, V-219200, V-219201, V-219202, V-219203, V-219204, V-219205, V-219206, V-219207, V-219208, V-219209, V-219213, V-219214, V-219215, V-219216, V-219217, V-219218, V-219219, V-219220, V-219221, V-219222, V-219223, V-219224, V-219225, V-219226, V-219227, V-219228, V-219229, V-219230, V-219231, V-219232, V-219233, V-219234, V-219235, V-219236, V-219238, V-219239, V-219240, V-219241, V-219242, V-219243, V-219244, V-219250, V-219254, V-219257, V-219263, V-219264, V-219265, V-219266, V-219267, V-219268, V-219269, V-219270, V-219271, V-219272, V-219273, V-219274, V-219275, V-219276, V-219277, V-219279, V-219281, V-219287, V-219291, V-219296, V-219297, V-219298, V-219299, V-219300, V-219303, V-219304, V-219306, V-219309, V-219310, V-219311, V-219315, V-219318, V-219319, V-219323, V-219326, V-219328, V-219330, V-219331, V-219335, V-219336, V-219337, V-219338, V-219339, V-219342, V-219344, V-233779, V-233780, V-255906

**Ubuntu 20.04 STIG バージョン 2 リリース 4**

この Linux ディストリビューションのCategory III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。

V-238200, V-238205, V-238207, V-238209, V-238210, V-238211, V-238212, V-238213, V-238220, V-238225, V-238227, V-238228, V-238229, V-238230, V-238231, V-238232, V-238236, V-238238, V-238239, V-238240, V-238241, V-238242, V-238244, V-238245, V-238246, V-238247, V-238248, V-238249, V-238250, V-238251, V-238252, V-238253, V-238254, V-238255, V-238256, V-238257, V-238258, V-238264, V-238268, V-238271, V-238277, V-238278, V-238279, V-238280, V-238281, V-238282, V-238283, V-238284, V-238285, V-238286, V-238287, V-238288, V-238289, V-238290, V-238291, V-238292, V-238293, V-238294, V-238295, V-238297, V-238298, V-238299, V-238300, V-238301, V-238302, V-238303, V-238304, V-238309, V-238310, V-238315, V-238316, V-238317, V-238318, V-238319, V-238320, V-238324, V-238325, V-238329, V-238330, V-238333, V-238334, V-238337, V-238338, V-238339, V-238340, V-238341, V-238342, V-238343, V-238344, V-238345, V-238346, V-238347, V-238348, V-238349, V-238350, V-238351, V-238352, V-238353, V-238355, V-238356, V-238359, V-238360, V-238369, V-238370, V-238371, V-238376, V-238377, V-238378, V-251505, V-255912, V-274852, V-274853

**Ubuntu 22.04 STIG バージョン 2 リリース 7**

この Linux ディストリビューションのCategory III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。

V-260471、 V-260473、 V-260474、 V-260475、 V-260475、 V-260477、 V-260478、 V-260485、 V-260486、 V-260487、 V-260488、 V-260489、 V-260490、 V-260491、 V-260492、 V-260493、 V-260494、 V-260495、 V-260496、 V-260497、 V-260498、 V-260499、 V-260500、 V-260505、 V-260506、 V-260507、 V-260508、 V-260509、 V-260510、 V-260511、 V-260512、 V-260513、 V-260514、 V-260522、 V-260527、 V-260528、 V-260530、 V-260533、 V-260534、 V-260535、 V-260537、 V-260538、 V-260540、 V-260542、 V-260543、 V-260545、 V-260546、 V-260547、 V-260553、 V-260554、 V-260555、 V-260556、 V-260557、 V-260560、 V-260561、 V-260562、 V-260563、 V-260564、 V-260565、 V-260566、 V-260567、 V-260569、 V-260572、 V-260573、 V-260574、 V-260575、 V-260576、 V-260582、 V-260584、 V-260585、 V-260586、 V-260588、 V-260589、 V-260590、 V-260591、 V-260594、 V-260597、 V-260598、 V-260599、 V-260600、 V-260601、 V-260602、 V-260603、 V-260604、 V-260605、 V-260606、 V-260607、 V-260608、 V-260609、 V-260610、 V-260611、 V-260612、 V-260613、 V-260614、 V-260615、 V-260616、 V-260617、 V-260618、 V-260619、 V-260620、 V-260621、 V-260622、 V-260623、 V-260624、 V-260625、 V-260626、 V-260627、 V-260628、 V-260629、 V-260630、 V-260631、 V-260632、 V-260633、 V-260634、 V-260635、 V-260636、 V-260637、 V-260638、 V-260639、 V-260640、 V-260641、 V-260642、 V-260643、 V-260644、 V-260645、 V-260646、 V-260647、 V-260648、 V-260649、 V-274862、 V-274864、 および V-274866

**Ubuntu 24.04 STIG バージョン 1 リリース 4**

この Linux ディストリビューションのCategory III (Low) の脆弱性に適用される、サポートされている STIG 設定に加えて、以下が含まれます。

V-270649, V-270651, V-270652, V-270653, V-270654, V-270656, V-270657, V-270659, V-270660, V-270661, V-270662, V-270663, V-270669, V-270672, V-270673, V-270674, V-270676, V-270678, V-270679, V-270680, V-270681, V-270683, V-270684, V-270685, V-270686, V-270687, V-270688, V-270689, V-270692, V-270693, V-270696, V-270697, V-270698, V-270699, V-270700, V-270701, V-270702, V-270703, V-270704, V-270705, V-270709, V-270715, V-270716, V-270718, V-270720, V-270721, V-270722, V-270723, V-270724, V-270725, V-270726, V-270727, V-270728, V-270729, V-270730, V-270731, V-270732, V-270733, V-270737, V-270739, V-270740, V-270741, V-270742, V-270743, V-270746, V-270750, V-270753, V-270755, V-270756, V-270757, V-270758, V-270759, V-270760, V-270765, V-270766, V-270767, V-270768, V-270769, V-270770, V-270771, V-270772, V-270773, V-270775, V-270776, V-270777, V-270778, V-270779, V-270780, V-270781, V-270782, V-270783, V-270784, V-270785, V-270786, V-270787, V-270788, V-270789, V-270790, V-270791, V-270792, V-270793, V-270794, V-270795, V-270796, V-270797, V-270798, V-270799, V-270800, V-270801, V-270802, V-270803, V-270804, V-270805, V-270806, V-270807, V-270808, V-270809, V-270810, V-270811, V-270812, V-270813, V-270814, V-270815, V-270821, V-270822, V-270823, V-270824, V-270825, V-270826, V-270827, V-270828, V-270829, V-270830, V-270831, V-270832, V-274870, V-274871, V-274872, V-274873

### Linux STIG High (Category I)
<a name="ib-linux-stig-high"></a>

次のリストには、コンポーネント強化がインフラストラクチャーに適用される STIG 設定が含まれています。サポートされている設定がご使用のインフラストラクチャに当てはまらない場合、強化コンポーネントはその設定をスキップして次に進みます。例えば、一部の STIG 設定は、スタンドアロンサーバーには適用されない場合があります。組織固有のポリシーは、管理者が文書設定をレビューするための要件など、堅牢化コンポーネントが適用する設定にも影響します。

詳細なリストについては、「[STIGs Document Library](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=operating-systems%2Cunix-linux)」を参照してください。完全なリストを表示する方法の詳細については、「[STIG 表示ツール](https://public.cyber.mil/stigs/srg-stig-tools/)」を参照してください。

**注記**  
Linux STIG 高強化コンポーネントには、カテゴリ I の脆弱性に特に AWSTOE 適用されるリストされた STIG 設定に加えて、Linux STIG Low および Linux STIG Medium 強化コンポーネントに適用されるリストされたすべての STIG 設定が含まれます。

**RHEL 7 STIG バージョン 3 リリース 15**

この Linux ディストリビューションのCategory II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。
+ 

**RHEL 7/CentOS 7/AL2**  
V-204424, V-204425, V-204442, V-204443, V-204447, V-204448, V-204455, V-204462, V-204497, V-204497, V-204502, V-204594, V-204620、および V-204621

**RHEL 8 STIG バージョン 2 リリース 6**

この Linux ディストリビューションのCategory II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。
+ 

**RHEL 8/CentOS 8**  
V-230223, V-230264, V-230283, V-230284, V-230487, V-230492, V-230533, V-230558, V-244540, V-279933, V-230265, V-230226, V-230530, V-268322, V-230529、および V-230531

**RHEL 9 STIG バージョン 2 リリース 7**

この Linux ディストリビューションのCategory II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。
+ 

**RHEL 9/CentOS Stream 9**  
V-257820, V-257821, V-257826, V-257835, V-257955, V-257956, V-258059, V-258230, V-258238, V-257984, V-257986, V-258078, V-258094, V-258235, V-257784、および V-257785

**Amazon Linux 2023 STIG バージョン 1 リリース 2**

この Linux ディストリビューションのCategory II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。

V-273996, V-273997, V-273999, V-274007, V-274038, V-274039, V-274046, V-274052, V-274057, V-274153

**SLES 12 STIG バージョン 3 リリース 4**

この Linux ディストリビューションのCategory II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。

 V-217101, V-217139, V-217141, V-217142, V-217159, V-217160, V-217164, V-217264, V-217268, V-222386、および V-251721

**SLES 15 STIG バージョン 2 リリース 6**

この Linux ディストリビューションのCategory II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。

V-234800, V-234804, V-234818, V-234852, V-234859, V-234860, V-234898, V-234984, V-234985, V-234988, V-234989, V-234990, V-235031, V-235032, V-251725

**Ubuntu 18.04 STIG バージョン 2 リリース 15**

この Linux ディストリビューションのCategory II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。

V-219157, V-219158, V-219177, V-219212, V-219308, V-219314, V-219316、および V-251507

**Ubuntu 20.04 STIG バージョン 2 リリース 4**

この Linux ディストリビューションのCategory II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。

V-238201, V-238218, V-238219, V-238326, V-238327, V-238380, V-251504

**Ubuntu 22.04 STIG バージョン 2 リリース 7**

この Linux ディストリビューションのCategory II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。

V-260469, V-260482, V-260483, V-260523, V-260524, V-260526, V-260529, V-260539, V-260570, V-260571, V-260579、および V-279937

**Ubuntu 24.04 STIG バージョン 1 リリース 4**

この Linux ディストリビューションのCategory II および III (Medium および Low) の脆弱性に適用されるすべての STIG 設定に加えて、以下が含まれます。

V-270647, V-270648, V-270665, V-270666, V-270708, V-270711, V-270712, V-270713, V-270714, V-270717, V-270736, V-270738、および V-279938

## Linux 用 STIG バージョン履歴ログ
<a name="ib-linux-version-hist"></a>

このセクションには Linux コンポーネントのバージョン履歴が記録されます。四半期ごとの変更点と公開されたバージョンを確認するには、タイトルを選択して情報を展開してください。

### 2026 年Q1 四半期の変更 - 3/10/2026:
<a name="2026-q1-linux"></a>

次の STIG バージョンを更新し、2026 年第 1 四半期リリースの STIGsをすべてのコンプライアンスレベルに適用しました。

**STIG-Build-Linux**
+ RHEL 8 STIG バージョン 2 リリース 6
+ RHEL 9 STIG バージョン 2 リリース 7
+ Amazon Linux 2023 STIG バージョン 1 リリース 2
+ SLES 12 STIG バージョン 3 リリース 4
+ SLES 15 STIG バージョン 2 リリース 6
+ Ubuntu 20.04 STIG バージョン 2 リリース 4
+ Ubuntu 22.04 STIG バージョン 2 リリース 7
+ Ubuntu 24.04 STIG バージョン 1 リリース 4

### 2025 年第 3 四半期の変更 - 2025 年 9 月 4 日:
<a name="2025-q3-linux"></a>

SUSE Linux Enterprise Server (SLES) オペレーティングシステムと Amazon Linux 2023 のサポートが追加されました。次の STIG バージョンを更新し、2025 年第 3 四半期リリースの STIG をすべてのコンプライアンスレベル (低/中/高) に対して適用しました。
+ RHEL 7 STIG バージョン 3 リリース 15
+ RHEL 8 STIG バージョン 2 リリース 4
+ RHEL 9 STIG バージョン 2 リリース 5
+ Amazon Linux 2023 STIG バージョン 1 リリース 1
+ SLES 12 STIG バージョン 3 リリース 3
+ SLES 15 STIG バージョン 2 リリース 5
+ Ubuntu 18.04 STIG バージョン 2 リリース 15
+ Ubuntu 20.04 STIG バージョン 2 リリース 3
+ Ubuntu 22.04 STIG バージョン 2 リリース 5
+ Ubuntu 24.04 STIG バージョン 1 リリース 2

### 2025 年第 2 四半期の変更 - 2025 年 6 月 26 日:
<a name="2025-q2-linux"></a>

次の STIG のバージョンを更新し、2025 年第 2 四半期のリリースに対して STIGS を適用しました。

**STIG-Build-Linux-Low バージョン 2025.2.x**
+ RHEL 7 STIG バージョン 3 リリース 15
+ RHEL 8 STIG バージョン 2 リリース 3
+ RHEL 9 STIG バージョン 2 リリース 4
+ Ubuntu 18.04 STIG バージョン 2 リリース 15
+ Ubuntu 20.04 STIG バージョン 2 リリース 2
+ Ubuntu 22.04 STIG バージョン 2 リリース 4
+ Ubuntu 24.04 STIG バージョン 1 リリース 1

**STIG-Build-Linux-Medium バージョン 2025.2.x**
+ RHEL 7 STIG バージョン 3 リリース 15
+ RHEL 8 STIG バージョン 2 リリース 3
+ RHEL 9 STIG バージョン 2 リリース 4
+ Ubuntu 18.04 STIG バージョン 2 リリース 15
+ Ubuntu 20.04 STIG バージョン 2 リリース 2
+ Ubuntu 22.04 STIG バージョン 2 リリース 4
+ Ubuntu 24.04 STIG バージョン 1 リリース 1

**STIG-Build-Linux-High バージョン 2025.2.x**
+ RHEL 7 STIG バージョン 3 リリース 15
+ RHEL 8 STIG バージョン 2 リリース 3
+ RHEL 9 STIG バージョン 2 リリース 4
+ Ubuntu 18.04 STIG バージョン 2 リリース 15
+ Ubuntu 20.04 STIG バージョン 2 リリース 2
+ Ubuntu 22.04 STIG バージョン 2 リリース 4
+ Ubuntu 24.04 STIG バージョン 1 リリース 1

### 2025 年第 1 四半期の変更 - 2025 年 4 月 11 日:
<a name="2025-q1-linux"></a>

次の STIG バージョンを更新し、2025 年第 1 四半期リリースに対して STIGS を適用し、Ubuntu 24.04 のサポートを追加しました。

**STIG-Build-Linux-Low バージョン 2025.1.x**
+ RHEL 7 STIG バージョン 3 リリース 15
+ RHEL 8 STIG バージョン 2 リリース 2
+ RHEL 9 STIG バージョン 2 リリース 3
+ Ubuntu 18.04 STIG バージョン 2 リリース 15
+ Ubuntu 20.04 STIG バージョン 2 リリース 2
+ Ubuntu 22.04 STIG バージョン 2 リリース 3
+ Ubuntu 24.04 STIG バージョン 1 リリース 1

**STIG-Build-Linux-Medium バージョン 2025.1.x**
+ RHEL 7 STIG バージョン 3 リリース 15
+ RHEL 8 STIG バージョン 2 リリース 2
+ RHEL 9 STIG バージョン 2 リリース 3
+ Ubuntu 18.04 STIG バージョン 2 リリース 15
+ Ubuntu 20.04 STIG バージョン 2 リリース 2
+ Ubuntu 22.04 STIG バージョン 2 リリース 3
+ Ubuntu 24.04 STIG バージョン 1 リリース 1

**STIG-Build-Linux-High バージョン 2025.1.x**
+ RHEL 7 STIG バージョン 3 リリース 15
+ RHEL 8 STIG バージョン 2 リリース 2
+ RHEL 9 STIG バージョン 2 リリース 3
+ Ubuntu 18.04 STIG バージョン 2 リリース 15
+ Ubuntu 20.04 STIG バージョン 2 リリース 2
+ Ubuntu 22.04 STIG バージョン 2 リリース 3
+ Ubuntu 24.04 STIG バージョン 1 リリース 1

### 2024 年第 4 四半期の変更 - 2024 年 12 月 10 日:
<a name="2024-q4-linux"></a>

次の STIG バージョンを更新し、2024 年第 4 四半期リリースに対して STIGS を適用し、Linux コンポーネントの 2 つの新しい入力パラメータに関する情報を追加しました。

**STIG-Build-Linux-Low バージョン 2024.4.x**
+ RHEL 7 STIG バージョン 3 リリース 15
+ RHEL 8 STIG バージョン 2 リリース 1
+ RHEL 9 STIG バージョン 2 リリース 2
+ Ubuntu 18.04 STIG バージョン 2 リリース 15
+ Ubuntu 20.04 STIG バージョン 2 リリース 1
+ Ubuntu 22.04 STIG バージョン 2 リリース 2

**STIG-Build-Linux-Medium バージョン 2024.4.x**
+ RHEL 7 STIG バージョン 3 リリース 15
+ RHEL 8 STIG バージョン 2 リリース 1
+ RHEL 9 STIG バージョン 2 リリース 2
+ Ubuntu 18.04 STIG バージョン 2 リリース 15
+ Ubuntu 20.04 STIG バージョン 2 リリース 1
+ Ubuntu 22.04 STIG バージョン 2 リリース 2

**STIG-Build-Linux-High バージョン 2024.4.x**
+ RHEL 7 STIG バージョン 3 リリース 15
+ RHEL 8 STIG バージョン 2 リリース 1
+ RHEL 9 STIG バージョン 2 リリース 2
+ Ubuntu 18.04 STIG バージョン 2 リリース 15
+ Ubuntu 20.04 STIG バージョン 2 リリース 1
+ Ubuntu 22.04 STIG バージョン 2 リリース 2

### 2024 年第 3 四半期の変更-2024 年 10 月 4 日 (変更なし):
<a name="2024-q3-linux"></a>

2024 年第 3 四半期リリースに対する Linux コンポーネント STIGS に変更はありませんでした。

### 2024 年第 2 四半期の変更 - 2024 年 5 月 10 日:
<a name="2024-q2-linux"></a>

STIG バージョンを更新し、2024 年第 2 四半期リリースの STIG を適用しました。また、RHEL 9、CentOS Stream 9、Ubuntu 22.04 のサポートを以下のように追加しました。

**STIG-Build-Linux-Low バージョン 2024.2.x**
+ RHEL 7 STIG バージョン 3 リリース 14
+ RHEL 8 STIG バージョン 1 リリース 14
+ RHEL 9 STIG バージョン 1 リリース 3
+ Ubuntu 18.04 STIG バージョン 2 リリース 14
+ Ubuntu 20.04 STIG バージョン 1 リリース 12
+ Ubuntu 22.04 STIG バージョン 1 リリース 1

**STIG-Build-Linux-Medium バージョン 2024.2.x**
+ RHEL 7 STIG バージョン 3 リリース 14
+ RHEL 8 STIG バージョン 1 リリース 14
+ RHEL 9 STIG バージョン 1 リリース 3
+ Ubuntu 18.04 STIG バージョン 2 リリース 14
+ Ubuntu 20.04 STIG バージョン 1 リリース 12
+ Ubuntu 22.04 STIG バージョン 1 リリース 1

**STIG-Build-Linux-High バージョン 2024.2.x**
+ RHEL 7 STIG バージョン 3 リリース 14
+ RHEL 8 STIG バージョン 1 リリース 14
+ RHEL 9 STIG バージョン 1 リリース 3
+ Ubuntu 18.04 STIG バージョン 2 リリース 14
+ Ubuntu 20.04 STIG バージョン 1 リリース 12
+ Ubuntu 22.04 STIG バージョン 1 リリース 1

### 2024 年第 1 四半期の変更 - 2024 年 2 月 6 日:
<a name="2024-q1-linux"></a>

STIG バージョンを更新し、次のように 2024 年第 1 四半期リリースの STIG を適用しました。

**STIG-Build-Linux-Low バージョン 2024.1.x**
+ RHEL 7 STIG バージョン 3 リリース 14
+ RHEL 8 STIG バージョン 1 リリース 13
+ Ubuntu 18.04 STIG バージョン 2 リリース 13
+ Ubuntu 20.04 STIG バージョン 1 リリース 11

**STIG-Build-Linux-Medium バージョン 2024.1.x**
+ RHEL 7 STIG バージョン 3 リリース 14
+ RHEL 8 STIG バージョン 1 リリース 13
+ Ubuntu 18.04 STIG バージョン 2 リリース 13
+ Ubuntu 20.04 STIG バージョン 1 リリース 11

**STIG-Build-Linux-High バージョン 2024.1.x**
+ RHEL 7 STIG バージョン 3 リリース 14
+ RHEL 8 STIG バージョン 1 リリース 13
+ Ubuntu 18.04 STIG バージョン 2 リリース 13
+ Ubuntu 20.04 STIG バージョン 1 リリース 11

### 2023 年第 4 四半期の変更 - 2023 年 12 月 7 日:
<a name="2023-q4-linux"></a>

STIG バージョンを更新し、次のように 2023 年第 4 四半期リリースの STIG を適用しました。

**STIG-Build-Linux-Low バージョン 2023.4.x**
+ RHEL 7 STIG バージョン 3 リリース 13
+ RHEL 8 STIG バージョン 1 リリース 12
+ Ubuntu 18.04 STIG バージョン 2 リリース 12
+ Ubuntu 20.04 STIG バージョン 1 リリース 10

**STIG-Build-Linux-Medium バージョン 2023.4.x**
+ RHEL 7 STIG バージョン 3 リリース 13
+ RHEL 8 STIG バージョン 1 リリース 12
+ Ubuntu 18.04 STIG バージョン 2 リリース 12
+ Ubuntu 20.04 STIG バージョン 1 リリース 10

**STIG-Build-Linux-High バージョン 2023.4.x**
+ RHEL 7 STIG バージョン 3 リリース 13
+ RHEL 8 STIG バージョン 1 リリース 12
+ Ubuntu 18.04 STIG バージョン 2 リリース 12
+ Ubuntu 20.04 STIG バージョン 1 リリース 10

### 2023 年第 3 四半期の変更-2023 年 4 月 10 日:
<a name="2023-q3-linux"></a>

2023 年第 3 四半期リリースに向けて STIG バージョンを更新し、STIG を次のように適用しました。

**STIG-Build-Linux-Low バージョン2023.3.x**
+ RHEL 7 STIG バージョン 3 リリース 12
+ RHEL 8 STIG バージョン 1 リリース 11
+ Ubuntu 18.04 STIG バージョン 2 リリース 11
+ Ubuntu 20.04 STIG バージョン 1 リリース 9

**STIG-Build-Linux-Medium バージョン2023.3.x**
+ RHEL 7 STIG バージョン 3 リリース 12
+ RHEL 8 STIG バージョン 1 リリース 11
+ Ubuntu 18.04 STIG バージョン 2 リリース 11
+ Ubuntu 20.04 STIG バージョン 1 リリース 9

**STIG-Build-Linux-High バージョン2023.3.x**
+ RHEL 7 STIG バージョン 3 リリース 12
+ RHEL 8 STIG バージョン 1 リリース 11
+ Ubuntu 18.04 STIG バージョン 2 リリース 11
+ Ubuntu 20.04 STIG バージョン 1 リリース 9

### 2023 第 2 四半期の変更-2023 年 5 月 3 日:
<a name="2023-q2-linux"></a>

2023 年第 2 四半期リリースに向けて STIG バージョンを更新し、STIG を次のように適用しました。

**STIG-Build-Linux-Low バージョン2023.2.x**
+ RHEL 7 STIG バージョン 3 リリース 11
+ RHEL 8 STIG バージョン 1 リリース 10
+ Ubuntu 18.04 STIG バージョン 2 リリース 11
+ Ubuntu 20.04 STIG バージョン 1 リリース 8

**STIG-Build-Linux-Medium バージョン2023.2.x**
+ RHEL 7 STIG バージョン 3 リリース 11
+ RHEL 8 STIG バージョン 1 リリース 10
+ Ubuntu 18.04 STIG バージョン 2 リリース 11
+ Ubuntu 20.04 STIG バージョン 1 リリース 8

**STIG-Build-Linux-High バージョン2023.2.x**
+ RHEL 7 STIG バージョン 3 リリース 11
+ RHEL 8 STIG バージョン 1 リリース 10
+ Ubuntu 18.04 STIG バージョン 2 リリース 11
+ Ubuntu 20.04 STIG バージョン 1 リリース 8

### 2023 年第 1 四半期の変更-2023 年 3 月 27 日:
<a name="2023-q1-linux"></a>

2023 年第 1 四半期リリースに向けて STIG バージョンを更新し、STIG を次のように適用しました。

**STIG-Build-Linux-Low バージョン2023.1.x**
+ RHEL 7 STIG バージョン 3 リリース 10
+ RHEL 8 STIG バージョン 1 リリース 9
+ Ubuntu 18.04 STIG バージョン 2 リリース 10
+ Ubuntu 20.04 STIG バージョン 1 リリース 7

**STIG-Build-Linux-Medium バージョン2023.1.x**
+ RHEL 7 STIG バージョン 3 リリース 10
+ RHEL 8 STIG バージョン 1 リリース 9
+ Ubuntu 18.04 STIG バージョン 2 リリース 10
+ Ubuntu 20.04 STIG バージョン 1 リリース 7

**STIG-Build-Linux-High バージョン2023.1.x**
+ RHEL 7 STIG バージョン 3 リリース 10
+ RHEL 8 STIG バージョン 1 リリース 9
+ Ubuntu 18.04 STIG バージョン 2 リリース 10
+ Ubuntu 20.04 STIG バージョン 1 リリース 7

### 2022 年第 4 四半期の変更-2023 年 2 月 1 日:
<a name="2022-q4-linux"></a>

2022 年第 4 四半期リリースに向けて STIG バージョンを更新し、STIG を次のように適用しました。

**STIG-Build-Linux-Low バージョン2022.4.x**
+ RHEL 7 STIG バージョン 3 リリース 9
+ RHEL 8 STIG バージョン 1 リリース 8
+ Ubuntu 18.04 STIG バージョン 2 リリース 9
+ Ubuntu 20.04 STIG バージョン 1 リリース 6

**STIG-Build-Linux-Medium バージョン2022.4.x**
+ RHEL 7 STIG バージョン 3 リリース 9
+ RHEL 8 STIG バージョン 1 リリース 8
+ Ubuntu 18.04 STIG バージョン 2 リリース 9
+ Ubuntu 20.04 STIG バージョン 1 リリース 6

**STIG-Build-Linux-High バージョン2022.4.x**
+ RHEL 7 STIG バージョン 3 リリース 9
+ RHEL 8 STIG バージョン 1 リリース 8
+ Ubuntu 18.04 STIG バージョン 2 リリース 9
+ Ubuntu 20.04 STIG バージョン 1 リリース 6

### 2022 年第 3 四半期の変更-2022 年 9 月 30 日 (変更なし):
<a name="2022-q3-linux"></a>

2022 年第 3 四半期リリースの Linux コンポーネント STIGS には変更はありませんでした。

### 2022 年第 2 四半期の変更-2022 年 8 月 2 日:
<a name="2022-q2-linux"></a>

Ubuntu サポートの導入、STIG バージョンの更新、および 2022 年第 2 四半期リリース向けの STIG の適用を以下のとおり実施しました。

**STIG-Build-Linux-Low バージョン2022.2.x**
+ RHEL 7 STIG バージョン 3 リリース 7
+ RHEL 8 STIG バージョン 1 リリース 6
+ Ubuntu 18.04 STIG バージョン 2 リリース 6 (新規)
+ Ubuntu 20.04 STIG バージョン 1 リリース 4 (新規)

**STIG-Build-Linux-Medium バージョン2022.2.x**
+ RHEL 7 STIG バージョン 3 リリース 7
+ RHEL 8 STIG バージョン 1 リリース 6
+ Ubuntu 18.04 STIG バージョン 2 リリース 6 (新規)
+ Ubuntu 20.04 STIG バージョン 1 リリース 4 (新規)

**STIG-Build-Linux-High バージョン2022.2.x**
+ RHEL 7 STIG バージョン 3 リリース 7
+ RHEL 8 STIG バージョン 1 リリース 6
+ Ubuntu 18.04 STIG バージョン 2 リリース 6 (新規)
+ Ubuntu 20.04 STIG バージョン 1 リリース 4 (新規)

### 2022 年第 1 四半期の変更-2022 年 4 月 26 日:
<a name="2022-q1-linux"></a>

コンテナのサポートを強化するようにリファクタリングされました。以前の AL2 スクリプトと RHEL 7 を組み合わせました。2022 年第 1 四半期リリースに向けて STIG バージョンを更新し、STIG を次のように適用しました。

**STIG-Build-Linux-Low バージョン3.6.x**
+ RHEL 7 STIG バージョン 3 リリース 6
+ RHEL 8 STIG バージョン 1 リリース 5

**STIG-Build-Linux-Medium バージョン3.6.x**
+ RHEL 7 STIG バージョン 3 リリース 6
+ RHEL 8 STIG バージョン 1 リリース 5

**STIG-Build-Linux-High バージョン3.6.x**
+ RHEL 7 STIG バージョン 3 リリース 6
+ RHEL 8 STIG バージョン 1 リリース 5

### 2021 年第 4 四半期の変更-2021 年 12 月 20 日:
<a name="2021-q4-linux"></a>

STIG バージョンを更新し、2021 年第 4 四半期リリースに向けて STIG を次のように適用しました。

**STIG-Build-Linux-Low バージョン3.5.x**
+ RHEL 7 STIG バージョン 3 リリース 5
+ RHEL 8 STIG バージョン 1 リリース 4

**STIG-Build-Linux-Medium バージョン3.5.x**
+ RHEL 7 STIG バージョン 3 リリース 5
+ RHEL 8 STIG バージョン 1 リリース 4

**STIG-Build-Linux-High バージョン3.5.x**
+ RHEL 7 STIG バージョン 3 リリース 5
+ RHEL 8 STIG バージョン 1 リリース 4

### 2021 年第 3 四半期の変更-2021 年 9 月 30 日:
<a name="2021-q3-linux"></a>

STIG バージョンを更新し、2021 年第 3 四半期リリースに向けて STIG を次のように適用しました。

**STIG-Build-Linux-Low バージョン3.4.x**
+ RHEL 7 STIG バージョン 3 リリース 4
+ RHEL 8 STIG バージョン 1 リリース 3

**STIG-Build-Linux-Medium バージョン3.4.x**
+ RHEL 7 STIG バージョン 3 リリース 4
+ RHEL 8 STIG バージョン 1 リリース 3

**STIG-Build-Linux-High バージョン3.4.x**
+ RHEL 7 STIG バージョン 3 リリース 4
+ RHEL 8 STIG バージョン 1 リリース 3

## SCAP コンプライアンス検証ツール (コンポーネント)
<a name="scap-compliance"></a>

セキュリティコンテンツ自動化プロトコル (SCAP) は、IT プロフェッショナルがアプリケーションのセキュリティ脆弱性を特定してコンプライアンスを確保するために使用できる一連の標準です。The SCAP Compliance Checker (SCC) は、Naval Information Warfare Center (NIWC) Atlantic がリリースした SCAP 検証済みのスキャンツールです。詳細については、NIWC Atlantic Web サイトの「[Security Content Automation Protocol (SCAP) Compliance Checker (SCC)](https://www.niwcatlantic.navy.mil/Technology/SCAP/)」を参照してください。

および AWSTOE `scap-compliance-checker-windows``scap-compliance-checker-linux`コンポーネントは、パイプラインビルドおよびテストインスタンスに SCC スキャナーをダウンロードしてインストールします。スキャナーを実行すると、DISA SCAP ベンチマークを使用して認証された設定スキャンが実行され、以下の情報を含むレポートが提供されます。 AWSTOE また、 は、その情報をアプリケーションログに書き込みます。
+ インスタンスに適用される STIG 設定。
+ インスタンスの全体的なコンプライアンススコア。

正確なコンプライアンス検証結果を報告できるよう、ビルドプロセスの最終ステップとして SCAP 検証を実行することをお勧めします。

**注記**  
レポートはいずれかの [STIG 表示ツール](https://public.cyber.mil/stigs/srg-stig-tools/)で確認できます。これらのツールは、DoD サイバーエクスチェンジを通じてオンラインで入手できます。

以下のセクションでは、SCAP 検証コンポーネントに含まれるベンチマークについて説明します。

### scap-compliance-checker-windows バージョン 2024.03.0
<a name="scap-component-windows"></a>

`scap-compliance-checker-windows` コンポーネントは、Image Builder が作成した EC2 インスタンスで実行され、Image. AWSTOE log がレポートと SCC アプリケーションが生成するスコアの両方をビルドしてテストします。

このコンポーネントは次のワークフローステップを実行します。

1. SCC アプリケーションをダウンロードしてインストールします。

1. コンプライアンスベンチマークをインポートします。

1. SCC アプリケーションを使用して検証を実行します。

1. コンプライアンスレポートとスコアをビルドインスタンスデスクトップにローカルに保存します。

1. コンプライアンススコアをローカルレポートから AWSTOE アプリケーションログファイルに記録します。

**注記**  
AWSTOE は現在、Windows Server 2012 R2 MS、2016、2019、2022 の SCAP コンプライアンス検証をサポートしています。

Windows 用の SCAP コンプライアンスチェッカーコンポーネントには、以下のベンチマークが含まれています。

**SCC バージョン: 5.10**  
2023 年Q4 四半期ベンチマーク:
+ U\$1MS\$1Defender\$1Antivirus\$1V2R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1DotNet\$1Framework\$14-0\$1V2R2\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1IE11\$1V2R6\$1STIG\$1SCAP\$11-2\$1ベンチマーク
+ U\$1MS\$1Windows\$12012\$1and\$12012\$1R2\$1DC\$1V3R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$12012\$1and\$12012\$1R2\$1MS\$1V3R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Defender\$1Firewall\$1V2R3\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Server\$12016\$1V2R7\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Server\$12019\$1V3R2\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Server\$12022\$1V2R2\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1CAN\$1Ubuntu\$120-04\$1LTS\$1V1R10\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1RHEL\$17\$1V3R15\$1STIG\$1SCAP\$11-3\$1ベンチマーク
+ U\$1RHEL\$18\$1V1R13\$1STIG\$1SCAP\$11-3\$1ベンチマーク
+ U\$1RHEL\$19\$1V2R1\$1STIG\$1SCAP\$11-3\$1ベンチマーク

### scap-compliance-checker-linux バージョン 2021.04.0
<a name="scap-component-linux"></a>

`scap-compliance-checker-linux` コンポーネントは、Image Builder が作成した EC2 インスタンスで実行され、Image. AWSTOE log がレポートと SCC アプリケーションが生成するスコアの両方をビルドしてテストします。

このコンポーネントは次のワークフローステップを実行します。

1. SCC アプリケーションをダウンロードしてインストールします。

1. コンプライアンスベンチマークをインポートします。

1. SCC アプリケーションを使用して検証を実行します。

1. コンプライアンスレポートとスコアをビルドインスタンス`/opt/scc/SCCResults`の次の場所にローカルに保存します。

1. コンプライアンススコアをローカルレポートから AWSTOE アプリケーションログファイルに記録します。

**注記**  
AWSTOE は現在、RHEL 7/8 および Ubuntu 18.04/20.04 の SCAP コンプライアンス検証をサポートしています。SCC アプリケーションは現在、検証用に x86 アーキテクチャをサポートしています。

Linux 用の SCAP コンプライアンスチェッカーコンポーネントには、以下のベンチマークが含まれています。

**SCC バージョン: 5.10**  
2023 年Q4 四半期ベンチマーク:
+ U\$1CAN\$1Ubuntu\$120-04\$1LTS\$1V1R10\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1RHEL\$17\$1V3R15\$1STIG\$1SCAP\$11-3\$1ベンチマーク
+ U\$1RHEL\$18\$1V1R13\$1STIG\$1SCAP\$11-3\$1ベンチマーク
+ U\$1RHEL\$19\$1V2R1\$1STIG\$1SCAP\$11-3\$1ベンチマーク
+ U\$1MS\$1Defender\$1Antivirus\$1V2R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1DotNet\$1Framework\$14-0\$1V2R2\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1IE11\$1V2R6\$1STIG\$1SCAP\$11-2\$1ベンチマーク
+ U\$1MS\$1Windows\$12012\$1and\$12012\$1R2\$1DC\$1V3R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$12012\$1and\$12012\$1R2\$1MS\$1V3R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Defender\$1Firewall\$1V2R3\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Server\$12016\$1V2R7\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Server\$12019\$1V3R2\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Server\$12022\$1V2R2\$1STIG\$1SCAP\$11-2\$1Benchmark

### SCAP のバージョン履歴
<a name="ib-scap-version-hist"></a>

次の表は、SCAP 環境と本書で説明されている設定に対する重要な変更について説明したものです。


| 変更 | 説明 | 日付 | 
| --- | --- | --- | 
|  2025 年第 Q1 SCAP 更新  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/ib-stig.html)  | 2025 年 4 月 11 日 | 
|  2023 年第 Q4 SCAP の更新  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/ib-stig.html)  | 2021 年 12 月 20 日 | 
|  2023 年第 Q3 SCAP 更新  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/ib-stig.html)  | 2023 年 11 月 13 日 | 
|  SCAP コンポーネントを追加  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/ib-stig.html)  | 2021 年 12 月 20 日 | 

# Image Builder イメージ用のカスタムコンポーネントの開発
<a name="create-custom-components"></a>

独自のコンポーネントを作成すると、独自の仕様に正確に従って Image Builder イメージをカスタマイズできます。Image Builder イメージまたはコンテナレシピ用のカスタムコンポーネントを開発するには、次の手順に従います。

1. コンポーネントドキュメントを開発してローカルで検証する場合は、 AWS Task Orchestrator and Executor (AWSTOE) アプリケーションをインストールしてローカルマシンにセットアップできます。詳細については、「[を使用してカスタムコンポーネントを開発するための手動セットアップ AWSTOE](toe-get-started.md)」を参照してください。

1. コンポーネントドキュメントフレームワークを使用する AWSTOE コンポーネントドキュメントを作成します。ドキュメントフレームワークの詳細については、「[カスタム AWSTOE コンポーネントのコンポーネントドキュメントフレームワークを使用する](toe-use-documents.md)」のドキュメントを参照してください。

1. カスタムコンポーネントの作成時には、コンポーネントドキュメントを指定します。詳細については、「[Image Builder を使用したカスタムコンポーネントの作成](create-component.md)」を参照してください。

**Topics**
+ [Image Builder でのカスタムコンポーネント用 YAML コンポーネントドキュメントの作成](create-component-yaml.md)
+ [Image Builder を使用したカスタムコンポーネントの作成](create-component.md)

# Image Builder でのカスタムコンポーネント用 YAML コンポーネントドキュメントの作成
<a name="create-component-yaml"></a>

コンポーネントをビルドするには、YAML または JSON アプリケーションコンポーネントドキュメントを提供する必要があります。このドキュメントには、フェーズとステップの間に実行される、イメージをカスタマイズするために定義したコードが含まれています。

このセクションの例の一部は、コンポーネント管理アプリケーションの`UpdateOS`アクションモジュールを呼び出すビルド AWSTOE コンポーネントを作成します。モジュールでは、オペレーティングシステムを更新します。`UpdateOS` アクションの使用方法の詳細については、[UpdateOS](toe-action-modules.md#action-modules-updateos)を参照してください。

macOS オペレーティングシステムの例では、`ExecuteBash` アクションモジュールを使用して、`wget` ユーティリティをインストールして検証します。`UpdateOS` アクションモジュールは macOS をサポートしていません。`ExecuteBash` アクションの使用方法の詳細については、[ExecuteBash](toe-action-modules.md#action-modules-executebash)を参照してください。 AWSTOE アプリケーションコンポーネントドキュメントのフェーズ、ステップ、構文の詳細については、「[AWSTOEでのドキュメントの使用](https://docs.aws.amazon.com/imagebuilder/latest/userguide/toe-use-documents.html)」を参照してください。

**注記**  
Image Builder は、コンポーネントドキュメントで定義されているフェーズから、次のようにコンポーネントタイプを決定します。  
**ビルド** — これはデフォルトのコンポーネントタイプです。テストコンポーネントとして分類されないものはすべてビルドコンポーネントです。このタイプのコンポーネントは*ビルドステージ*で実行されます。このビルドコンポーネントに`test`フェーズが定義されている場合、そのフェーズはテストステージ中に実行されます。
**テスト** — テストコンポーネントとして認定されるには、コンポーネントドキュメントに`test`という名前のフェーズが 1 つだけ含まれている必要があります。ビルドコンポーネントの設定に関連するテストでは、スタンドアロンのテストコンポーネントを使用しないことをお勧めします。むしろ、関連するビルドコンポーネントの`test`フェーズを使用してください。
Image Builder がステージとフェーズを使用してビルドプロセスのコンポーネントワークフローを管理する方法の詳細については、[コンポーネントを使用した Image Builder イメージのカスタマイズ](manage-components.md)を参照してください。

サンプルアプリケーション用の YAML アプリケーションコンポーネントドキュメントを作成するには、使用しているイメージオペレーティングシステムに対応するタブの手順に従ってください。

------
#### [ Linux ]

**YAML コンポーネントファイルを作成する**  
ファイル編集ツールを使用して、コンポーネントドキュメントを作成します。ドキュメントの例では、次のコンテンツを含む `update-linux-os.yaml` という名前のファイルを使用します。

```
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: update-linux-os
description: Updates Linux with the latest security updates.
schemaVersion: 1
phases:
  - name: build
    steps:
    - name: UpdateOS
      action: UpdateOS
# Document End
```

**ヒント**  
このオンライン [YAML Validator](https://jsonformatter.org/yaml-validator) のようなツールを使用するか、コード環境の YAML lint 拡張機能を使用して、YAML が正しい形式であることを確認してください。

------
#### [ Windows ]

**YAML コンポーネントファイルを作成する**  
ファイル編集ツールを使用して、コンポーネントドキュメントを作成します。ドキュメントの例では、次のコンテンツを含む `update-windows-os.yaml` という名前のファイルを使用します。

```
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: update-windows-os
description: Updates Windows with the latest security updates.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: UpdateOS
        action: UpdateOS
# Document End
```

**ヒント**  
このオンライン [YAML Validator](https://jsonformatter.org/yaml-validator) のようなツールを使用するか、コード環境の YAML lint 拡張機能を使用して、YAML が正しい形式であることを確認してください。

------
#### [ macOS ]

**YAML コンポーネントファイルを作成する**  
ファイル編集ツールを使用して、コンポーネントドキュメントを作成します。ドキュメントの例では、次のコンテンツを含む `wget-macos.yaml` という名前のファイルを使用します。

```
name: WgetInstallDocument
description: This is wget installation document.
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: WgetBuildStep
        action: ExecuteBash
        inputs:
          commands:
            - |
              PATH=/usr/local/bin:$PATH
              sudo -u ec2-user brew install wget


  - name: validate
    steps:
      - name: WgetValidateStep
        action: ExecuteBash
        inputs:
          commands:
            - |
              function error_exit {
                echo $1
                echo "{\"failureMessage\":\"$2\"}"
                exit 1
              }

              type wget
              if [ $? -ne 0 ]; then
                error_exit "$stderr" "Wget installation failed!"
              fi

  - name: test
    steps:
      - name: WgetTestStep
        action: ExecuteBash
        inputs:
          commands:
            - wget -h
```

**ヒント**  
このオンライン [YAML Validator](https://jsonformatter.org/yaml-validator) のようなツールを使用するか、コード環境の YAML lint 拡張機能を使用して、YAML が正しい形式であることを確認してください。

------

# Image Builder を使用したカスタムコンポーネントの作成
<a name="create-component"></a>

コンポーネントドキュメントが完成したら、それを使用して、Image Builder レシピで使用できるカスタムコンポーネントを作成できます。カスタムコンポーネントは、Image Builder コンソール、API か SDK、またはコマンドラインから作成できます。入力パラメータを持つカスタムコンポーネントを作成してレシピで使用する方法の詳細については、「[チュートリアル: 入力パラメータを持つカスタムコンポーネントを作成する](tutorial-component-parameters.md)」を参照してください。

以下のセクションでは、コンソールまたは AWS CLIからコンポーネントを作成する方法を示します。

**Topics**
+ [コンソールでのカスタムモデルコンポーネントの作成](#create-component-ib-console)
+ [からカスタムコンポーネントを作成する AWS CLI](#create-component-ib-cli)
+ [スクリプトをインポートして からコンポーネントを作成する AWS CLI](#import-component-cli)
+ [自動ビルドバージョン管理](#auto-build-version-management)
+ [バージョンリファレンスの使用](#using-version-references)

## コンソールでのカスタムモデルコンポーネントの作成
<a name="create-component-ib-console"></a>

Image Builder コンソールから AWSTOE アプリケーションコンポーネントを作成するには、次の手順に従います。

1. [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/) で、EC2 Image Builder コンソールを開きます。

1. ナビゲーションペインから **コンポーネント** を選択します。次に **コンポーネントを作成** を選択します。

1. 「**コンポーネントの作成**」ページの「**コンポーネントの詳細**」で、次のように入力します。

   1. **イメージオペレーティングシステム (OS)**。コンポーネントと互換性のあるオペレーティングシステムを指定します。

   1. **コンポーネントカテゴリ**。ドロップダウンから、作成するビルドコンポーネントまたはテストコンポーネントのタイプを選択します。

   1. **コンポーネント名**。コンポーネントの名前を入力します。

   1. **コンポーネントのバージョン**。コンポーネントのバージョン番号を入力します。

   1. **説明**。ジョブの説明を追加して、ジョブを識別することも可能です。

   1. **説明の変更**。このバージョンのコンポーネントに加えられた変更点を理解しやすいように、オプションで説明を入力します。

1. 「**定義文書**」セクションのデフォルトオプションは「**文書コンテンツの定義**」です。コンポーネントドキュメントは、イメージを作成するために Image Builder がビルドインスタンスとテストインスタンスで実行するアクションを定義します。

   「**コンテンツ**」ボックスに、YAML コンポーネントドキュメントの内容を入力します。Linux 用の Hello World サンプルから始めるには、「**サンプルを使用する**」オプションを選択します。YAML コンポーネントドキュメントの作成方法や、そのページから UpdateOS サンプルをコピーして貼り付ける方法について詳しくは、[Image Builder でのカスタムコンポーネント用 YAML コンポーネントドキュメントの作成](create-component-yaml.md)を参照してください。

1. コンポーネントの詳細を入力したら、「**コンポーネントを作成**」を選択します。
**注記**  
レシピを作成または更新するときに新しいコンポーネントを表示するには、ビルドまたはテスト用のコンポーネントリストに **Owned by me** フィルタを適用します。フィルタは、コンポーネントリストの上部にある、検索ボックスの横にあります。

1. コンポーネントを削除するには、**コンポーネント** ページで、削除するコンポーネントの横にあるチェックボックスをオンにします。** Actions ** （アクション）ドロップダウンから** Deploy API **( デプロイAPI ）を選択します。

**コンポーネントの更新**  
新しいコンポーネントバージョンを作成するには、次の手順に従います。

1. どこから始めるかによって:
   + **コンポーネント**リストページから — コンポーネント名の横にあるチェックボックスを選択し、「**アクション**」メニューから「**新規バージョンを作成**」を選択します。
   + コンポーネントの詳細ページから — 見出しの右上隅にある **新規バージョンを作成** ボタンをクリックします。

1. 「**Create Component**」ページが表示されると、コンポーネント情報には現在の値が既に入力されています。「コンポーネントを作成」の手順に従って、コンポーネントを更新します。これにより、**コンポーネントバージョン**には固有のセマンティックバージョンを確実に入力できます。Image Builder リソースのセマンティックバージョニングの詳細については、[Image Builder でのセマンティックバージョニング](ibhow-semantic-versioning.md)を参照してください。

## からカスタムコンポーネントを作成する AWS CLI
<a name="create-component-ib-cli"></a>

このセクションでは、次のように、 で Image Builder コマンドをセットアップして使用 AWS CLI して AWSTOE アプリケーションコンポーネントを作成する方法について説明します。
+ YAML コンポーネントドキュメントを S3 バケットにアップロードし、コマンドラインから参照できるようにします。
+ **create-component** コマンドを使用して AWSTOE アプリケーションコンポーネントを作成します。
+ **list-components**コマンドと名前フィルタを使用してコンポーネントのバージョンを一覧表示し、既に存在するバージョンを確認します。この出力を使用して、更新に必要な次のバージョンを決定できます。

入力 YAML ドキュメントから AWSTOE アプリケーションコンポーネントを作成するには、イメージオペレーティングシステムプラットフォームに一致するステップに従います。

------
#### [ Linux ]

**アプリケーションコンポーネントドキュメントを Amazon S3 に保存する**

S3 バケットは、 AWSTOE アプリケーションコンポーネントのソースドキュメントのリポジトリとして使用できます。コンポーネントドキュメントを保存するには、次の手順に従います。
+ 

**ドキュメントを Amazon S3 にアップロードする**

  ドキュメントが 64 KB 未満の場合は、このステップをスキップできます。64 KB とその以上のサイズのドキュメントは Amazon S3 に保存する必要があります。

  ```
  aws s3 cp update-linux-os.yaml s3://amzn-s3-demo-destination-bucket/my-path/update-linux-os.yaml
  ```

**YAML ドキュメントからコンポーネントを作成する**

で使用する**create-component**コマンドを効率化するには AWS CLI、コマンドに渡すすべてのコンポーネントパラメータを含む JSON ファイルを作成します。前の手順で作成した `update-linux-os.yaml` ドキュメントの場所を含めてください。`uri`キー値のペアには、ファイル参照が含まれます。
**注記**  
JSON ファイル内のデータ値の命名規則は、Image Builder API オペレーションリクエストパラメータに指定されているパターンに従います。API コマンドリクエストパラメータを確認するには、EC2 Image Builder API リファレンスの [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) コマンドを参照してください。  
データ値をコマンドラインパラメータとして指定するには、AWS CLI コマンドリファレンスで指定されているパラメータ名を参照してください。

1. 

**CLI 入力 JSON ファイルの作成**

   ファイル編集ツールを使用して、`create-update-linux-os-component.json` という名前のファイルを作成します。次の内容を含めます:

   ```
   {
   	"name": "update-linux-os",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that updates the Linux operating system",
   	"changeDescription": "Initial version.",
   	"platform": "Linux",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/update-linux-os.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "security-updates"
   	}
   }
   ```

1. 

**コンポーネントを作成する**

   以下のコマンドを使用して、前のステップで作成した JSON ファイルのファイル名を参照してコンポーネントを作成します。

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-linux-os-component.json
   ```
**注記**  
JSON ファイルパスの先頭に `file://` 表記を含める必要があります。
JSON ファイルのパスは、コマンドを実行するベースオペレーティングシステムに適した規則に従う必要があります。例えば、Windows ではディレクトリパスを表すためにバックスプラッシュ (\$1) が使用され、Linux と macOS ではフォーワードスラッシュ (/) が使用されます。

------
#### [ Windows ]

**アプリケーションコンポーネントドキュメントを Amazon S3 に保存する**

S3 バケットは、 AWSTOE アプリケーションコンポーネントのソースドキュメントのリポジトリとして使用できます。コンポーネントドキュメントを保存するには、次の手順に従います。
+ 

**ドキュメントを Amazon S3 にアップロードする**

  ドキュメントが 64 KB 未満の場合は、このステップをスキップできます。64 KB とその以上のサイズのドキュメントは Amazon S3 に保存する必要があります。

  ```
  aws s3 cp update-windows-os.yaml s3://amzn-s3-demo-destination-bucket/my-path/update-windows-os.yaml
  ```

**YAML ドキュメントからコンポーネントを作成する**

で使用する**create-component**コマンドを効率化するには AWS CLI、コマンドに渡すすべてのコンポーネントパラメータを含む JSON ファイルを作成します。前の手順で作成した `update-windows-os.yaml` ドキュメントの場所を含めてください。`uri`キー値のペアには、ファイル参照が含まれます。
**注記**  
JSON ファイル内のデータ値の命名規則は、Image Builder API オペレーションリクエストパラメータに指定されているパターンに従います。API コマンドリクエストパラメータを確認するには、EC2 Image Builder API リファレンスの [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) コマンドを参照してください。  
データ値をコマンドラインパラメータとして指定するには、AWS CLI コマンドリファレンスで指定されているパラメータ名を参照してください。

1. 

**CLI 入力 JSON ファイルの作成**

   ファイル編集ツールを使用して、`create-update-windows-os-component.json` という名前のファイルを作成します。次の内容を含めます:

   ```
   {
   	"name": "update-windows-os",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that updates the Windows operating system.",
   	"changeDescription": "Initial version.",
   	"platform": "Windows",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/update-windows-os.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "security-updates"
   	}
   }
   ```
**注記**  
JSON ファイルパスの先頭に `file://` 表記を含める必要があります。
JSON ファイルのパスは、コマンドを実行するベースオペレーティングシステムに適した規則に従う必要があります。例えば、Windows ではディレクトリパスを表すためにバックスプラッシュ (\$1) が使用され、Linux と macOS ではフォーワードスラッシュ (/) が使用されます。

1. 

**コンポーネントを作成する**

   以下のコマンドを使用して、前のステップで作成した JSON ファイルのファイル名を参照してコンポーネントを作成します。

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-windows-os-component.json
   ```
**注記**  
JSON ファイルパスの先頭に `file://` 表記を含める必要があります。
JSON ファイルのパスは、コマンドを実行するベースオペレーティングシステムに適した規則に従う必要があります。例えば、Windows ではディレクトリパスを表すためにバックスプラッシュ (\$1) が使用され、Linux と macOS ではフォーワードスラッシュ (/) が使用されます。

------
#### [ macOS ]

**アプリケーションコンポーネントドキュメントを Amazon S3 に保存する**

S3 バケットは、 AWSTOE アプリケーションコンポーネントのソースドキュメントのリポジトリとして使用できます。コンポーネントドキュメントを保存するには、次の手順に従います。
+ 

**ドキュメントを Amazon S3 にアップロードする**

  ドキュメントが 64 KB 未満の場合は、このステップをスキップできます。64 KB とその以上のサイズのドキュメントは Amazon S3 に保存する必要があります。

  ```
  aws s3 cp wget-macos.yaml s3://amzn-s3-demo-destination-bucket/my-path/wget-macos.yaml
  ```

**YAML ドキュメントからコンポーネントを作成する**

で使用する**create-component**コマンドを効率化するには AWS CLI、コマンドに渡すすべてのコンポーネントパラメータを含む JSON ファイルを作成します。前の手順で作成した `wget-macos.yaml` ドキュメントの場所を含めてください。`uri`キー値のペアには、ファイル参照が含まれます。
**注記**  
JSON ファイル内のデータ値の命名規則は、Image Builder API オペレーションリクエストパラメータに指定されているパターンに従います。API コマンドリクエストパラメータを確認するには、EC2 Image Builder API リファレンスの [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) コマンドを参照してください。  
データ値をコマンドラインパラメータとして指定するには、AWS CLI コマンドリファレンスで指定されているパラメータ名を参照してください。

1. 

**CLI 入力 JSON ファイルの作成**

   ファイル編集ツールを使用して、`install-wget-macos-component.json` という名前のファイルを作成します。次の内容を含めます:

   ```
   {
   	"name": "install install-wget-macos-component",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that installs and verifies the wget utility on macOS.",
   	"changeDescription": "Initial version.",
   	"platform": "macOS",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/wget-macos.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "install-software"
   	}
   }
   ```

1. 

**コンポーネントを作成する**

   以下のコマンドを使用して、前のステップで作成した JSON ファイルのファイル名を参照してコンポーネントを作成します。

   ```
   aws imagebuilder create-component --cli-input-json file://install-wget-macos-component.json
   ```
**注記**  
JSON ファイルパスの先頭に `file://` 表記を含める必要があります。
JSON ファイルのパスは、コマンドを実行するベースオペレーティングシステムに適した規則に従う必要があります。例えば、Windows ではディレクトリパスを表すためにバックスプラッシュ (\$1) が使用され、Linux と macOS ではフォーワードスラッシュ (/) が使用されます。

------

### AWSTOE からの更新のコンポーネントバージョニング AWS CLI
<a name="component-update-cli"></a>

AWSTOE コンポーネント名とバージョンは、コンポーネントのプレフィックスの後にコンポーネントの Amazon リソースネーム (ARN) に埋め込まれます。コンポーネントの新しいバージョンにはそれぞれ固有の ARN があります。新しいバージョンを作成する手順は、そのコンポーネント名に対してセマンティックバージョンが一意である限り、新しいコンポーネントを作成する手順と完全に同じです。Image Builder リソースのセマンティックバージョニングの詳細については、[Image Builder でのセマンティックバージョニング](ibhow-semantic-versioning.md)を参照してください。

次の論理的なバージョンを割り当てるために、まず変更したいコンポーネントの既存のバージョンのリストを取得してください。で **list-components** コマンドを使用し AWS CLI、名前をフィルタリングします。

この例では、以前の Linux の例で作成したコンポーネントの名前をフィルタします。作成したコンポーネントをリストアップするには、**create-component**コマンドで使用した JSON ファイルの`name`パラメータの値を使用する。

```
aws imagebuilder list-components --filters name="name",values="update-linux-os"	
{
    "requestId": "123a4567-b890-123c-45d6-ef789ab0cd1e",
    "componentVersionList": [
        {
            "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.0",
            "name": "update-linux-os",
            "version": "1.0.0",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2020-09-24T16:58:24.444Z"
        },
        {
            "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.1",
            "name": "update-linux-os",
            "version": "1.0.1",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2021-07-10T03:38:46.091Z"
        }
    ]
}
```

結果に基づいて、次のバージョンを決定できます。

## スクリプトをインポートして からコンポーネントを作成する AWS CLI
<a name="import-component-cli"></a>

シナリオによっては、既存のスクリプトから始める方が簡単な場合もあります。このシナリオでは、以下の例を使うことができます。

この例では、`import-component.json` (図のように) というファイルがあることを前提としています。このファイルは、既に `amzn-s3-demo-source-bucket` にアップロードされている `AdminConfig.ps1` というPowerShell スクリプトを直接に参照していることを注意してください。現在、コンポーネント`SHELL`がサポートされている`format`。

```
{
"name": "MyImportedComponent",
"semanticVersion": "1.0.0",
"description": "An example of how to import a component",
"changeDescription": "First commit message.",
"format": "SHELL",
"platform": "Windows",
"type": "BUILD",
"uri": "s3://amzn-s3-demo-source-bucket/AdminConfig.ps1",
"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/60763706-b131-418b-8f85-3420912f020c"
}
```

インポートされたスクリプトからコンポーネントを作成するには、次のコマンドを実行します。

```
aws imagebuilder import-component --cli-input-json file://import-component.json
```

## 自動ビルドバージョン管理
<a name="auto-build-version-management"></a>

既存のコンポーネントと同じ名前とセマンティックバージョンを持つコンポーネントを作成すると、Image Builder は自動的にビルドバージョンをインクリメントします (たとえば、 `/1` から `/2`、 から `/3`など）。これにより、バージョン番号を手動で管理しなくてもコンポーネントを反復更新できます。これは、CI/CD パイプラインやinfrastructure-as-codeのデプロイで特に役立ちます。コンポーネントのコンテンツが以前のビルドバージョンと同じ場合、Image Builder は を返し`ResourceAlreadyExistsException`、重複するコンポーネントがサービスクォータを消費しないようにします。

## バージョンリファレンスの使用
<a name="using-version-references"></a>

コンポーネントを作成または取得すると、Image Builder は latestVersionReferences オブジェクトにワイルドカードバージョンパターンを持つ構築済みの ARNs を自動的に提供します。これらのリファレンスにより、ARNs を手動で解析することなく、レシピやパイプラインでコンポーネントの最新バージョンを簡単に使用できます。

**適切なバージョンリファレンスの選択**
+ latestVersionArn (x.x.x) - 常に最新のコンポーネントバージョンを使用してください。
+ atestMajorVersionArn (1.x.x) - メジャーバージョン内で最新のマイナーバージョンとパッチバージョンを使用します。
+ latestMinorVersionArn (1.2.x) - 最新のパッチバージョンのみを使用します。
+ latestPatchVersionArn (1.2.3) - 特定のセマンティックバージョンを参照しますが、最新のビルドバージョンを取得します。

**注記**  
予期しない料金が発生しないように、このガイドの例で作成したリソースとパイプラインは必ずクリーンアップしてください。Image Builder でのリソースの削除については、「[未使用または古くなった Image Builder リソースの削除](delete-resources.md)」を参照してください。

# Image Builder が AWS Task Orchestrator and Executor アプリケーションを使用してコンポーネントを管理する方法
<a name="toe-component-manager"></a>

EC2 Image Builder は AWS Task Orchestrator and Executor （AWSTOE) アプリケーションを使用して、追加の devops スクリプトやコードを使用せずに、複雑なワークフローの調整、システム設定の変更、イメージのテストを行います。このアプリケーションは、宣言型ドキュメントスキーマを実装するコンポーネントを管理および実行します。

AWSTOE は、イメージの作成時に Image Builder がビルドインスタンスとテストインスタンスにインストールするスタンドアロンアプリケーションです。これを手動で EC2 インスタンスにインストールして、独自のカスタムコンポーネントを作成することもできます。追加のセットアップは必要なく、オンプレミスでも実行できます。

**Topics**
+ [AWSTOE ダウンロード](#toe-downloads)
+ [サポート対象の リージョン](#toe-supported-regions)
+ [AWSTOE コマンドリファレンス](#toe-commands)
+ [を使用してカスタムコンポーネントを開発するための手動セットアップ AWSTOE](toe-get-started.md)
+ [カスタム AWSTOE コンポーネントのコンポーネントドキュメントフレームワークを使用する](toe-use-documents.md)
+ [AWSTOE コンポーネントマネージャーでサポートされるアクションモジュール](toe-action-modules.md)
+ [AWSTOE run コマンドの入力を設定する](toe-run-config-input.md)

## AWSTOE ダウンロード
<a name="toe-downloads"></a>

インストールするには AWSTOE、アーキテクチャとプラットフォームのダウンロードリンクを選択します。サービスの VPC エンドポイント (Image Builder など) にアタッチする場合、 AWSTOE ダウンロード用の S3 バケットへのアクセスを含むカスタムエンドポイントポリシーがアタッチされている必要があります。そうしないと、ビルドインスタンスとテストインスタンスはブートストラップスクリプト (`bootstrap.sh`) をダウンロードして AWSTOE アプリケーションをインストールできなくなります。詳細については、「[Image Builder 用 VPC エンドポイントポリシーの作成](vpc-interface-endpoints.md#vpc-endpoint-policy)」を参照してください。

**重要**  
AWS は TLS バージョン 1.0 および 1.1 のサポートを段階的に廃止しています。 AWSTOE ダウンロード用に S3 バケットにアクセスするには、クライアントソフトウェアで TLS バージョン 1.2 以降を使用する必要があります。詳細については、[AWS セキュリティのブログ記事](https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/)を参照してください。


| アーキテクチャ | プラットフォーム | ダウンロードリンク | 例 | 
| --- | --- | --- | --- | 
| 386 |  AL 2 と 2023 年 RHEL 7、8、および 9 Ubuntu 16.04、18.04、20.04、22.04、24.04 CentOS 7 および 8 スーズ 12 と 15  | `https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/386/awstoe`  | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/386/awstoe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/386/awstoe) | 
| AMD64 |  AL 2 と 2023 年 RHEL 7、8、および 9 Ubuntu 16.04、18.04、20.04、22.04、24.04 CentOS 7 および 8 CentOS Stream 8 スーズ 12 と 15  | https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/amd64/awstoe | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/amd64/awstoe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/amd64/awstoe) | 
| AMD64 |  macOS 10.14.x (Mojave)、10.15.x (Catalina)、11.x (Big Sur)、12.x (Monterey)  | https://awstoe-region.s3.region.amazonaws.com/latest/darwin/amd64/awstoe | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/darwin/amd64/awstoe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/darwin/amd64/awstoe) | 
|  AMD64  |  Windows Server 2012 R2、2016、2019、2022 年  |   `https://awstoe-<region>.s3.<region>.amazonaws.com/latest/windows/amd64/awstoe.exe`  | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/windows/amd64/awstoe.exe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/windows/amd64/awstoe.exe) | 
| ARM64 |  AL 2 と 2023 年 RHEL 7、8、および 9 Ubuntu 16.04、18.04、20.04、22.04、24.04 CentOS 7 および 8 CentOS Stream 8 スーズ 12 と 15  | https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/arm64/awstoe | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/arm64/awstoe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/arm64/awstoe) | 

## サポート対象の リージョン
<a name="toe-supported-regions"></a>

AWSTOE は、次のリージョンでスタンドアロンアプリケーションとしてサポートされています。


| AWS リージョン 名前 | AWS リージョン | 
| --- | --- | 
|  米国東部（オハイオ）  |  us-east-2  | 
|  米国東部 (バージニア北部)  |  us-east-1  | 
|  AWS GovCloud (米国東部）  |  us-gov-east-1  | 
|  AWS GovCloud (米国西部）  |  us-gov-west-1  | 
|  米国西部（北カリフォルニア）  | us-west-1 | 
|  米国西部 (オレゴン)  | us-west-2 | 
|  アフリカ (ケープタウン)  | af-south-1 | 
|  アジアパシフィック (香港)  | ap-east-1 | 
|  アジアパシフィック (大阪)  | ap-northeast-3 | 
|  アジアパシフィック (ソウル)  | ap-northeast-2 | 
|  アジアパシフィック (ムンバイ)  | ap-south-1 | 
|  アジアパシフィック (ハイデラバード)  | ap-south-2 | 
|  アジアパシフィック (シンガポール)  | ap-southeast-1 | 
|  アジアパシフィック (シドニー)  | ap-southeast-2 | 
|  アジアパシフィック (ジャカルタ)  | ap-southeast-3 | 
|  アジアパシフィック (東京)  | ap-northeast-1 | 
|  カナダ (中部)  | ca-central-1 | 
|  欧州 (フランクフルト)  | eu-central-1 | 
|  欧州 (チューリッヒ)  | eu-central-2 | 
|  欧州 (ストックホルム)  | eu-north-1 | 
|  欧州 (ミラノ)  | eu-south-1 | 
|  欧州 (スペイン)  | eu-south-2 | 
|  欧州 (アイルランド)  | eu-west-1 | 
|  欧州 (ロンドン)  | eu-west-2 | 
|  欧州 (パリ)  | eu-west-3 | 
|  イスラエル (テルアビブ)  | il-central-1 | 
|  中東 (アラブ首長国連邦)  | me-central-1 | 
|  中東 (バーレーン)  | me-south-1 | 
|  南米 (サンパウロ）  | sa-east-1 | 
|  中国 (北京)  | cn-north-1 | 
|  中国 (寧夏)  | cn-northwest-1 | 

## AWSTOE コマンドリファレンス
<a name="toe-commands"></a>

AWSTOE は、Amazon EC2 インスタンスで実行されるコマンドラインコンポーネント管理アプリケーションです。Image Builder が EC2 ビルドインスタンスまたはテストインスタンスを起動すると、インスタンス AWSTOE に がインストールされます。次に、 で AWSTOE コマンドを実行して AWS CLI 、イメージまたはコンテナレシピで指定されたコンポーネントをインストールまたは検証します。

**注記**  
一部の AWSTOE アクションモジュールでは、Linux サーバーで実行するための昇格されたアクセス許可が必要です。昇格された権限を使用するには、コマンド構文の前に **sudo** を付けるか、ログイン時に **sudo su** コマンドを 1 回実行してから、以下にリンクされているコマンドを実行します。 AWSTOE アクションモジュールの詳細については、「」を参照してください[AWSTOE コンポーネントマネージャーでサポートされるアクションモジュール](toe-action-modules.md)。

***[run](#cmd-run)***  
**run** コマンドを使用して、1 つ以上のコンポーネントドキュメントの YAML ドキュメントスクリプトを実行します。

***[validate](#cmd-validate)***  
1 つ以上のコンポーネントドキュメントの YAML ドキュメント構文を検証するために、**validate**コマンドを実行する。

### awstoe run コマンド
<a name="cmd-run"></a>

このコマンドは、YAML コンポーネントドキュメントスクリプトを、`--config` パラメータで指定された設定ファイル、または `--documents` パラメータで指定されたコンポーネントドキュメントのリストに含まれている順序で実行します。

**注記**  
次のパラメータのうち、1 つのみを正確に指定する必要があります。両方は指定しないでください。  
--config  
--documents

#### 構文
<a name="run-syntax"></a>

```
awstoe run [--config <file path>] [--cw-ignore-failures <?>] 
      [--cw-log-group <?>] [--cw-log-region us-west-2] [--cw-log-stream <?>] 
      [--document-s3-bucket-owner <owner>] [--documents <file path,file path,...>] 
      [--execution-id <?>] [--log-directory <file path>] 
      [--log-s3-bucket-name <name>] [--log-s3-bucket-owner <owner>] 
      [--log-s3-key-prefix <?>] [--parameters name1=value1,name2=value2...] 
      [--phases <phase name>] [--state-directory <directory path>] [--version <?>] 
      [--help] [--trace]
```

#### パラメータとオプション
<a name="run-parameters"></a>パラメータ

**--config *`./config-example.json`***  
ショートフォーム:-c *`./config-example.json`*  
設定ファイル (条件付き)。このパラメータには、このコマンドが実行しているコンポーネントの構成設定を含む JSON ファイルの場所が含まれます。設定ファイルで **run** コマンド設定を指定する場合、`--documents` パラメータは指定しないでください。入力設定の詳細については、[AWSTOE run コマンドの入力を設定する](toe-run-config-input.md)を参照のこと。  
有効な場所は以下のとおり:  
+ ローカルファイルパス (*`./config-example.json`*)
+ S3 URI (`s3://bucket/key`)

**--cw-ignore-failures**  
ショートフォーム:N/A  
CloudWatch Logs からのロギングエラーは無視してください。

**--cw-log-group**  
ショートフォーム:N/A  
CloudWatch Logs の `LogGroup` の名前。

**--cw-log-region**  
ショートフォーム:N/A  
CloudWatch Logs に適用される AWS リージョン。

**--cw-log-stream**  
ショートフォーム:N/A  
`console.log` ファイルのストリーミング AWSTOE 先を指定する CloudWatch Logs `LogStream`の名前。

**--document-s3-bucket-owner**  
ショートフォーム:N/A  
S3 URI ベースのドキュメントのバケット所有者のアカウントID。

**--documents *`./doc-1.yaml`,`./doc-n.yaml`***  
ショートフォーム:-d *`./doc-1.yaml`*,*`./doc-n`*  
コンポーネント文書 (条件付き)。このパラメータには、実行する YAML コンポーネントドキュメントのファイルロケーションのカンマ区切りリストが含まれます。`--documents` パラメータを使用して**run**コマンドに YAML ドキュメントを指定する場合、`--config` パラメータを指定してはなりません。  
有効な場所は以下のとおり:  
+ ローカルファイルパス (*/component-doc-example.yaml*)。
+ S3 URI (`s3://bucket/key`)。
+ *Image Builder コンポーネントビルドバージョン ARN (arn:aws:imagebuilder:us-west-*2:123456789012*:component/my-example-component*/2021.12.02/1).
リスト内の項目間にはスペースがなく、カンマのみが入ります。

**--execution-id**  
短縮形： -i  
これは現在の **run** コマンドの実行に適用される固有の ID です。この ID は出力ファイル名とログファイル名に含まれ、これらのファイルを一意に識別し、現在のコマンド実行にリンクします。この設定を省略すると、 は GUID AWSTOE を生成します。

**--log-directory**  
短縮形： -l  
がこのコマンド実行のすべてのログファイル AWSTOE を保存する送信先ディレクトリ。デフォルトでは、このディレクトリは親ディレクトリ `TOE_<DATETIME>_<EXECUTIONID>` の中にあります。ログディレクトリを指定しない場合、 は現在の作業ディレクトリ () AWSTOE を使用します`.`。

**--log-s3-bucket-name**  
短縮形： -b  
コンポーネントログが Amazon S3 に保存されている場合 (推奨）、 はこのパラメータで という名前の S3 バケットにコンポーネントアプリケーションログ AWSTOE をアップロードします。

**--log-s3-bucket-owner**  
ショートフォーム:N/A  
コンポーネントログが Amazon S3 に保存されている場合 (推奨）、これは がログファイルを AWSTOE 書き込むバケットの所有者アカウント ID です。

**--log-s3-key-prefix**  
短縮形： -k  
コンポーネントログが Amazon S3 に保存されている場合（推奨）、これはバケット内のログの場所を示す S3 オブジェクトキーのプレフィックスです。

**--parameters *name1*=*value1*,*name2*=*value2*...**  
ショートフォーム:N/A  
パラメータは、コンポーネントドキュメントで定義される変更可能な変数であり、呼び出し元のアプリケーションが実行時に提供できる設定を持つ。

**--phases**  
ショートフォーム:-p  
YAML コンポーネントドキュメントから実行するフェーズを指定するカンマ区切りのリスト。コンポーネントドキュメントに追加のフェーズが含まれている場合、そのフェーズは実行されません。

**--state-directory**  
短縮形： -s  
状態追跡ファイルが保存されているファイルパス。

**--version**  
短縮形： -v  
コンポーネントアプリケーションのバージョンを指定します。オプション

**--help**  
短縮形： -h  
コンポーネント管理アプリケーションオプションを使用するためのヘルプマニュアルを表示します。

**--trace**  
短縮形： -t  
コンソールへの冗長ロギングを有効にする。

### awstoe 検証コマンド
<a name="cmd-validate"></a>

このコマンドを実行すると、`--documents` パラメータで指定された各コンポーネントドキュメントの YAML ドキュメント構文が検証されます。

#### 構文
<a name="validate-syntax"></a>

```
awstoe validate [--document-s3-bucket-owner <owner>] 
      --documents <file path,file path,...> [--help] [--trace]
```

#### パラメータとオプション
<a name="validate-parameters"></a>パラメータ

**--document-s3-bucket-owner**  
ショートフォーム:N/A  
S3 URI ベースのドキュメントのソースアカウント ID が提供されました。

**--documents *`./doc-1.yaml`,`./doc-n.yaml`***  
ショートフォーム:-d *`./doc-1.yaml`*,*`./doc-n`*  
コンポーネントのドキュメント (必須)。このパラメータには、実行する YAML コンポーネントドキュメントのファイルロケーションのカンマ区切りリストが含まれます。有効な場所は以下のとおり:  
+ ローカルファイルパス (*./component-doc-example.yaml*)
+ S3 URI (`s3://bucket/key`)
+ Image Builder コンポーネントビルドバージョン ARNs (arn:aws:imagebuilder:us-west-*2:123456789012*:component/*my-example-component*/2021.12.02/1)
リスト内の項目間にはスペースがなく、カンマのみが入ります。オプション

**--help**  
短縮形： -h  
コンポーネント管理アプリケーションオプションを使用するためのヘルプマニュアルを表示します。

**--trace**  
短縮形： -t  
コンソールへの冗長ロギングを有効にする。

# を使用してカスタムコンポーネントを開発するための手動セットアップ AWSTOE
<a name="toe-get-started"></a>

 AWS Task Orchestrator and Executor （AWSTOE) アプリケーションは、コンポーネント定義フレームワーク内でコマンドを作成、検証、実行するスタンドアロンアプリケーションです。 AWS のサービスでは、 AWSTOE を使用してワークフローのオーケストレーション、ソフトウェアのインストール、システム設定の変更、イメージビルドのテストを行うことができます。

 AWSTOE アプリケーションを手動でインストールし、カスタムコンポーネントを開発するためのスタンドアロンアプリケーションとして使用するには、次の手順に従います。Image Builder コンソールまたは AWS CLI コマンドを使用してカスタムコンポーネントを作成する場合、Image Builder はこれらのステップを自動的に処理します。詳細については、「[Image Builder を使用したカスタムコンポーネントの作成](create-component.md)」を参照してください。

# AWSTOE インストールダウンロードの署名を確認する
<a name="awstoe-verify-sig"></a>

このセクションでは、Linux、macOS、Windows ベースのオペレーティングシステム AWSTOE での のインストールダウンロードの有効性を検証するための推奨プロセスについて説明します。

**Topics**
+ [Linux または macOS で AWSTOE のインストールダウンロードの署名を検証する](#awstoe-verify-sig-linux)
+ [Windows で AWSTOE のインストールダウンロードの署名を確認する](#awstoe-verify-sig-win)

## Linux または macOS で AWSTOE のインストールダウンロードの署名を検証する
<a name="awstoe-verify-sig-linux"></a>

このトピックでは、Linux ベースまたは macOS オペレーティングシステム AWSTOE での のインストールダウンロードの有効性を検証するための推奨プロセスについて説明します。

インターネットからアプリケーションをダウンロードする際は、必ずソフトウェアパブリッシャーの身元を認証することをお勧めします。また、アプリケーションが公開されてから変更または破損していないことを確認してください。これにより、ウイルスやマルウェアに感染したバージョンのアプリケーションをインストールせずに済みます。

このトピックのステップを実行した後に AWSTOE アプリケーションのソフトウェアが変更されているか破損していることが判明した場合は、インストールファイルを実行しないでください。代わりに、 サポート にお問い合わせください。サポートオプションの詳細については、「」を参照してください[サポート](https://aws.amazon.com/premiumsupport/)。

AWSTOE Linux ベースおよび macOS オペレーティングシステム用の ファイルは`GnuPG`、安全なデジタル署名のための Pretty Good Privacy (OpenPGP) 標準のオープンソース実装である を使用して署名されます。 `GnuPG` ( とも呼ばれます`GPG`) は、デジタル署名による認証と整合性チェックを提供します。Amazon EC2 は、ダウンロードした Amazon EC2 CLI ツールの検証に使用できるパブリックキーと署名を公開します。`PGP` と `GnuPG` (`GPG`) の詳細については、[http://www.gnupg.org](https://www.gnupg.org/) を参照してください。

まず、ソフトウェア発行元との信頼を確立します。ソフトウェア発行元のパブリックキーをダウンロードし、キー所有者が一致していることを確認してから、*キーリング*に追加します。キーリングとは、既知のパブリックキーの集合です。真正性が確立されたパブリック キーは、アプリケーションの署名を確認するために使用できます。

**Topics**
+ [GPG ツールのインストール](#awstoe-verify-signature-of-binary-download-install-tools)
+ [パブリック キーの認証とインポート](#awstoe-verify-signature-of-binary-download-authenticate-import-public-key)
+ [パッケージの署名の確認](#awstoe-verify-signature-of-binary-package)

### GPG ツールのインストール
<a name="awstoe-verify-signature-of-binary-download-install-tools"></a>

使用しているオペレーティングシステムが Linux、Unix、または macOS の場合、GPG ツールが既にインストールされている可能性があります。システムにツールがインストール済みかどうかをテストするには、コマンドラインプロンプトで **gpg** を入力します。GPG ツールがインストールされている場合、GPG のコマンドプロンプトが表示されます。GPG ツールがインストールされていない場合、コマンドが見つからないというエラーが表示されます。GnuPG パッケージはリポジトリからインストールできます。

GPG ツールをインストールするには、インスタンスに一致するオペレーティングシステムを選択します。

------
#### [ Debian-based Linux ]

ターミナルから、次のコマンドを実行します。

```
apt-get install gnupg
```

------
#### [ Red Hat–based Linux ]

ターミナルから、次のコマンドを実行します。

```
yum install gnupg
```

------
#### [ macOS ]

ターミナルから、次のコマンドを実行します。

```
brew install gnupg
```

------

### パブリック キーの認証とインポート
<a name="awstoe-verify-signature-of-binary-download-authenticate-import-public-key"></a>

プロセスの次のステップでは、 AWSTOE パブリックキーを認証し、`GPG`キーリングに信頼されたキーとして追加します。

**AWSTOE パブリックキーを認証してインポートするには**

1. 次のいずれかを実行してパブリック `GPG` ビルドキーのコピーを取得します。
   + 次の場所からキーをダウンロードします。

      https://awstoe-**<region>**.s3.**<region>**.amazonaws.com/assets/awstoe.gpg。例えば、[https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/assets/awstoe.gpg](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/assets/awstoe.gpg)。
   + 次のテキストからキーをコピーし、[`awstoe.gpg`] という名前のファイルに貼り付けます。必ず次のすべてが含まれるようにしてください。

     ```
     -----BEGIN PGP PUBLIC KEY BLOCK-----
     Version: GnuPG v2
     
     mQENBF8UqwsBCACdiRF2bkZYaFSDPFC+LIkWLwFvtUCRwAHtD8KIwTJ6LVn3fHAU
     GhuK0ZH9mRrqRT2bq/xJjGsnF9VqTj2AJqndGJdDjz75YCZYM+ocZ+r5HSJaeW9i
     S5dykHj7Txti2zHe0G5+W0v7v5bPi2sPHsN7XWQ7+G2AMEPTz8PjxY//I0DvMQns
     Sle3l9hz6wCClz1l9LbBzTyHfSm5ucTXvNe88XX5Gmt37OCDM7vfli0Ctv8WFoLN
     6jbxuA/sV71yIkPm9IYp3+GvaKeT870+sn8/JOOKE/U4sJV1ppbqmuUzDfhrZUaw
     8eW8IN9A1FTIuWiZED/5L83UZuQs1S7s2PjlABEBAAG0GkFXU1RPRSA8YXdzdG9l
     QGFtYXpvbi5jb20+iQE5BBMBCAAjBQJfFKsLAhsDBwsJCAcDAgEGFQgCCQoLBBYC
     AwECHgECF4AACgkQ3r3BVvWuvFJGiwf9EVmrBR77+Qe/DUeXZJYoaFr7If/fVDZl
     6V3TC6p0J0Veme7uXleRUTFOjzbh+7e5sDX19HrnPquzCnzfMiqbp4lSoeUuNdOf
     FcpuTCQH+M+sIEIgPno4PLl0Uj2uE1o++mxmonBl/Krk+hly8hB2L/9n/vW3L7BN
     OMb1Ll9PmgGPbWipcT8KRdz4SUex9TXGYzjlWb3jU3uXetdaQY1M3kVKE1siRsRN
     YYDtpcjmwbhjpu4xm19aFqNoAHCDctEsXJA/mkU3erwIRocPyjAZE2dnlkL9ZkFZ
     z9DQkcIarbCnybDM5lemBbdhXJ6hezJE/b17VA0t1fY04MoEkn6oJg==
     =oyze
     -----END PGP PUBLIC KEY BLOCK-----
     ```

1. **awstoe.gpg** を保存したディレクトリのコマンドプロンプトで、次のコマンドを使用して AWSTOE パブリックキーをキーリングにインポートします。

   ```
   gpg --import awstoe.gpg
   ```

   コマンドで次のような結果が返されます。

   ```
   gpg: key F5AEBC52: public key "AWSTOE <awstoe@amazon.com>" imported
   gpg: Total number processed: 1
   gpg:               imported: 1  (RSA: 1)
   ```

   次のステップで必要になるため、キーの値を書きとめておきます。前述の例では、キーの値は `F5AEBC52` です。

1. 次のコマンドを使用してフィンガープリントを確認し、*キー値*を前述の手順の値と置き換えます。

   ```
   gpg --fingerprint key-value
   ```

   このコマンドで次のような結果が返されます。

   ```
   pub   2048R/F5AEBC52 2020-07-19
         Key fingerprint = F6DD E01C 869F D639 15E5  5742 DEBD C156 F5AE BC52
   uid       [ unknown] AWSTOE <awstoe@amazon.com>
   ```

   さらに、前述の例のように、フィンガープリント文字列は「`F6DD E01C 869F D639 15E5 5742 DEBD C156 F5AE BC52`」になります。返されたキー フィンガープリントをこのページで公開されているものと比較します。これらは一致するはずです。一致しない場合は、 AWSTOE インストールスクリプトをインストールせず、 にお問い合わせください サポート。

### パッケージの署名の確認
<a name="awstoe-verify-signature-of-binary-package"></a>

`GPG` ツールをインストール後、 AWSTOE パブリックキーを認証してインポートし、そのパブリック キーが信頼済みであることを確認すると、インストールスクリプトの署名を確認できるようになります。

**インストールスクリプトの署名を確認するには**

1. コマンドプロンプトで次のコマンドを実行し、アプリケーションバイナリをダウンロードします。

   ```
   curl -O https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/<architecture>/awstoe
   ```

   例えば、次のようになります。

   ```
   curl -O https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/amd64/awstoe
   ```

   **architecture**でサポートされる値は `amd64`、`386`、および `arm64` です。

1. コマンドプロンプトで次のコマンドを実行し、同じ S3 キー接頭辞パスから対応するアプリケーションバイナリの署名ファイルをダウンロードします。

   ```
   curl -O https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/<architecture>/awstoe.sig
   ```

   例えば、次のようになります。

   ```
   curl -O https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/amd64/awstoe.sig
   ```

   **architecture**でサポートされる値は `amd64`、`386`、および `arm64` です。

1. 保存したディレクトリのコマンドプロンプト`awstoe.sig`と AWSTOE インストールファイルで次のコマンドを実行して、署名を検証します。ファイルが2つとも存在している必要があります。

   ```
   gpg --verify ./awstoe.sig ~/awstoe
   ```

   出力は次のようになります。

   ```
   gpg: Signature made Mon 20 Jul 2020 08:54:55 AM IST using RSA key ID F5AEBC52
   gpg: Good signature from "AWSTOE awstoe@amazon.com" [unknown]
   gpg: WARNING: This key is not certified with a trusted signature!
   gpg:          There is no indication that the signature belongs to the owner.
   Primary key fingerprint: F6DD E01C 869F D639 15E5 5742 DEBD C156 F5AE BC52
   ```

   出力に「`Good signature from "AWSTOE <awstoe@amazon.com>"`」という句が含まれる場合は、署名が正常に確認されており、 AWSTOE のインストールスクリプトを実行できることを意味しています。

   出力結果に「`BAD signature`」という句が含まれる場合、手順が正しいことをもう一度確認してください。この応答が続く場合は、 サポートに連絡してください。以前にダウンロードしたインストール ファイルを実行しないでください。

以下は、表示される可能性のある警告の詳細です。
+ 警告: このキーは、信頼済みの署名で認定されていません\$1 署名が所有者に属していることが確認できません。 AWS オフィスを訪問し、直接キーを受け取るのが理想的です。しかし、キーは多くの場合ウェブサイトからダウンロードされます。この場合、ウェブサイトは AWS ウェブサイトです。
+ **gpg: 最終的に信用されたキーが見つかりません。**これは、特定のキーがユーザー (またはユーザーが信頼する他のユーザー) によって「最終的に信頼された」キーでないことを意味します。

詳細については、「[http://www.gnupg.org](http://www.gnupg.org)」を参照してください。

## Windows で AWSTOE のインストールダウンロードの署名を確認する
<a name="awstoe-verify-sig-win"></a>

このトピックでは、Windows ベースのオペレーティングシステム上の AWS Task Orchestrator and Executor アプリケーションのインストールファイルの有効性を検証するための推奨プロセスについて説明します。

インターネットからアプリケーションをダウンロードする場合は、常にソフトウェア発行元のアイデンティティを認証し、アプリケーションの発行後に改ざん、あるいは破損がないか確認することをお勧めします。これにより、ウイルスやマルウェアに感染したバージョンのアプリケーションをインストールせずに済みます。

このトピックのステップを実行した後に AWSTOE アプリケーションのソフトウェアが変更されているか破損していることが判明した場合は、インストールファイルを実行しないでください。代わりに、 にお問い合わせください サポート。

Windows ベースのオペレーティングシステムでダウンロードした awstoe バイナリの有効性を確認するには、Amazon Services LLC の署名者証明書のサムプリントがこの値と等しいことを確認してください：

**9D CA 72 17 DA FF B8 2F E4 C4 67 77 36 2F A4 AA C9 08 82 15**

**注記**  
新しいバイナリのロールアウトウィンドウ中に、署名者証明書が新しいサムプリントと一致しない場合があります。署名者証明書が一致しない場合は、サムプリントが次の値であることを確認してください。  
**BA 81 25 EE AC 64 2E A9 F3 C5 93 CA 6D 3E B7 93 7D 68 75 74**

この値を検証するには、以下の手順を実行します。

1. ダウンロードした `awstoe.exe` を右クリックして、**プロパティ**ウィンドウを開きます。

1. **デジタル署名**タブを選択します。

1. [**Signature List**] で [**Amazon Services LLC**] を選択し、[**Details**] をクリックします。

1. すでに選択していない場合は **一般**タブにアクセスし、**証明書の表示** を選びます。

1. **詳細** タブを選択し、まだの場合は **すべて**を**表示** のドロップダウンリストで選択します。

1. **拇印** フィールドが表示されるまでスクロールして、**拇印** を選択します。下のウィンドウにサムプリントの値全体が表示されます。
   + 下のウィンドウのサムプリントの値が次の値と等しい場合、

     **9D CA 72 17 DA FF B8 2F E4 C4 67 77 36 2F A4 AA C9 08 82 15**

     ダウンロードした AWSTOE バイナリは本物であり、安全にインストールできます。
   + 下部の詳細ウィンドウのサムプリントの値が上記の値と等しくない場合には、`awstoe.exe` を実行しないでください。

**Topics**
+ [AWSTOE インストールダウンロードの署名を確認する](awstoe-verify-sig.md)
+ [ステップ 1: をインストールする AWSTOE](#toe-start-install)
+ [ステップ 2: AWS 認証情報を設定する](#toe-start-credentials)
+ [ステップ 3: コンポーネントドキュメントをローカルで開発する](#toe-start-develop)
+ [ステップ 4: AWSTOE コンポーネントを検証する](#toe-start-validate)
+ [ステップ 5: AWSTOE コンポーネントを実行する](#toe-start-run)

## ステップ 1: をインストールする AWSTOE
<a name="toe-start-install"></a>

コンポーネントをローカルで開発するには、 AWSTOE アプリケーションをダウンロードしてインストールします。

1. 

**AWSTOE アプリケーションをダウンロードする**

   インストールするには AWSTOE、アーキテクチャとプラットフォームに適したダウンロードリンクを選択します。アプリケーションのダウンロードリンクの詳細なリストについては、「[AWSTOE ダウンロード](toe-component-manager.md#toe-downloads)」を参照してください。
**重要**  
AWS は TLS バージョン 1.0 および 1.1 のサポートを段階的に廃止しています。 AWSTOE ダウンロード用に S3 バケットにアクセスするには、クライアントソフトウェアで TLS バージョン 1.2 以降を使用する必要があります。詳細については、[AWS セキュリティのブログ記事](https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/)を参照してください。

1. 

**署名を検証する**

   ダウンロードを検証する手順は、インストール後に AWSTOE アプリケーションを実行するサーバープラットフォームによって異なります。Linux サーバーでダウンロードを確認する方法については、「[Linux または macOS での署名の検証](awstoe-verify-sig.md#awstoe-verify-sig-linux)」を参照してください。Windows サーバーでダウンロードを確認する方法については、「[Windows で署名を検証する](awstoe-verify-sig.md#awstoe-verify-sig-win)」を参照してください。

**注記**  
AWSTOE は、ダウンロード場所から直接呼び出されます。別途インストールを行う必要はありません。つまり、 はローカル環境を変更 AWSTOE することもできます。  
コンポーネント開発中に変更を確実に分離するには、EC2 インスタンスを使用して AWSTOE コンポーネントを開発およびテストすることをお勧めします。

## ステップ 2: AWS 認証情報を設定する
<a name="toe-start-credentials"></a>

 AWSTOE では AWS のサービス、次のようなタスクを実行するときに、Amazon S3 や Amazon CloudWatch などの他の に接続するための AWS 認証情報が必要です。
+ ユーザー提供の Amazon S3 パスから AWSTOE ドキュメントをダウンロードします。
+ `S3Download` または `S3Upload` アクションモジュールを実行する。
+ CloudWatch にログをストリーミングします (有効になっている場合)。

EC2 インスタンス AWSTOE で実行している場合、 の実行は EC2 インスタンスにアタッチされた IAM ロールと同じアクセス許可 AWSTOE を使用します。

EC2 の IAM ロールの詳細については、「[Amazon EC2 向けの IAM ロール](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)」を参照してください。

次の例は、 `AWS_ACCESS_KEY_ID`および `AWS_SECRET_ACCESS_KEY`環境変数を使用して AWS 認証情報を設定する方法を示しています。

これらの変数を Linux、macOS、または Unix で設定するには、`export` を使用します。

```
export AWS_ACCESS_KEY_ID=your_access_key_id
```

```
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

Windows で PowerShell を使ってこれらの変数を設定するには、`$env`を使う。

```
$env:AWS_ACCESS_KEY_ID=your_access_key_id
```

```
$env:AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

Windows でコマンドプロンプトを使ってこれらの変数を設定するには、`set`を使う。

```
set AWS_ACCESS_KEY_ID=your_access_key_id
```

```
set AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

## ステップ 3: コンポーネントドキュメントをローカルで開発する
<a name="toe-start-develop"></a>

コンポーネントは、プレーンテキストの YAML ドキュメントを使用して作成されます。ドキュメントの構文については[カスタム AWSTOE コンポーネントのコンポーネントドキュメントフレームワークを使用する](toe-use-documents.md)を参照。

以下は、開発の開始点として役立つ *Hello World* コンポーネントドキュメントの例です。

------
#### [ Linux ]

このガイドの Linux 用のコンポーネント例の一部は、`hello-world-linux.yml` という名前のコンポーネントドキュメントファイルを参照しています。これらの例を試すには、次のドキュメントを使用できます。

```
name: Hello World
description: This is hello world testing document for Linux.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the test phase.'
```

------
#### [ Windows ]

このガイドの Windows 用のコンポーネント例の一部は、`hello-world-windows.yml` という名前のコンポーネントドキュメントファイルを参照しています。これらの例を試すには、次のドキュメントを使用できます。

```
name: Hello World
description: This is Hello World testing document for Windows.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the test phase.'
```

------
#### [ macOS ]

このガイドの macOS 用のコンポーネント例の一部は、`hello-world-macos.yml` という名前のコンポーネントドキュメントファイルを参照しています。これらの例を試すには、次のドキュメントを使用できます。

```
name: Hello World
description: This is hello world testing document for macOS.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the test phase.'
```

------

## ステップ 4: AWSTOE コンポーネントを検証する
<a name="toe-start-validate"></a>

アプリケーションの AWSTOE コンポーネント構文を AWSTOE ローカルで検証できます。次の例は、コンポーネントを実行せずに構文を検証するための AWSTOE アプリケーション`validate`コマンドを示しています。

**注記**  
 AWSTOE アプリケーションは、現在のオペレーティングシステムのコンポーネント構文のみを検証できます。例えば、`awstoe.exe` を Windows で実行している場合、`ExecuteBash` アクションモジュールを使用する Linux ドキュメントの構文は検証できません。

Linux または macOS

```
awstoe validate --documents /home/user/hello-world.yml
```

Windows

```
awstoe.exe validate --documents C:\Users\user\Documents\hello-world.yml
```

## ステップ 5: AWSTOE コンポーネントを実行する
<a name="toe-start-run"></a>

 AWSTOE アプリケーションは、`--phases`コマンドライン引数を使用して、指定されたドキュメントの 1 つ以上のフェーズを実行できます。`--phases`でサポートされている値は`build`、`validate`、`test`です。複数のフェーズ値をカンマで区切って入力できます。

フェーズのリストを指定すると、 AWSTOE アプリケーションは各ドキュメントの指定されたフェーズを順番に実行します。たとえば、 は の `build`および `validate`フェーズ AWSTOE を実行し`document1.yaml`、その後に の `build`および `validate`フェーズを実行します`document2.yaml`。

ログを安全に保存し、トラブルシューティングのために保持するには、Amazon S3 にログストレージを設定することをお勧めします。Image Builder では、ログを発行するための Amazon S3 の場所はインフラストラクチャ設定で指定されます。インフラ構成の詳細については、[Image Builder インフラストラクチャ設定の管理](manage-infra-config.md)を参照。

フェーズのリストが指定されていない場合、 AWSTOE アプリケーションは YAML ドキュメントに記載されている順序ですべてのフェーズを実行します。

1 つまたは複数のドキュメントで特定のフェーズを実行するには、以下のコマンドを使用します。

単一フェーズ

```
awstoe run --documents hello-world.yml --phases build
```

複数フェーズ

```
awstoe run --documents hello-world.yml --phases build,test
```

**ドキュメント実行**  
1 つのドキュメントですべてのフェーズを実行

```
awstoe run --documents documentName.yaml
```

複数のドキュメントで全フェーズを実行

```
awstoe run --documents documentName1.yaml,documentName2.yaml
```

Amazon S3 情報を入力して、ユーザー定義のローカルパスから AWSTOE ログをアップロードする (推奨）

```
awstoe run --documents documentName.yaml --log-s3-bucket-name amzn-s3-demo-destination-bucket --log-s3-key-prefix S3KeyPrefix --log-s3-bucket-owner S3BucketOwner --log-directory local_path
```

1 つのドキュメントですべてのフェーズを実行し、すべてのログをコンソールに表示する

```
awstoe run --documents documentName.yaml --trace
```

コマンドの例

```
awstoe run --documents s3://bucket/key/doc.yaml --phases build,validate
```

一意の ID でドキュメントを実行

```
awstoe run --documents documentName.yaml --execution-id user-provided-id --phases build,test
```

のヘルプを取得する AWSTOE

```
awstoe --help
```

# カスタム AWSTOE コンポーネントのコンポーネントドキュメントフレームワークを使用する
<a name="toe-use-documents"></a>

 AWS Task Orchestrator and Executor (AWSTOE) コンポーネントフレームワークを使用してコンポーネントを構築するには、作成したコンポーネントに適用されるフェーズとステップを表す YAML ベースのドキュメントを提供する必要があります。コンポーネントは、新しい Amazon マシンイメージ (AMI) またはコンテナイメージを作成するときに AWS のサービス 使用します。

**Topics**
+ [コンポーネントドキュメントワークフロー](#component-doc-workflow)
+ [コンポーネントロギング](#component-logging)
+ [入力チェーンと出力連鎖](#document-chaining)
+ [文書スキーマと定義](#document-schema)
+ [ドキュメントの例](#document-example)
+ [カスタムコンポーネントドキュメントでの変数の使用](toe-user-defined-variables.md)
+ [で条件付きコンストラクトを使用する AWSTOE](toe-conditional-constructs.md)
+ [AWSTOE コンポーネントドキュメントで比較演算子を使用する](toe-comparison-operators.md)
+ [AWSTOE コンポーネントドキュメントで論理演算子を使用する](toe-logical-operators.md)
+ [でループコンストラクトを使用する AWSTOE](toe-looping-constructs.md)

## コンポーネントドキュメントワークフロー
<a name="component-doc-workflow"></a>

 AWSTOE コンポーネントドキュメントでは、フェーズとステップを使用して関連タスクをグループ化し、それらのタスクをコンポーネントの論理ワークフローに整理します。

**ヒント**  
コンポーネントを使用してイメージを構築するサービスには、ビルドプロセスにどのフェーズを使用するか、またそれらのフェーズをいつ実行できるかについてのルールが実装されている場合があります。これはコンポーネントを設計する際に考慮すべき重要な点です。

**phases**  
フェーズは、イメージビルドプロセスにおけるワークフローの進行状況を表します。例えば、Image Builder サービスは、生成するイメージのビルド段階で `build` と `validate` のフェーズを使用します。*テスト段階*では `test` と `container-host-test` フェーズを使用して、イメージスナップショットまたはコンテナイメージが期待どおりの結果を生成することを確認してから、最終的な AMI を作成するか、コンテナイメージを配布します。

コンポーネントが実行されると、各フェーズの関連コマンドがコンポーネントドキュメントに表示されている順序で適用されます。

**フェーズのルール**
+ フェーズ名はドキュメント内で一意である必要があります。
+ 文書には多数のフェーズを定義できます。
+ ドキュメントには、次のうち、少なくとも 1 つは指定が必要です。
  + **ビルド** — Image Builder の場合、このフェーズは通常、ビルド段階で使用されます。
  + **検証** — Image Builder の場合、このフェーズは通常、ビルド段階で使用されます。
  + **テスト** — Image Builder の場合、このフェーズは通常、テスト段階で使用されます。
+ フェーズは、常にドキュメントで定義されている順序で実行されます。で AWSTOE AWS CLI コマンドに指定された順序は効果がありません。

**Steps**  
ステップは、各フェーズ内のワークフローを定義する個別の作業単位です。ステップは順番に実行されます。ただし、あるステップのインプットまたはアウトプットを、インプットとして後続のステップに送ることもあります。これをロールの連鎖と呼びます。

**ステップのルール**
+ その名前はボットに対して一意である必要があります。
+ ステップでは、終了コードを返すサポートされているアクション (アクションモジュール) を使用する必要があります。

  サポートされているアクションモジュールの全リスト、その仕組み、入出力値、例については、[AWSTOE コンポーネントマネージャーでサポートされるアクションモジュール](toe-action-modules.md) を参照してください。

## コンポーネントロギング
<a name="component-logging"></a>

AWSTOE は、コンポーネントが実行されるたびに、新しいイメージの構築とテストに使用される新しいログフォルダを EC2 インスタンスに作成します。コンテナイメージの場合、ログフォルダはコンテナに保存されます。

イメージ作成プロセス中に問題が発生した場合のトラブルシューティングを支援するために、コンポーネントの実行中に AWSTOE が作成する入力ドキュメントとすべての出力ファイルはログフォルダに保存されます。

ログフォルダ名は次の部分で構成されています。

1. **ログディレクトリ** – サービスが AWSTOE コンポーネントを実行すると、コマンドの他の設定とともにログディレクトリに渡されます。以下の例では、Image Builder が使用するログファイル形式を示します。
   + **Linux および macOS**: `/var/lib/amazon/toe/`
   + **Windows**: `$env:ProgramFiles\Amazon\TaskOrchestratorAndExecutor\`

1. **ファイルプレフィックス** — "`TOE_`" これはすべてのコンポーネントに使用される標準のプレフィックスです。

1. **ランタイム** — これは YYYY-MM-DD\$1HH-MM-SS\$1UTC-0 形式のタイムスタンプです。

1. **実行 ID** – これは、 が 1 つ以上のコンポーネント AWSTOE を実行するときに割り当てられる GUID です。

例: `/var/lib/amazon/toe/TOE_2021-07-01_12-34-56_UTC-0_a1bcd2e3-45f6-789a-bcde-0fa1b2c3def4`

AWSTOE は、次のコアファイルを ログフォルダに保存します。

**入力ファイル**
+ **document.yaml** — コマンドの入力として使用されるドキュメント。コンポーネントが実行されると、このファイルはアーティファクトとして保存されます。

**出力ファイル**
+ **application.log** — アプリケーションログには、コンポーネントの実行中に何が起こっているかを示す。 AWSTOE のタイムスタンプ付きのデバッグレベルの情報が含まれます。
+ **detailedoutput.json** — この JSON ファイルには、コンポーネントのランタイムに適用されるすべてのドキュメント、フェーズ、ステップの実行ステータス、入力、出力、失敗に関する詳細情報が含まれています。
+ **console.log** – コンソールログには、コンポーネントの実行中に がコンソールに AWSTOE 書き込むすべての標準出力 (stdout) および標準エラー (stderr) 情報が含まれます。
+ **chaining.json** – この JSON ファイルは、連鎖式の解決 AWSTOE に適用された最適化を表します。

**注記**  
ログフォルダには、ここで説明していない他の一時ファイルが含まれている場合もあります。

## 入力チェーンと出力連鎖
<a name="document-chaining"></a>

 AWSTOE 設定管理アプリケーションは、以下の形式でリファレンスを記述することで、入出力を連鎖させる機能を提供します。

`{{ phase_name.step_name.inputs/outputs.variable }}`

または

`{{ phase_name.step_name.inputs/outputs[index].variable }}`

チェーニング特徴量を使うと、コードをリサイクルして文書の保守性を向上させることができます。

**チェーニングのルール**
+ チェーニング式は各ステップの入力セクションでのみ使用できます。
+ 連鎖式を含むステートメントは、引用符で囲む必要があります。例えば、次のようになります。
  + **無効な表現**: `echo {{ phase.step.inputs.variable }}`
  + **有効な表現**: `"echo {{ phase.step.inputs.variable }}"`
  + **有効な表現**: `'echo {{ phase.step.inputs.variable }}'`
+ 連鎖式は同じドキュメント内の他のステップやフェーズの変数を参照できます。ただし、呼び出し元のサービスには、連鎖式を 1 つのステージのコンテキスト内でのみ動作させることを要求するルールがある場合があります。例えば、Image Builder は各ステージを独立して実行するため、ビルドステージから*テストステージ*へのチェーニングをサポートしていません。
+ 連鎖式のインデックスは 0 から始まるインデックスに従います。インデックスは最初の要素を参照するゼロ (0) から始まります。

**例**

次のサンプルステップの 2 番目のエントリでソース変数を参照する場合、チェーンパターンは `{{ build.SampleS3Download.inputs[1].source }}` です。

```
phases:
  - name: 'build'
    steps:
      - name: SampleS3Download
        action: S3Download
        timeoutSeconds: 60
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - source: 's3://sample-bucket/sample1.ps1'
            destination: 'C:\sample1.ps1'
          - source: 's3://sample-bucket/sample2.ps1'
            destination: 'C:\sample2.ps1'
```

次のサンプルステップの出力変数 (「Hello」と等しい) を参照する場合の連鎖パターンは `{{ build.SamplePowerShellStep.outputs.stdout }}` です。

```
phases:
  - name: 'build'
    steps:
      - name: SamplePowerShellStep
        action: ExecutePowerShell
        timeoutSeconds: 120
        onFailure: Abort
        maxAttempts: 3
        inputs:
          commands:
            - 'Write-Host "Hello"'
```

## 文書スキーマと定義
<a name="document-schema"></a>

ドキュメントの YAML スキーマを次に示します。

```
name: (optional)
description: (optional)
schemaVersion: "string"

phases:
  - name: "string"
    steps:
      - name: "string"
        action: "string"
        timeoutSeconds: integer
        onFailure: "Abort|Continue|Ignore"
        maxAttempts: integer
        inputs:
```

ドキュメントのスキーマ定義は次のとおりです。


| フィールド | 説明 | タイプ | 必須 | 
| --- | --- | --- | --- | 
| 名前 | 文書の名前。 | String | いいえ | 
| 説明 | 文書の説明。 | String |  いいえ  | 
| schemaVersion | ドキュメントのスキーマバージョン。現在は 1.0。 | String |  はい  | 
| phases | フェーズとそのステップのリスト。 |  リスト  |  はい  | 

フェーズのスキーマ定義は次のとおりです。


| フィールド | 説明 | タイプ | 必須 | 
| --- | --- | --- | --- | 
| 名前 | フェーズの名前。 | String | はい | 
| ステップ | フェーズ内のステップのリスト。 | リスト  |  はい  | 

ステップのスキーマ定義は次のとおりです。


| フィールド | 説明 | タイプ | 必須 | デフォルトの値 | 
| --- | --- | --- | --- | --- | 
| 名前 | ステップのユーザー定義名。 | String |  |  | 
| アクション | ステップを実行するモジュールに関するキーワード。 | String |  |  | 
| timeoutSeconds |  ステップが失敗または再試行されるまでに実行される秒数。 また、タイムアウトが無限であることを示す -1 値もサポートします。0 やその他の負の値は使用できません。  | 整数 |  いいえ  | 7,200 秒 (120 分) | 
| onFailure |  ステップが失敗した場合は実行する内容を指定します。有効な値は次のとおりです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-use-documents.html)  |  String  |  いいえ  | 中止 | 
| maxAttempts | ステップが失敗するまでに許可される最大試行回数。 | 整数 |  いいえ  | 1 | 
| 入力 | アクションモジュールがステップを実行するのに必要なパラメータが含まれます。 | dict |  はい  |  | 

## ドキュメントの例
<a name="document-example"></a>

次の例は、ターゲットオペレーティングシステムのタスクを実行する AWSTOE コンポーネントドキュメントを示しています。

------
#### [ Linux ]

**例 1: カスタムバイナリファイルを実行する**  
以下は、Linux インスタンスでカスタムバイナリファイルをダウンロードして実行するドキュメントの例です。

```
name: LinuxBin
description: Download and run a custom Linux binary file.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: Download
        action: S3Download
        inputs:
          - source: s3://<replaceable>amzn-s3-demo-source-bucket</replaceable>/<replaceable>myapplication</replaceable>
            destination: /tmp/<replaceable>myapplication</replaceable>
      - name: Enable
        action: ExecuteBash
        onFailure: Continue
        inputs:
          commands:
            - 'chmod u+x {{ build.Download.inputs[0].destination }}'
      - name: Install
        action: ExecuteBinary
        onFailure: Continue
        inputs:
          path: '{{ build.Download.inputs[0].destination }}'
          arguments:
            - '--install'
      - name: Delete
        action: DeleteFile
        inputs:
          - path: '{{ build.Download.inputs[0].destination }}'
```

------
#### [ Windows ]

**例 1: Windows 更新プログラムをインストールする**  
次のドキュメントの例では、利用可能な Windows 更新プログラムをすべてインストールし、設定スクリプトを実行し、AMI の作成前に変更を検証し、AMI の作成後に変更をテストします。

```
name: RunConfig_UpdateWindows
description: 'This document will install all available Windows updates and run a config script. It will then validate the changes before an AMI is created. Then after AMI creation, it will test all the changes.'
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: DownloadConfigScript
        action: S3Download
        timeoutSeconds: 60
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - source: 's3://customer-bucket/config.ps1'
            destination: 'C:\config.ps1'

      - name: RunConfigScript
        action: ExecutePowerShell
        timeoutSeconds: 120
        onFailure: Abort
        maxAttempts: 3
        inputs:
          file: '{{build.DownloadConfigScript.inputs[0].destination}}'

      - name: Cleanup
        action: DeleteFile
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - path: '{{build.DownloadConfigScript.inputs[0].destination}}'

      - name: RebootAfterConfigApplied
        action: Reboot
        inputs:
          delaySeconds: 60

      - name: InstallWindowsUpdates
        action: UpdateOS

  - name: validate
    steps:
      - name: DownloadTestConfigScript
        action: S3Download
        timeoutSeconds: 60
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - source: 's3://customer-bucket/testConfig.ps1'
            destination: 'C:\testConfig.ps1'

      - name: ValidateConfigScript
        action: ExecutePowerShell
        timeoutSeconds: 120
        onFailure: Abort
        maxAttempts: 3
        inputs:
          file: '{{validate.DownloadTestConfigScript.inputs[0].destination}}'

      - name: Cleanup
        action: DeleteFile
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - path: '{{validate.DownloadTestConfigScript.inputs[0].destination}}'

  - name: test
    steps:
      - name: DownloadTestConfigScript
        action: S3Download
        timeoutSeconds: 60
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - source: 's3://customer-bucket/testConfig.ps1'
            destination: 'C:\testConfig.ps1'

      - name: ValidateConfigScript
        action: ExecutePowerShell
        timeoutSeconds: 120
        onFailure: Abort
        maxAttempts: 3
        inputs:
          file: '{{test.DownloadTestConfigScript.inputs[0].destination}}'
```

**例 2: Windows インスタンス AWS CLI に をインストールする**  
セットアップファイルを使用して Windows インスタンス AWS CLI に をインストールするドキュメントの例を次に示します。

```
name: InstallCLISetUp
description: Install &CLI; using the setup file
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: Download
        action: S3Download
        inputs:
          - source: s3://aws-cli/AWSCLISetup.exe
            destination: C:\Windows\temp\AWSCLISetup.exe
      - name: Install
        action: ExecuteBinary
        onFailure: Continue
        inputs:
          path: '{{ build.Download.inputs[0].destination }}'
          arguments:
            - '/install'
            - '/quiet'
            - '/norestart'
      - name: Delete
        action: DeleteFile
        inputs:
          - path: '{{ build.Download.inputs[0].destination }}'
```

**例 3: MSI インストーラ AWS CLI を使用して をインストールする**  
以下は、MSI インストーラ AWS CLI で をインストールするドキュメントの例です。

```
name: InstallCLIMSI
description: Install &CLI; using the MSI installer
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: Download
        action: S3Download
        inputs:
          - source: s3://aws-cli/AWSCLI64PY3.msi
            destination: C:\Windows\temp\AWSCLI64PY3.msi
      - name: Install
        action: ExecuteBinary
        onFailure: Continue
        inputs:
          path: 'C:\Windows\System32\msiexec.exe'
          arguments:
            - '/i'
            - '{{ build.Download.inputs[0].destination }}'
            - '/quiet'
            - '/norestart'
      - name: Delete
        action: DeleteFile
        inputs:
          - path: '{{ build.Download.inputs[0].destination }}'
```

------
#### [ macOS ]

**例 1: カスタム macOS バイナリファイルを実行する**  
次のドキュメントの例では、macOS インスタンスにカスタムバイナリファイルをダウンロードして実行します。

```
name: macOSBin
description: Download and run a binary file on macOS.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: Download
        action: S3Download
        inputs:
          - source: s3://<replaceable>amzn-s3-demo-source-bucket</replaceable>/<replaceable>myapplication</replaceable>
            destination: /tmp/<replaceable>myapplication</replaceable>
      - name: Enable
        action: ExecuteBash
        onFailure: Continue
        inputs:
          commands:
            - 'chmod u+x {{ build.Download.inputs[0].destination }}'
      - name: Install
        action: ExecuteBinary
        onFailure: Continue
        inputs:
          path: '{{ build.Download.inputs[0].destination }}'
          arguments:
            - '--install'
      - name: Delete
        action: DeleteFile
        inputs:
          - path: '{{ build.Download.inputs[0].destination }}'
```

------

# カスタムコンポーネントドキュメントでの変数の使用
<a name="toe-user-defined-variables"></a>

変数を使用すると、アプリケーション全体で使用できるわかりやすい名前でデータにラベルを付けることができます。複雑なワークフローでは、シンプルで読み取り可能な形式でカスタム変数を定義し、 AWSTOE コンポーネントの YAML アプリケーションコンポーネントドキュメントで参照できます。

このセクションでは、構文、名前の制約、例など、YAML アプリケーション AWSTOE コンポーネントドキュメントでコンポーネントの変数を定義するのに役立つ情報を提供します。

## 定数
<a name="user-defined-vars-constants"></a>

定数は不変の変数で、一度定義すると変更したりオーバーライドしたりすることはできません。定数は、 AWSTOE ドキュメントの `constants`セクションの値を使用して定義できます。

**定数命名規則**
+ 名前は 3 文字以上 128 文字以下でなければならない。
+ 名前には、英数字（a-z, A-Z, 0-9）、ダッシュ（-）、アンダースコア（\$1）のみを含めることができます。
+ 名前は文書内で一意でなければならない。
+ 名前は YAML 文字列として指定する必要があります。

**[Syntax]** (構文)

```
constants:
  - <name>:
      type: <constant type>
      value: <constant value>
```


| キー名 | 必要 | 説明 | 
| --- | --- | --- | 
|  `name`  |  はい  | 定数の名前。ドキュメント内で一意である必要があります (他のパラメータ名や定数と同じであってはなりません)。 | 
| `value` | はい | 定数の値。 | 
| `type` | はい | 定数のタイプ。対応タイプはstring。 | 

**文書内の参照定数値**  
次のように、YAML ドキュメント内のステップもしくはループ入力で定数を参照できます：
+ 定数参照は大文字と小文字を区別し、名前は正確に一致しなければならない。
+ 名前は二重中括弧 `{{` *MyConstant* `}}` で囲む必要があります。
+ 中括弧内にはスペースを入れてもかまいませんが、自動的に切り捨てられます。例えば、以下のリファレンスはすべて有効です。

  `{{ MyConstant }}`, `{{ MyConstant}}`, `{{MyConstant }}`, `{{MyConstant}}`
+ YAML ドキュメント内の参照は文字列 (一重引用符または二重引用符で囲む) として指定する必要があります。

  例えば、`- {{ MyConstant }}` は文字列として識別されないため無効です。

  ただし、参照先 `- '{{ MyConstant }}'` と `- "{{ MyConstant }}"` はどちらも有効です。

**例**  
ステップ入力で参照される定数

```
name: Download AWS CLI version 2
schemaVersion: 1.0
constants:
  - Source:
      type: string
      value: https://awscli.amazonaws.com/AWSCLIV2.msi
phases:
  - name: build
    steps:
      - name: Download
        action: WebDownload
        inputs:
          - source: '{{ Source }}'
            destination: 'C:\Windows\Temp\AWSCLIV2.msi'
```

ループ入力で参照される定数

```
name: PingHosts
schemaVersion: 1.0
constants:
  - Hosts:
      type: string
      value: 127.0.0.1,amazon.com
phases:
  - name: build
    steps:
      - name: Ping
        action: ExecuteBash
        loop:
          forEach:
            list: '{{ Hosts }}'
            delimiter: ','
        inputs:
          commands:
            - ping -c 4 {{ loop.value }}
```

## パラメータ
<a name="user-defined-vars-parameters"></a>

パラメータは、呼び出し元のアプリケーションがランタイムに提供できる設定を含む可変変数です。YAML ドキュメントの `Parameters` セクションでパラメータを定義できます。

**パラメータ命名規則**
+ 名前は 3 文字以上 128 文字以下でなければならない。
+ 名前には、英数字（a-z, A-Z, 0-9）、ダッシュ（-）、アンダースコア（\$1）のみを含めることができます。
+ 名前は文書内で一意でなければならない。
+ 名前は YAML 文字列として指定する必要があります。

### 構文
<a name="vars-parameters-syntax"></a>

```
parameters:
  - <name>:
      type: <parameter type>
      default: <parameter value>
      description: <parameter description>
```


| キー名 | 必要 | 説明 | 
| --- | --- | --- | 
| `name` | はい | パラメータの名前。ドキュメント内で一意である必要があります (他のパラメータ名や定数と同じであってはなりません)。 | 
| `type` | はい | パラメータのデータ型。対応するタイプは `string` を含みます。 | 
| `default` | いいえ | パラメータのデフォルト値。 | 
| `description` | いいえ | パラメータを記述します。 | 

### ドキュメント内の参照パラメータ値
<a name="vars-parameters-referencing"></a>

次のように、YAML ドキュメント内のステップ入力またはループ入力でパラメータを参照できます。
+ パラメータ参照は大文字と小文字が区別され、名前は完全に一致する必要があります。
+ 名前は二重中括弧 `{{` *MyParameter* `}}` で囲む必要があります。
+ 中括弧内にはスペースを入れてもかまいませんが、自動的に切り捨てられます。例えば、以下のリファレンスはすべて有効です。

  `{{ MyParameter }}`, `{{ MyParameter}}`, `{{MyParameter }}`, `{{MyParameter}}`
+ YAML ドキュメント内の参照は文字列 (一重引用符または二重引用符で囲む) として指定する必要があります。

  例えば、`- {{ MyParameter }}` は文字列として識別されないため無効です。

  ただし、参照先 `- '{{ MyParameter }}'` と `- "{{ MyParameter }}"` はどちらも有効です。

**例**  
次の例は YAML ドキュメントでのパラメータの使用方法を示しています。
+ ステップ入力のパラメータを参照してください。

  ```
  name: Download AWS CLI version 2
  schemaVersion: 1.0
  parameters:
    - Source:
        type: string
        default: 'https://awscli.amazonaws.com/AWSCLIV2.msi'
        description: The AWS CLI installer source URL.
  phases:
    - name: build
      steps:
        - name: Download
          action: WebDownload
          inputs:
            - source: '{{ Source }}'
              destination: 'C:\Windows\Temp\AWSCLIV2.msi'
  ```
+ ループ入力のパラメータを参照する：

  ```
  name: PingHosts
  schemaVersion: 1.0
  parameters:
    - Hosts:
        type: string
        default: 127.0.0.1,amazon.com
        description: A comma separated list of hosts to ping.
  phases:
    - name: build
      steps:
        - name: Ping
          action: ExecuteBash
          loop:
            forEach:
              list: '{{ Hosts }}'
              delimiter: ','
          inputs:
            commands:
              - ping -c 4 {{ loop.value }}
  ```

### ランタイムにパラメータをオーバーライドする
<a name="vars-parameters-set-at-runtime"></a>

の `--parameters`オプションをキーと値のペア AWS CLI とともに使用して、実行時にパラメータ値を設定できます。
+ <name><value>パラメータのキーと値のペアを等号 (=) で区切って名前と値として指定します。
+ 複数のパラメータはカンマで区切る必要があります。
+ YAML コンポーネントドキュメントにないパラメータ名は無視されます。
+ パラメータ名と値はどちらも必須です。

**重要**  
コンポーネントパラメータはプレーンテキストの値で、 AWS CloudTrailに記録されます。シークレットを保存するには、 AWS Secrets Manager または AWS Systems Manager Parameter Store を使用することをお勧めします。Secrets Manager の詳細については、AWS Secrets Manager ユーザーガイドの [Secrets Manager とは](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)を参照してください。 AWS Systems Manager パラメータストアについては、AWS Systems Manager ユーザーガイドの[AWS Systems Manager パラメータストア](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html)を参照。

#### 構文
<a name="vars-runtime-parameters-syntax"></a>

```
--parameters name1=value1,name2=value2...
```


| CLI オプション: | 必要 | 説明 | 
| --- | --- | --- | 
| --parameters *name*=*value*,... | いいえ | このオプションは、パラメータ名をキーとして、キーと値のペアのリストを取得します。 | 

**例**  
次の例は YAML ドキュメントでのパラメータの使用方法を示しています。
+ この `--parameter` オプションで指定されたパラメータのキーと値のペアは無効です。

  ```
  --parameters ntp-server=
  ```
+  AWS CLIに `--parameter` オプションでパラメータのキーと値のペアを 1 つ設定します。

  ```
  --parameters ntp-server=ntp-server-windows-qe.us-east1.amazon.com
  ```
+  AWS CLIの `--parameter` オプションで複数のパラメータのキーと値のペアを設定します。

  ```
  --parameters ntp-server=ntp-server.amazon.com,http-url=https://internal-us-east1.amazon.com
  ```

## Systems Manager パラメータストアパラメータを使用する
<a name="toe-ssm-parameters"></a>

変数の前に を付けることで、コンポーネントドキュメントで AWS Systems Manager Parameter Store パラメータ (SSM パラメータ) を参照できます`aws:ssm`。例えば、

`{{ aws:ssm:/my/param }}` は SSM パラメータ の値に解決されます`/my/param`。

この機能は、次の SSM パラメータタイプをサポートしています。
+ 文字列 – AWSTOE 文字列タイプにマッピングされます。
+ StringList – タイプにマッピングします AWSTOE `stringList`。
+ SecureString – AWSTOE 文字列タイプにマッピングします。

パラメータストアの詳細については、 *AWS Systems Manager ユーザーガイド*の[AWS Systems Manager 「パラメータストア](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html)」を参照してください。

SSM パラメータ を使用してシー AWS Secrets Manager クレットを参照することもできます`SecureString`。例: `{{ aws:ssm:/aws/reference/secretsmanager/test/test-secret }}`。詳細については、[「Parameter Store パラメータからのシークレットの参照 AWS Secrets Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/integration-ps-secretsmanager.html)」を参照してください。

**重要**  
Image Builder は、ログから`SecureString`パラメータ解決を除外します。ただし、コンポーネントドキュメントで発行されたコマンドによって機密情報がログに記録されないようにする責任もあります。たとえば、安全な文字列で `echo` コマンドを使用すると、コマンドはプレーンテキストの値をログに書き込みます。

### 必要な IAM 許可
<a name="toe-ssm-parameters-permissions"></a>

コンポーネントで Systems Manager パラメータを使用するには、インスタンスロールにパラメータリソース ARN のアクセス`ssm:GetParameter`許可が必要です。例えば、次のようになります。

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": "ssm:GetParameter",
			"Resource": "arn:aws:ssm:*:111122223333:parameter/ImageBuilder-*"
		}
	]
}
```

------

暗号化された値にアクセスするには、次のアクセス許可も必要です。
+ カスタマーマネージドで暗号化された`SecureString`パラメータまたは AWS Secrets Manager 値`kms:Decrypt`に を追加します AWS KMS key。
+ Secrets Manager シークレットを参照`secretsmanager:GetSecretValue`する場合は、 を追加します。

### コンポーネントドキュメントで SSM パラメータを参照する
<a name="toe-ssm-parameters-example"></a>

次の例は、コンポーネント内の Systems Manager パラメータの Systems Manager パラメータストアパラメータを参照する方法を示しています。

```
name: UseSSMParameterVariable
description: This is a sample component document that prints out the value of an SSM Parameter. Never do this for a SecureString parameter.
schemaVersion: 1.0

phases:
  - name: verify
    steps:
      - name: EchoParameterValue
        action: ExecuteBash
        inputs:
          commands:
            - echo "Log SSM parameter name: /my/test/param, value {{ aws:ssm:/my/test/param }}."
```

### SSM パラメータの動的ランタイム変数解決
<a name="toe-dynamic-vars"></a>

AWSTOE には、変数参照内で実行時に値を操作または変換するために使用できる以下の組み込み関数が用意されています。

#### 関数の解決
<a name="toe-function-resolve"></a>

`resolve` 関数は、別の変数参照内の変数参照を解決し、動的変数名参照を可能にします。これは、パラメータパスの一部が可変で、ドキュメントパラメータとして渡される可能性がある SSM パラメータを使用する場合に便利です。

`resolve` 関数は、SSM パラメータの名前部分の動的解決のみをサポートします。

##### 構文
<a name="toe-function-resolve-syntax"></a>

`dynamic_variable` 次の例では、 は SSM パラメータの名前を表し、次のいずれかである必要があります。
+ SSM パラメータリファレンス (例: `aws:ssm:/my/param`)
+ コンポーネントドキュメントのパラメータリファレンス (例: `parameter-name`)

```
{{ aws:ssm:resolve(dynamic_variable) }}
```

##### 例: 実行時に SSM パラメータを解決する
<a name="toe-function-resolve-examples"></a>

次の例は、YAML コンポーネントドキュメントで `resolve`関数を使用する方法を示しています。

```
name: SsmParameterTest
description: This component verifies an SSM parameter variable reference with the echo command.
schemaVersion: 1.0

parameters:
  - parameter-name:
      type: string
      description: "test"

phases:
  - name: validate
    steps:
      - name: PrintDynamicVariable
        action: ExecuteBash
        inputs:
          commands:
            - echo "{{ aws:ssm:resolve(parameter-name) }}"
```

# で条件付きコンストラクトを使用する AWSTOE
<a name="toe-conditional-constructs"></a>

条件構造は、指定された条件式が `true` と `false` のどちらに評価されるかに基づいて、異なるアクションをコンポーネントドキュメントで実行します。`if` 構造を使用すると、コンポーネントドキュメントの実行フローを制御できます。

## if 構造
<a name="toe-conditional-if"></a>

`if` 構造を使用すると、ステップを実行する必要があるかどうかを評価できます。デフォルトでは、`if` 条件式が `true` に評価されると AWSTOE はステップを実行し、条件が `false` に評価されると AWSTOE はステップをスキップします。ステップがスキップされた場合でも、フェーズとドキュメントが正常に実行されたかどうかを AWSTOE が評価するときは、成功したステップとして扱われます。

**注記**  
`if` ステートメントが評価されるのは 1 回だけです。これは、ステップが再起動をトリガーした場合でも同様です。再起動したステップは、その `if` ステートメントが既に評価されたことを認識し、中断した箇所から続行します。

### 構文
<a name="toe-conditional-if-syntax"></a>

```
if:
  - <conditional expression>:
      [then: <step action>]
      [else: <step action>]
```


| キー名 | 必要 | 説明 | 
| --- | --- | --- | 
| 条件式 | はい |  条件式の最上位には、次のタイプの演算子を 1 つだけ含めることができます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-conditional-constructs.html) 式が複数の条件を満たす必要がある場合は、論理演算子を使用して条件を指定します。  | 
| 次に | いいえ |  条件式が `true` に評価された場合に実行するアクションを定義します。  | 
| else | いいえ |  条件式が `false` に評価された場合に実行するアクションを定義します。  | 
| ステップアクション | 条件付き |  `then` または `else` を使用するときは、次のステップアクションのいずれかを指定する必要があります。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-conditional-constructs.html)  | 

**例 1: パッケージをインストールする**  
 AWSTOE コンポーネントドキュメントの以下のステップ例では、論理演算子を使用してパラメータ値をテストし、パッケージが解凍されている場合は、適切なパッケージマネージャーコマンドを実行してアプリケーションをインストールします。

```
    - name: InstallUnzipAptGet
      action: ExecuteBash
      if:
        and:
            - binaryExists: 'apt-get'
            - not:
                binaryExists: 'unzip'
      inputs:
        commands:
            - sudo apt-get update
            - sudo apt-get install -y unzip

    - name: InstallUnzipYum
      action: ExecuteBash
      if:
        and:
            - binaryExists: 'yum'
            - not:
                binaryExists: 'unzip'
      inputs:
        commands:
            - sudo yum install -y unzip

    - name: InstallUnzipZypper
      action: ExecuteBash
      if:
        and:
            - binaryExists: 'zypper'
            - not:
                binaryExists: 'unzip'
      inputs:
        commands:
            - sudo zypper refresh
            - sudo zypper install -y unzip
```

**例 2: ステップをスキップする**  
次の例は、ステップをスキップする 2 つの方法を示しています。1 つは論理演算子を使用し、もう 1 つは比較演算子と `Skip` ステップアクションを使用します。

```
# Creates a file if it does not exist using not
- name: CreateMyConfigFile-1
  action: ExecuteBash
  if:
    not:
      fileExists: '/etc/my_config'
  inputs:
    commands:
      - echo "Hello world" > '/etc/my_config'

# Creates a file if it does not exist using then and else
- name: CreateMyConfigFile-2
  action: ExecuteBash
  if:
    fileExists: '/etc/my_config'
    then: Skip
    else: Execute
  inputs:
    commands:
      - echo "Hello world" > '/etc/my_config'
```

# AWSTOE コンポーネントドキュメントで比較演算子を使用する
<a name="toe-comparison-operators"></a>

**[Assert](toe-action-modules.md#action-modules-assertion)** アクションモジュールや [if 構造構文](toe-conditional-constructs.md#toe-conditional-if) を使用する条件式では、以下の比較演算子を使用できます。比較演算子には、`stringIsEmpty` など、単一の値に対して動作するものもあれば、ベースライン値を 2 番目の値 (変数値) と比較して、条件式が `true` と `false` のどちらに評価されるかを判定するものもあります。

比較が 2 つの値で動作する場合、2 番目の値は連鎖変数にすることができます。

異なるタイプの値を比較すると、次の値変換が比較前に発生する可能性があります。
+ 数値比較の場合、変数値が文字列の場合、 は文字列を評価前の数値 AWSTOE に変換します。変換が不可能な場合、比較は `false` を返します。例えば、変数値が `"1.0"` の場合は変換が機能しますが、変数値が `"a10"` の場合は変換に失敗します。
+ 文字列比較の場合、変数値が数値の場合、 は評価の前に文字列 AWSTOE に変換します。

## 文字列の比較
<a name="toe-compare-strings"></a>

以下の比較演算子は文字列を対象として、値の比較、スペースや空の文字列かどうかのテスト、入力値と正規表現パターンの比較を行います。文字列比較では、大文字と小文字は区別されず、入力文字列の先頭または末尾のスペースはトリミングされません。

**文字列比較演算子**
+ [stringIsEmpty](#stringIsEmpty)
+ [stringIsWhitespace](#stringIsWhitespace)
+ [stringEquals](#stringEquals)
+ [stringLessThan](#stringLessThan)
+ [stringLessThanEquals](#stringLessThanEquals)
+ [stringGreaterThan](#stringGreaterThan)
+ [stringGreaterThanEquals](#stringGreaterThanEquals)
+ [patternMatches](#patternMatches)

**stringIsEmpty**  
`stringIsEmpty` 演算子は、指定された文字列に文字が含まれていない場合に `true` を返します。例えば、次のようになります。  

```
# Evaluates to true
stringIsEmpty: ""

# Evaluates to false
stringIsEmpty: " "
				
# Evaluates to false
stringIsEmpty: "Hello."
```

**stringIsWhitespace**  
`stringIsWhitespace` に指定された文字列にスペースのみが含まれているかどうかをテストします。例えば、次のようになります。  

```
# Evaluates to true
stringIsWhitespace: "   "

# Evaluates to false
stringIsWhitespace: ""
				
# Evaluates to false
stringIsWhitespace: " Hello?"
```

**stringEquals**  
`stringEquals` に指定された文字列が、`value` パラメータに指定された文字列と完全に一致するかどうかをテストします。例えば、次のようになります。  

```
# Evaluates to true
stringEquals: 'Testing, testing...'
value: 'Testing, testing...'

# Evaluates to false
stringEquals: 'Testing, testing...'
value: 'Hello again.'

# Evaluates to false
stringEquals: 'Testing, testing...'
value: 'TESTING, TESTING....'

# Evaluates to false
stringEquals: 'Testing, testing...'
value: '   Testing, testing...'
				
# Evaluates to false
stringEquals: 'Testing, testing...'
value: 'Testing, testing...   '
```

**stringLessThan**  
`stringLessThan` に指定された文字列が、`value` パラメータに指定された文字列より小さいかどうかをテストします。例えば、次のようになります。  

```
# Evaluates to true
# This comparison operator isn't case sensitive
stringlessThan: 'A'
value: 'a'

# Evaluates to true - 'a' is less than 'b'
stringlessThan: 'b'
value: 'a'

# Evaluates to true
# Numeric strings compare as less than alphabetic strings
stringlessThan: 'a'
value: '0'

# Evaluates to false
stringlessThan: '0'
value: 'a'
```

**stringLessThanEquals**  
`stringLessThanEquals` に指定された文字列が、`value` パラメータに指定された文字列以下であるかどうかをテストします。例えば、次のようになります。  

```
# Evaluates to true - 'a' is equal to 'a'
stringLessThanEquals: 'a'
value: 'a'

# Evaluates to true - since the comparison isn't case sensitive, 'a' is equal to 'A'
stringLessThanEquals: 'A'
value: 'a'

# Evaluates to true - 'a' is less than 'b'
stringLessThanEquals: 'b'
value: 'a'

# Evaluates to true - '0' is less than 'a'
stringLessThanEquals: 'a'
value: '0'

# Evaluates to false - 'a' is greater than '0'
stringLessThanEquals: '0'
value: 'a'
```

**stringGreaterThan**  
`stringGreaterThan` に指定された文字列が、`value` パラメータに指定された文字列より大きいかどうかをテストします。例えば、次のようになります。  

```
# Evaluates to false - since the comparison isn't case sensitive, 'A' is equal to 'a'
stringGreaterThan: 'a'
value: 'A'

# Evaluates to true - 'b' is greater than 'a'
stringGreaterThan: 'a'
value: 'b'

# Evaluates to true - 'a' is greater than '0'
stringGreaterThan: '0'
value: 'a'

# Evaluates to false - '0' is less than 'a'
stringGreaterThan: 'a'
value: '0'
```

**stringGreaterThanEquals**  
`stringGreaterThanEquals` に指定された文字列が、`value` パラメータに指定された文字列以上であるかどうかをテストします。例えば、次のようになります。  

```
# Evaluates to true - 'a' is equal to 'A'
stringGreaterThanEquals: 'A'
value: 'a'

# Evaluates to true - 'b' is greater than 'a'
stringGreaterThanEquals: 'a'
value: 'b'

# Evaluates to true - 'a' is greater than '0'
stringGreaterThanEquals: '0'
value: 'a'

# Evaluates to false - '0' is less than 'a'
stringGreaterThanEquals: 'a'
value: '0'
```

**patternMatches**  
`value` パラメータで指定された文字列が、`patternMatches` で指定された正規表現パターンと一致するかどうかをテストします。比較には、RE2 構文に準拠する [Golang regexp パッケージ](https://pkg.go.dev/regexp)が使用されます。RE2 のルールの詳細については、*GitHub* の [google / re2](https://github.com/google/re2/wiki/Syntax) リポジトリを参照してください。  
次の例は、`true` を返すパターン一致を示しています。  

```
patternMatches: '^[a-z]+$'
value: 'ThisIsValue'
```

## 数値の比較
<a name="toe-compare-numbers"></a>

以下の比較演算子は数値を対象として動作します。これらの演算子に指定する値は、YAML 仕様に従って、次のいずれかのタイプである必要があります。数値比較のサポートでは、golang の big パッケージの比較演算子 ([func (\$1Float) Cmp](https://pkg.go.dev/math/big#Float.Cmp) など) が使用されます。
+ 整数
+ 浮動小数点数 (float64 に基づき、-1.7e\$1308～\$11.7e\$1308 の数値をサポート)
+ 正規表現パターン `^[-+]?([0-9]+[.])?[0-9]+$` に一致する文字列。

**数値比較演算子**
+ [numberEquals](#numberEquals)
+ [numberLessThan](#numberLessThan)
+ [numberLessThanEquals](#numberLessThanEquals)
+ [numberGreaterThan](#numberGreaterThan)
+ [numberGreaterThanEquals](#numberGreaterThanEquals)

**numberEquals**  
`numberEquals` に指定された数値が、`value` パラメータに指定された数値と等しいかどうかをテストします。次の比較の例はすべて `true` を返します。  

```
# Values provided as a positive number
numberEquals: 1
value: 1

# Comparison value provided as a string
numberEquals: '1'
value: 1

# Value provided as a string
numberEquals: 1
value: '1'

# Values provided as floats
numberEquals: 5.0
value: 5.0

# Values provided as a negative number
numberEquals: -1
value: -1
```

**numberLessThan**  
`numberLessThan` に指定された数値が、`value` パラメータに指定された数値より小さいかどうかをテストします。例えば、次のようになります。  

```
# Evaluates to true
numberLessThan: 2
value: 1

# Evaluates to true
numberLessThan: 2
value: 1.9

# Evaluates to false
numberLessThan: 2
value: '2'
```

**numberLessThanEquals**  
`numberLessThanEquals` に指定された数値が、`value` パラメータに指定された数値以下であるかどうかをテストします。例えば、次のようになります。  

```
# Evaluates to true
numberLessThanEquals: 2
value: 1

# Evaluates to true
numberLessThanEquals: 2
value: 1.9

# Evaluates to true
numberLessThanEquals: 2
value: '2'

# Evaluates to false
numberLessThanEquals: 2
value: 2.1
```

**numberGreaterThan**  
`numberGreaterThan` に指定された数値が、`value` パラメータに指定された数値より大きいかどうかをテストします。例えば、次のようになります。  

```
# Evaluates to true
numberGreaterThan: 1
value: 2

# Evaluates to true
numberGreaterThan: 1
value: 1.1

# Evaluates to false
numberGreaterThan: 1
value: '1'
```

**numberGreaterThanEquals**  
`numberGreaterThanEquals` に指定された数値が、`value` パラメータに指定された数値以上であるかどうかをテストします。例えば、次のようになります。  

```
# Evaluates to true
numberGreaterThanEquals: 1
value: 2

# Evaluates to true
numberGreaterThanEquals: 1
value: 1.1

# Evaluates to true
numberGreaterThanEquals: 1
value: '1'

# Evaluates to false
numberGreaterThanEquals: 1
value: 0.8
```

## ファイルのチェック
<a name="toe-check-files"></a>

以下の比較演算子は、ファイルハッシュのチェックや、ファイルまたはフォルダが存在するかどうかの確認を行います。

**ファイルとフォルダの演算子**
+ [binaryExists](#binaryExists)
+ [fileExists](#fileExists)
+ [folderExists](#folderExists)
+ [fileMD5Equals](#fileMD5Equals)
+ [fileSHA1Equals](#fileSHA1Equals)
+ [fileSHA256Equals](#fileSHA256Equals)
+ [fileSHA512Equals](#fileSHA512Equals)

**binaryExists**  
現在のパスでアプリケーションが利用可能かどうかをテストします。例えば、次のようになります。  

```
binaryExists: 'foo'
```
Linux および macOS システムでは、アプリケーションの名前を *foo* とした場合、これは bash コマンド **type *foo* >/dev/null 2>&1** と同じ動作になり、**\$1? == 0** が比較の成功を示します。  
Windows システムでは、アプリケーションの名前を *foo* とした場合、これは PowerShell コマンド **& C:\$1Windows\$1System32\$1where.exe /Q *foo*** と同じ動作になり、**\$1LASTEXITCODE = 0** が比較の成功を示します。

**fileExists**  
指定されたパスにファイルが存在するかどうかをテストします。絶対パスまたは相対パスを指定できます。指定された場所が存在し、ファイルである場合、比較は `true` に評価されます。例えば、次のようになります。  

```
fileExists: '/path/to/file'
```
Linux および macOS システムでは、これは bash コマンド **-d */path/to/file*** と同じ動作になり、**\$1? == 0** が比較の成功を示します。  
Windows システムでは、これは PowerShell コマンド **Test-Path -Path '*C:\$1path\$1to\$1file*' -PathType 'Leaf'** と同じ動作になります。

**folderExists**  
指定されたパスにフォルダが存在するかどうかをテストします。絶対パスまたは相対パスを指定できます。指定された場所が存在し、フォルダである場合、比較は `true` に評価されます。例えば、次のようになります。  

```
folderExists: '/path/to/folder'
```
Linux および macOS システムでは、これは bash コマンド **-d */path/to/folder*** と同じ動作になり、**\$1? == 0** が比較の成功を示します。  
Windows システムでは、これは PowerShell コマンド **Test-Path -Path '*C:\$1path\$1to\$1folder*' -PathType 'Container'** と同じ動作になります。

**fileMD5Equals**  
ファイルの MD5 ハッシュが指定された値に等しいかどうかをテストします。例えば、次のようになります。  

```
fileMD5Equals: '<MD5Hash>'
path: '/path/to/file'
```

**fileSHA1Equals**  
ファイルの SHA1 ハッシュが指定された値に等しいかどうかをテストします。例えば、次のようになります。  

```
fileSHA1Equals: '<SHA1Hash>'
path: '/path/to/file'
```

**fileSHA256Equals**  
ファイルの SHA256 ハッシュが指定された値に等しいかどうかをテストします。例えば、次のようになります。  

```
fileSHA256Equals: '<SHA256Hash>'
path: '/path/to/file'
```

**fileSHA512Equals**  
ファイルの SHA512 ハッシュが指定された値に等しいかどうかをテストします。例：  

```
fileSHA512Equals: '<SHA512Hash>'
path: '/path/to/file'
```

# AWSTOE コンポーネントドキュメントで論理演算子を使用する
<a name="toe-logical-operators"></a>

次の論理演算子を使用して、コンポーネントドキュメントの条件式を追加または変更できます。 AWSTOE は、条件式を条件が指定された順序で評価します。コンポーネントドキュメントの比較演算子の詳細については、「[AWSTOE コンポーネントドキュメントで比較演算子を使用する](toe-comparison-operators.md)」を参照してください。

**and**  
`and` 演算子を使用すると、2 つ以上の比較を 1 つの式として評価できます。リスト内のすべての条件が true になる場合、式は `true` に評価されます。それ以外の場合、式は `false` に評価されます。  
**例:**  
次の例では、文字列と数値の 2 つの比較を実行します。どちらの比較も true になるため、式は true に評価されます。

```
and:
  - stringEquals: 'test_string'
    value: 'test_string'
  - numberEquals: 1
    value: 1
```
次の例も 2 つの比較を実行します。最初の比較は false になるため、その時点で評価は停止し、2 番目の比較はスキップされます。式は `false` に評価されます。  

```
and:
  - stringEquals: 'test_string'
    value: 'Hello world!'
  - numberEquals: 1
    value: 1
```

**or**  
`or` 演算子を使用すると、2 つ以上の比較を 1 つの式として評価できます。指定された比較のいずれかが true になる場合、式は `true` に評価されます。指定された比較のいずれも `true` に評価されない場合、式は `false` に評価されます。  
**例:**  
次の例では、文字列と数値の 2 つの比較を実行します。最初の比較は true になるため、式は `true` に評価され、2 番目の比較はスキップされます。

```
or:
  - stringEquals: 'test_string'
    value: 'test_string'
  - numberEquals: 1
    value: 3
```
次の例も 2 つの比較を実行します。最初の比較は false になり、評価は続行されます。2 番目の比較は true になるため、式は `true` に評価されます。  

```
or:
  - stringEquals: 'test_string'
    value: 'Hello world!'
  - numberEquals: 1
    value: 1
```
最後の例では、両方の比較が false になるため、式は `false` に評価されます。  

```
or:
  - stringEquals: 'test_string'
    value: 'Hello world!'
  - numberEquals: 1
    value: 3
```

**not**  
`not` 演算子を使用すると、1 つの比較を否定できます。比較が false になる場合、式は `true` に評価されます。比較が true になる場合、式は `false` に評価されます。  
**例:**  
次の例では、文字列比較を実行します。比較は false になるため、式は `true` に評価されます。

```
not:
  - stringEquals: 'test_string'
    value: 'Hello world!'
```
次の例も文字列比較を実行します。比較は true になるため、式は `false` に評価されます。  

```
not:
  - stringEquals: 'test_string'
    value: 'test_string'
```

# でループコンストラクトを使用する AWSTOE
<a name="toe-looping-constructs"></a>

このセクションでは、 AWSTOEでループ構文を作成する際に役立つ情報を提供します。ループは、繰り返される命令シーケンスを定義する。 AWSTOEでは以下のタイプのループ構文を使用できます。
+ `for` コンストラクト — 制限付きの整数のシーケンスを反復処理します。
+ `forEach` コンストラクト
  + 入力リストによる `forEach` ループ — 有限数の文字列を反復処理します。
  + 区切りリストによる `forEach` ループ — 区切り文字で結合された有限の文字列のコレクションを反復処理します。

**注記**  
ループ構文は文字列データ型のみをサポートします。

**Topics**
+ [イテレーション変数の参照](#toe-loop-iteration-variables)
+ [ループ構文のタイプ](#toe-loop-types)
+ [ステップフィールド](#toe-loop-step-fields)
+ [ステップとイテレーションの出力](#toe-loop-step-output)

## イテレーション変数の参照
<a name="toe-loop-iteration-variables"></a>

現在のイテレーション変数のインデックスと値を参照するには、ループ構文を含むステップの入力ボディ内で参照式 `{{ loop.* }}` を使用する必要があります。この式は、別のステップのループ構文のイテレーション変数を参照する場合には使用できません。

参照式は、次のメンバーで構成されます。
+ `{{ loop.index }}` — `0` でインデックスが付けられていまる現在のイテレーションの序数位置。
+ `{{ loop.value }}` — 現在のイテレーション変数に関連付けられた値。

### ループ名
<a name="toe-loop-iteration-variables-names"></a>

 ループ構文にはすべて、識別用のオプションの名前フィールドがあります。ループ名を指定すると、そのループ名を使用してステップの入力ボディ内のイテレーション変数を参照できます。名前付きループのイテレーションインデックスと値を参照するには、ステップの入力ボディで `{{ <loop_name>.* }}` と `{{ loop.* }}` を使用してください。この式は、他のステップの名前付きループ構成を参照するために使用することはできない。

参照式は、次のメンバーで構成されます。
+ `{{ <loop_name>.index }}` — `0` でインデックスされる指定されたループの現在のイテレーションの序数位置。
+ `{{ <loop_name>.value }}` — 指定したループの現在のイテレーション変数に関連付けられた値。

### 参照式を解決する
<a name="toe-loop-iteration-variables-expressions"></a>

は参照式を次のように AWSTOE 解決します。
+ `{{ <loop_name>.* }}` – 次のロジックを使用してこの式を AWSTOE 解決します。
  + 現在実行中のステップのループが `<loop_name>` 値と一致すると、参照式は現在実行中のステップのループ構文に変換されます。
  + 現在実行中のステップ内に指定されたループ構文がある場合は、`<loop_name>` はそのループ構文に解決されます。
+ `{{ loop.* }}` – 現在実行中のステップで定義されているループコンストラクトを使用して式を AWSTOE 解決します。

参照式がループを含まないステップ内で使用されている場合、 AWSTOE は式を解決せず、置き換えなしでステップに表示されます。

**注記**  
YAML コンパイラーが参照式を正しく解釈するには、二重引用符で囲む必要があります。

## ループ構文のタイプ
<a name="toe-loop-types"></a>

このセクションでは、 AWSTOEで使用できるループ構文タイプに関する情報と例を紹介します。

**Topics**
+ [`for` ループ](#toe-loop-types-for)
+ [`forEach` ループ (入力リスト付き)](#toe-loop-types-foreach)
+ [区切りリストによる `forEach` ループ](#toe-loop-types-foreach-delimited)

### `for` ループ
<a name="toe-loop-types-for"></a>

`for` ループは、変数の先頭と末尾で囲まれた境界内で指定された整数の範囲で反復処理を行います。イテレーション値は `[start, end]` のセットに含まれており、境界値も含まれます。

AWSTOE は、`start`、`end`、および `updateBy`の値を検証して、組み合わせが無限ループにならないようにします。

`for` ループスキーマ

```
  - name: "StepName"
    action: "ActionModule"
    loop:
      name: "string"
      for:
        start: int
        end: int
        updateBy: int
inputs:
  ...
```


**`for` ループ入力**  

| フィールド | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 
| --- | --- | --- | --- | --- | 
|  `name`  | ループの一意の名前。同じフェーズの他のループ名と比べると一意でなければなりません。 |  String  |  いいえ  |  ""  | 
|  `start`  | イテレーションの開始値。連鎖式は受け付けません。 |  整数  |  はい  |  該当なし  | 
| `end` | 反復の終了値。連鎖式は受け付けません。 | 整数 | はい | 該当なし | 
| `updateBy` | 加算によってイテレーション値が更新される場合の違い。負または正の 0 以外の値でなければなりません。連鎖式は受け付けません。 | 整数 | はい | 該当なし | 

`for` ループ入力の例

```
  - name: "CalculateFileUploadLatencies"
    action: "ExecutePowerShell"
    loop:
      for:
        start: 100000
        end: 1000000
        updateBy: 100000
    inputs:
      commands:
        - |
          $f = new-object System.IO.FileStream c:\temp\test{{ loop.index }}.txt, Create, ReadWrite
          $f.SetLength({{ loop.value }}MB)
          $f.Close()
        - c:\users\administrator\downloads\latencyTest.exe --file c:\temp\test{{ loop.index }}.txt
        - AWS s3 cp c:\users\administrator\downloads\latencyMetrics.json s3://bucket/latencyMetrics.json
        - |
          Remove-Item -Path c:\temp\test{{ loop.index }}.txt
          Remove-Item -Path c:\users\administrator\downloads\latencyMetrics.json
```

### `forEach` ループ (入力リスト付き)
<a name="toe-loop-types-foreach"></a>

`forEach` ループは明示的な値リスト (文字列でも連鎖式でもかまいません) を繰り返し処理します。

入力リストのスキーマを含む `forEach` ループ

```
  - name: "StepName"
    action: "ActionModule"
    loop:
      name: "string"
      forEach:
        - "string"
    inputs:
  ...
```


**`forEach` ループ (入力リスト付き)**  

| フィールド | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 
| --- | --- | --- | --- | --- | 
|  `name`  | ループの一意の名前。同じフェーズの他のループ名と比べると一意でなければなりません。 |  String  |  いいえ  |  ""  | 
|  `forEach` ループの文字列のリスト  |  反復処理用の文字列のリスト。連鎖式をリスト内の文字列として受け入れます。YAML コンパイラが正しく解釈するために、連鎖式は二重引用符で囲む必要があります。  |  文字列のリスト  |  はい  |  該当なし  | 

入力リストによる `forEach` ループ (例 1)

```
  - name: "ExecuteCustomScripts"
    action: "ExecuteBash"
    loop:
      name: BatchExecLoop
      forEach:
        - /tmp/script1.sh
        - /tmp/script2.sh
        - /tmp/script3.sh
    inputs:
      commands:
        - echo "Count {{ BatchExecLoop.index }}"
        - sh "{{ loop.value }}"
        - |
          retVal=$?
          if [ $retVal -ne 0 ]; then
            echo "Failed"
          else
            echo "Passed"
         fi
```

入力リストによる `forEach` ループ (例 2)

```
  - name: "RunMSIWithDifferentArgs"
    action: "ExecuteBinary"
    loop:
      name: MultiArgLoop
      forEach:
        - "ARG1=C:\Users ARG2=1"
        - "ARG1=C:\Users"
        - "ARG1=C:\Users ARG3=C:\Users\Administrator\Documents\f1.txt"
    inputs:
      commands:
        path: "c:\users\administrator\downloads\runner.exe"
        args:
          - "{{ MultiArgLoop.value }}"
```

入力リストによる `forEach` ループ (例 3)

```
  - name: "DownloadAllBinaries"
    action: "S3Download"
    loop:
      name: MultiArgLoop
      forEach:
        - "bin1.exe"
        - "bin10.exe"
        - "bin5.exe"
    inputs:
      - source: "s3://bucket/{{ loop.value }}"
        destination: "c:\temp\{{ loop.value }}"
```

### 区切りリストによる `forEach` ループ
<a name="toe-loop-types-foreach-delimited"></a>

ループは、区切り文字で区切られた値を含む文字列を繰り返し処理します。文字列の構成要素を反復処理するには、 は区切り文字 AWSTOE を使用して文字列を反復処理に適した配列に分割します。

区切りリストスキーマによる `forEach` ループ

```
  - name: "StepName"
    action: "ActionModule"
    loop:
      name: "string"
      forEach:
        list: "string"
        delimiter: ".,;:\n\t -_"
    inputs:
  ...
```


**区切りリスト入力による `forEach` ループ**  

| フィールド | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 
| --- | --- | --- | --- | --- | 
|  `name`  | ループに付けられた一意の名前。同じフェーズの他のループ名と比較した場合、ユニークでなければならない。 |  String  |  いいえ  |  ""  | 
|  `list`  | 構成文字列を共通の区切り文字で結合した文字列です。連鎖式も受け付けます。連鎖式の場合は、YAML コンパイラが正しく解釈できるように、必ず二重引用符で囲んでください。 | String |  はい  |  該当なし  | 
| `delimiter` | ブロック内の文字列を区切るために使用する文字。デフォルトはカンマ文字です。与えられたリストで使用できる区切り文字は 1 つだけです。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-looping-constructs.html) 連鎖式は使用できません。 | String | いいえ | カンマ: "," | 

**注記**  
`list` の値は不変の文字列として扱われます。ランタイムに `list` のソースが変更されても、実行中には反映されません。

`forEach` 区切りリストによるループ 例1

次の例では、`<phase_name>.<step_name>.[inputs | outputs].<var_name>` という連鎖式パターンを使用して別のステップの出力を参照します。

```
  - name: "RunMSIs"
    action: "ExecuteBinary"
    loop:
      forEach:
        list: "{{ build.GetAllMSIPathsForInstallation.outputs.stdout }}"
        delimiter: "\n"
    inputs:
      commands:
        path: "{{ loop.value }}"
```

`forEach` 区切りリストによるループ 例2

```
  - name: "UploadMetricFiles"
    action: "S3Upload"
    loop:
      forEach:
        list: "/tmp/m1.txt,/tmp/m2.txt,/tmp/m3.txt,..."
    inputs:
      commands:
        - source: "{{ loop.value }}"
          destination: "s3://bucket/key/{{ loop.value }}"
```

## ステップフィールド
<a name="toe-loop-step-fields"></a>

ループはステップの一部です。ステップの実行に関連するフィールドは、個々の反復には適用されません。ステップフィールドは、以下のようにステップレベルでのみ適用されます。
+ *timeoutSeconds* - ループのすべての反復は、このフィールドで指定された時間内に実行されなければならない。ループがタイムアウトすると、 はステップの再試行ポリシー AWSTOE を実行し、新しい試行ごとにタイムアウトパラメータをリセットします。最大再試行回数に達した後でループ実行がタイムアウト値を超えると、ステップの失敗メッセージにループ実行がタイムアウトになったことが示されます。
+ onFailure - 以下のようにステップに失敗処理が適用される：
  + *onFailure* が に設定されている場合`Abort`、 はループ AWSTOE を終了し、再試行ポリシーに従ってステップを再試行します。最大再試行回数に達すると、 は現在のステップを失敗として AWSTOE マークし、プロセスの実行を停止します。

    AWSTOE は、親フェーズとドキュメントのステータスコードを に設定します`Failed`。
**注記**  
失敗したステップの後に、それ以上のステップは実行されません。
  + onFailure が `Continue` に設定されている場合、 AWSTOE はループを抜け、リトライポリシーに従ってステップをリトライする。再試行の最大回数に達すると、 は現在のステップを失敗として AWSTOE マークし、次のステップの実行を続行します。

    AWSTOE は、親フェーズとドキュメントのステータスコードを に設定します`Failed`。
  + onFailure が `Ignore` に設定されている場合、 AWSTOE はループを抜け、リトライポリシーに従ってステップをリトライする。最大再試行回数に達すると、 は現在のステップを として AWSTOE マークし`IgnoredFailure`、次のステップの実行を続行します。

    AWSTOE は、親フェーズとドキュメントのステータスコードを に設定します`SuccessWithIgnoredFailure`。
**注記**  
これでも実行は成功したとみなされますが、1 つ以上のステップが失敗して無視されたことを知らせる情報が含まれます。
+ maxAttempts - 再試行ごとに、全ステップと全反復が最初から実行されます。
+ status - ステップの実行の全体的なステータス。`status` は個々の反復のステータスを表すものではない。ループを含むステップのステータスは次のように決定されます。
  + 1 回のイテレーションが実行に失敗した場合、ステップのステータスは失敗を示します。
  + すべてのイテレーションが成功すると、ステップのステータスは成功を示します。
+ startTime - ステップ実行の全体的な開始時間。個々のイテレーションの開始時間を表すものではありません。
+ endTime - ステップ実行の全体的な終了時間。個々の反復の終了時刻を表すものではない。
+ failureMessage - タイムアウト以外のエラーの場合に失敗した反復インデックスを含みます。タイムアウトエラーの場合、メッセージにはループの実行が失敗したことが示されます。失敗メッセージのサイズを最小限に抑えるため、イテレーションごとに個別のエラーメッセージは表示されません。

## ステップとイテレーションの出力
<a name="toe-loop-step-output"></a>

すべてのイテレーションには出力が含まれます。ループ実行の終了時に、 は成功したすべての反復出力を AWSTOE に統合します`detailedOutput.json`。統合出力は、アクションモジュールの出力スキーマで定義されている対応する出力キーに属する値を照合したものです。次の例では、出力の統合方法を示しています。

**イテレーション 1 の `ExecuteBash` の出力**

```
{
	"stdout":"Hello"
}
```

**イテレーション 2 の `ExecuteBash` の出力**

```
{
	"stdout":"World"
}
```

**ステップ `ExecuteBash` の出力**

```
{
	"stdout":"Hello\nWorld"
}
```

例えば、`ExecuteBash`、`ExecutePowerShell`、および `ExecuteBinary` はアクションモジュール出力として `STDOUT` を返すアクションモジュールです。 `STDOUT` メッセージは改行文字で結合され、`detailedOutput.json` のステップの全体的な出力が生成されます。

AWSTOE は、失敗した反復の出力を統合しません。

# AWSTOE コンポーネントマネージャーでサポートされるアクションモジュール
<a name="toe-action-modules"></a>

EC2 Image Builder などのイメージ構築サービスは、 AWSTOE アクションモジュールを使用して、カスタマイズされたマシンイメージの構築とテストに使用される EC2 インスタンスの設定に役立ちます。このセクションでは、一般的に使用される AWSTOE アクションモジュールの機能と、それらの設定方法について説明します。

コンポーネントは、プレーンテキストの YAML ドキュメントを使用して作成されます。ドキュメントの構文については[カスタム AWSTOE コンポーネントのコンポーネントドキュメントフレームワークを使用する](toe-use-documents.md)を参照。

**注記**  
すべてのアクションモジュールは、Linux の `root` と Windows の `NT Authority\SYSTEM` の両方で、実行時に Systems Manager エージェントと同じアカウントを使用します。

以下のクロスリファレンスは、実行されるアクションのタイプ別にアクションモジュールを分類したものです。

 

**一般実行**
+ [Assert (Linux、Windows、macOS)](#action-modules-assertion)
+ [ExecuteBash (Linux、macOS)](#action-modules-executebash)
+ [ExecuteBinary (Linux、Windows、macOS)](#action-modules-executebinary)
+ [ExecuteDocument (Linux、Windows、macOS)](#action-modules-executedocument)
+ [ExecutePowerShell (Windows)](#action-modules-executepowershell)

 

**ファイルダウンロードとアップロード**
+ [S3Download (Linux、Windows、macOS)](#action-modules-s3download)
+ [S3Upload (Linux、Windows、macOS)](#action-modules-s3upload)
+ [WebDownload (Linux、Windows、macOS)](#action-modules-webdownload)

 

**ファイルシステムの操作**
+ [AppendFile (Linux、Windows、macOS)](#action-modules-appendfile)
+ [CopyFile (Linux、Windows、macOS)](#action-modules-copyfile)
+ [CopyFolder (Linux、Windows、macOS)](#action-modules-copyfolder)
+ [CreateFile (Linux、Windows、macOS)](#action-modules-createfile)
+ [CreateFolder (Linux、Windows、macOS)](#action-modules-createfolder)
+ [CreateSymlink (Linux、Windows、macOS)](#action-modules-createsymlink)
+ [DeleteFile (Linux、Windows、macOS)](#action-modules-deletefile)
+ [DeleteFolder (Linux、Windows、macOS)](#action-modules-deletefolder)
+ [ListFiles (Linux、Windows、macOS)](#action-modules-listfiles)
+ [MoveFile (Linux、Windows、macOS)](#action-modules-movefile)
+ [MoveFolder (Linux、Windows、macOS)](#action-modules-movefolder)
+ [ReadFile (Linux、Windows、macOS)](#action-modules-readfile)
+ [SetFileEncoding (Linux、Windows、macOS)](#action-modules-setfileencoding)
+ [SetFileOwner (Linux、Windows、macOS)](#action-modules-setfileowner)
+ [SetFolderOwner (Linux、Windows、macOS)](#action-modules-setfolderowner)
+ [SetFilePermissions (Linux、Windows、macOS)](#action-modules-setfilepermissions)
+ [SetFolderPermissions (Linux、Windows、macOS)](#action-modules-setfolderpermissions)

 

**ソフトウェアインストールアクション**
+ [InstallMSI (Windows)](#action-modules-install-msi)
+ [UninstallMSI (Windows)](#action-modules-uninstall-msi)

 

**システムアクション**
+ [Reboot (Linux、Windows)](#action-modules-reboot)
+ [SetRegistry (Windows)](#action-modules-setregistry)
+ [UpdateOS (Linux、Windows)](#action-modules-updateos)

## 汎用実行モジュール
<a name="action-modules-general-execution"></a>

以下のセクションでは、コマンドを実行したり、実行ワークフローを制御したりするアクションモジュールの詳細について説明します。

**Topics**
+ [Assert (Linux、Windows、macOS)](#action-modules-assertion)
+ [ExecuteBash (Linux、macOS)](#action-modules-executebash)
+ [ExecuteBinary (Linux、Windows、macOS)](#action-modules-executebinary)
+ [ExecuteDocument (Linux、Windows、macOS)](#action-modules-executedocument)
+ [ExecutePowerShell (Windows)](#action-modules-executepowershell)

### Assert (Linux、Windows、macOS)
<a name="action-modules-assertion"></a>

**Assert** アクションモジュールは、[比較演算子](toe-comparison-operators.md)または[論理演算子](toe-logical-operators.md)を入力として使用して、値の比較を実行します。演算子式の結果 (true または false) が、そのステップの全体的な成功または失敗ステータスを示します。

比較演算子または論理演算子式が `true` に評価された場合、ステップは `Success` としてマークされます。それ以外の場合、ステップは `Failed` としてマークされます。ステップが失敗した場合は、`onFailure` パラメータによってステップの結果が決定されます。


**Input**  

| キー名 | 説明 | タイプ | 必須 | 
| --- | --- | --- | --- | 
| input | 比較演算子または論理演算子を 1 つ含みます。論理演算子には複数の比較演算子を含めることができます。 | 演算子に応じて可変 | はい | 

**入力の例: `stringEquals` 比較演算子を使用した単純な比較**

この例は `true` に評価されます。

```
- name: StringComparison
  action: Assert
  inputs:
    stringEquals: '2.1.1'
    value: '{{ validate.ApplicationVersion.outputs.stdout }}'
```

**入力の例: `patternMatches` 比較演算子を使用した正規表現による比較**

これらの例はすべて `true` に評価されます。

```
- name: Letters only
  action: Assert
  inputs:
    patternMatches: '^[a-zA-Z]+$'
    value: 'ThisIsOnlyLetters'

- name: Letters and spaces only
  action: Assert
  inputs:
    patternMatches: '^[a-zA-Z\s]+$'
    value: 'This text contains spaces'
  
- name: Numbers only
  action: Assert
  inputs:
    patternMatches: '^[0-9]+$'
    value: '1234567890'
```

**入力例: 論理演算子と連鎖変数を使用してネストされた比較**

次の例は、連鎖変数との比較を使用する論理演算子を含む、ネストされた比較を示しています。`Assert` は、次のいずれかが true の場合に `true` に評価されます。
+ `ApplicationVersion` は `2.0` より大きく、`CPUArchitecture` は `arm64` に等しくなります。
+ `CPUArchitecture` は `x86_64` に等しくなります。

```
- name: NestedComparisons
  action: Assert
  inputs:
    or: # <- first level deep
      - and: # <- second level deep
          - numberGreaterThan: 2.0 # <- third level deep
            value: '{{ validate.ApplicationVersion.outputs.stdout }}'
          - stringEquals: 'arm64'
            value: '{{ validate.CPUArchitecture.outputs.stdout }}'
      - stringEquals: 'x86_64'
        value: '{{ validate.CPUArchitecture.outputs.stdout }}'
```

**出力:**

`Assert` の出力は、ステップの成功または失敗を示します。

### ExecuteBash (Linux、macOS)
<a name="action-modules-executebash"></a>

**ExecuteBash** アクションモジュールを使用すると、インラインシェルコード/コマンドで bash スクリプトを実行できます。このモジュールは Linux をサポートします。

コマンドブロックで指定したすべてのコマンドと命令はファイル (例:`input.sh`) に変換され、bash シェルで実行されます。シェルファイルを実行した結果がステップの終了コードです。

**ExecuteBash** モジュールは、スクリプトが終了コード `194` で終了した場合、システムの再起動を処理します。起動すると、アプリケーションは以下のいずれかのアクションを実行します。
+ Systems Manager エージェントによって実行された場合、アプリケーションは終了コードを呼び出し側に渡します。Systems Manager エージェント はシステムの再起動を処理し、「[スクリプトからのマネージドインスタンスの再起動](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html)」で説明されているように、再起動を開始したのと同じステップを実行します。
+ アプリケーションは現在の `executionstate` を保存し、アプリケーションを再実行するための再起動トリガーを設定し、システムを再起動します。

システムの再起動後、アプリケーションは再起動を開始したのと同じステップを実行します。この機能が必要な場合は、同じシェルコマンドを複数回呼び出しても処理できる同等のスクリプトを記述する必要があります。


**Input**  

| キー名 | 説明 | タイプ | 必須 | 
| --- | --- | --- | --- | 
| commands | bash 構文に従って実行する命令またはコマンドのリストが含まれています。複数行の YAML を使用できます。 | リスト | はい | 

**入力例: 再起動前と再起動後**

```
name: ExitCode194Example
description: This shows how the exit code can be used to restart a system with ExecuteBash
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: RestartTrigger
        action: ExecuteBash
        inputs:
          commands:
            - |
              REBOOT_INDICATOR=/var/tmp/reboot-indicator
              if [ -f "${REBOOT_INDICATOR}" ]; then
                echo 'The reboot file exists. Deleting it and exiting with success.'
                rm "${REBOOT_INDICATOR}"
                exit 0
              fi
              echo 'The reboot file does not exist. Creating it and triggering a restart.'
              touch "${REBOOT_INDICATOR}"
              exit 194
```


**Output**  

| フィールド | 説明 | タイプ | 
| --- | --- | --- | 
| stdout | コマンド実行の標準出力。 | string | 

再起動を開始し、`194` アクションモジュールの一部として終了コードを返すと、再起動を開始したのと同じアクションモジュールステップでビルドが再開されます。終了コードなしで再起動を開始すると、ビルドプロセスが失敗する可能性があります。

**出力例: 再起動前 (初めてドキュメントから)**

```
{
	“stdout”: “The reboot file does not exist. Creating it and triggering a restart."
}
```

**出力例: 再起動後 (2 回目にドキュメントを通過)**

```
{
	“stdout”: “The reboot file exists. Deleting it and exiting with success."
}
```

### ExecuteBinary (Linux、Windows、macOS)
<a name="action-modules-executebinary"></a>

**ExecuteBinary** アクションモジュールを使うと、コマンドライン引数のリストを使ってバイナリファイルを実行することができます。

**ExecuteBinary** モジュールは、バイナリファイルが終了コード `194` (Linux) または `3010` (Windows) で終了した場合にシステムの再起動を処理します。この場合、アプリケーションは以下のいずれかのアクションを実行する：
+ Systems Manager エージェントによって実行された場合、アプリケーションは終了コードを呼び出し側に渡します。Systems Manager エージェントはシステムの再起動を処理し、[スクリプトから管理対象インスタンスを再起動する](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html)で説明したように、再起動を開始したのと同じステップを実行します。
+ アプリケーションは現在の `executionstate` を保存し、アプリケーションを再実行するための再起動トリガーを設定し、システムを再起動します。

システムの再起動後、アプリケーションは再起動を開始したのと同じステップを実行します。この機能が必要な場合は、同じシェルコマンドを複数回呼び出しても処理できる同等のスクリプトを記述する必要があります。


**Input**  

| キー名 | 説明 | タイプ | 必須 | 
| --- | --- | --- | --- | 
| path | 実行用のバイナリファイルへのパス。 | String | はい | 
| arguments | バイナリの実行時に使用するコマンドライン引数のリストが含まれています。 | 文字列リスト | いいえ | 

**入力例:.NET のインストール**

```
  - name: "InstallDotnet"
    action: ExecuteBinary
    inputs:
      path: C:\PathTo\dotnet_installer.exe
      arguments:
        - /qb
        - /norestart
```


**Output**  

| フィールド | 説明 | タイプ | 
| --- | --- | --- | 
| stdout | コマンド実行の標準出力。 | string | 

**出力例**

```
{
	"stdout": "success"
}
```

### ExecuteDocument (Linux、Windows、macOS)
<a name="action-modules-executedocument"></a>

**ExecuteDocument** アクションモジュールは、ネストされたコンポーネントドキュメントをサポートし、1 つのドキュメントから複数のコンポーネントドキュメントを実行できるようにします。 AWSTOE 実行時に入力パラメータで渡されたドキュメントを検証します。

**制限事項**
+ このアクションモジュールは 1 回だけ実行され、再試行はできません。また、タイムアウト制限を設定するオプションもありません。**ExecuteDocument** は次のデフォルト値を設定し、変更しようとするとエラーを返します。
  + `timeoutSeconds`:-1
  + `maxAttempts`: 1
**注記**  
これらの値は空白のままにしておくと、 はデフォルト値 AWSTOE を使用します。
+ 文書のネストは最大 3 レベルまで可能ですが、それ以上はできません。最上位レベルはネストされていないため、3 レベルのネストは 4 つのドキュメントレベルに相当します。このシナリオでは、最下位の文書は他の文書を呼んではならない。
+ コンポーネントドキュメントを繰り返し実行することはできません。ループ構造の外部で自身を呼び出したり、現在の実行チェーンの上位にある別のドキュメントを呼び出したりするドキュメントは、サイクルを開始して無限ループに陥る可能性があります。 AWSTOE は周期的な実行を検出すると、実行を停止し、失敗を記録します。

![\[ExecuteDocument アクションモジュールのネストレベルの制限。\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/images/toe-component-document-nesting.png)


コンポーネントドキュメント自体を実行しようとしたり、現在の実行チェーンで上位にあるコンポーネントドキュメントを実行しようとしたりすると、実行は失敗します。

**Input** (入力)


| キー名 | 説明 | タイプ | 必須 | 
| --- | --- | --- | --- | 
| document |  コンポーネントドキュメントのパス。有効なオペレーションは以下のとおりです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-action-modules.html)  | String | はい | 
| document-s3-bucket-owner |  コンポーネントドキュメントが保存されている S3 バケットの S3 バケット所有者のアカウント ID。*(コンポーネントドキュメントで S3 URI を使用している場合にお勧めです。)*  | String | いいえ | 
| phases |  コンポーネントドキュメントで実行するフェーズ。カンマ区切りのリストで指定します。フェーズが指定されていない場合は、すべてのフェーズが実行されます。  | String | いいえ | 
| parameters |  実行時にキーと値のペアとしてコンポーネントドキュメントに渡される入力パラメータ。  | パラメータマップリスト | いいえ | 

**パラメータマップ入力**


| キー名 | 説明 | タイプ | 必須 | 
| --- | --- | --- | --- | 
| name |  **ExecuteDocument** アクションモジュールが実行しているコンポーネントドキュメントに渡す入力パラメータの名前。  | String | はい | 
| value |  入力パラメータの値。  | String | はい | 

**入力例**  
以下の例は、インストールパスによってコンポーネントドキュメントに入力される内容のバリエーションを示しています。

**入力例:ローカルドキュメントパス**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        inputs:
          document: Sample-1.yaml
          phases: build
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**入力例:ドキュメントパスとしての S3 URI**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        inputs:
          document: s3://my-bucket/Sample-1.yaml
          document-s3-bucket-owner: 123456789012
          phases: build,validate
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**入力例:ドキュメントパスとしてEC2 Image Builder コンポーネント ARN**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        inputs:
          document: arn:aws:imagebuilder:us-west-2:aws:component/Sample-Test/1.0.0
          phases: test
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**ForEach ループを使用してドキュメントを実行する**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        loop:
          name: 'myForEachLoop'
          forEach:
            - Sample-1.yaml
            - Sample-2.yaml
        inputs:
          document: "{{myForEachLoop.value}}"
          phases: test
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**For ループを使ってドキュメントを実行する**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        loop:
          name: 'myForLoop'
          for:
            start: 1
            end: 2
            updateBy: 1
        inputs:
          document: "Sample-{{myForLoop.value}}.yaml"
          phases: test
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Output**  
AWSTOE は、実行される`detailedoutput.json`たびに という出力ファイルを作成します。このファイルには、実行中に呼び出される各コンポーネントドキュメントのすべてのフェーズとステップに関する詳細が含まれています。**ExecuteDocument** アクションモジュールでは、`outputs` で実行時の簡単な概要がフィールドに表示され、`detailedOutput` でアクションモジュールで実行されるフェーズ、ステップ、ドキュメントの詳細も表示されます。

```
{
	\"executedStepCount\":1,\"executionId\":\"97054e22-06cc-11ec-9b14-acde48001122\",\"failedStepCount\":0,\"failureMessage\":\"\",\"ignoredFailedStepCount\":0,\"logUrl\":\"\",\"status\":\"success\"
}",
```

各コンポーネントドキュメントの出力サマリーオブジェクトには、次に示すように、以下の詳細とサンプル値が含まれています。
+ executedStepCount":1
+ "executionId":"12345a67-89bc-01de-2f34-abcd56789012"
+ "failedStepCount":0
+ "failureMessage":""
+ "ignoredFailedStepCount":0
+ "logUrl":""
+ "status":"success"

**出力例**  
次の例は、ネストされた実行が発生した場合の **ExecuteDocument** アクションモジュールからの出力を示しています。この例では、`main.yaml` コンポーネントドキュメントは `Sample-1.yaml` コンポーネントドキュメントを正常に実行します。

```
{
    "executionId": "12345a67-89bc-01de-2f34-abcd56789012",
    "status": "success",
    "startTime": "2021-08-26T17:20:31-07:00",
    "endTime": "2021-08-26T17:20:31-07:00",
    "failureMessage": "",
    "documents": [
        {
            "name": "",
            "filePath": "main.yaml",
            "status": "success",
            "description": "",
            "startTime": "2021-08-26T17:20:31-07:00",
            "endTime": "2021-08-26T17:20:31-07:00",
            "failureMessage": "",
            "phases": [
                {
                    "name": "build",
                    "status": "success",
                    "startTime": "2021-08-26T17:20:31-07:00",
                    "endTime": "2021-08-26T17:20:31-07:00",
                    "failureMessage": "",
                    "steps": [
                        {
                            "name": "ExecuteNestedDocument",
                            "status": "success",
                            "failureMessage": "",
                            "timeoutSeconds": -1,
                            "onFailure": "Abort",
                            "maxAttempts": 1,
                            "action": "ExecuteDocument",
                            "startTime": "2021-08-26T17:20:31-07:00",
                            "endTime": "2021-08-26T17:20:31-07:00",
                            "inputs": "[{\"document\":\"Sample-1.yaml\",\"document-s3-bucket-owner\":\"\",\"phases\":\"\",\"parameters\":null}]",
                            "outputs": "[{\"executedStepCount\":1,\"executionId\":\"98765f43-21ed-09cb-8a76-fedc54321098\",\"failedStepCount\":0,\"failureMessage\":\"\",\"ignoredFailedStepCount\":0,\"logUrl\":\"\",\"status\":\"success\"}]",
                            "loop": null,
                            "detailedOutput": [
                                {
                                    "executionId": "98765f43-21ed-09cb-8a76-fedc54321098",
                                    "status": "success",
                                    "startTime": "2021-08-26T17:20:31-07:00",
                                    "endTime": "2021-08-26T17:20:31-07:00",
                                    "failureMessage": "",
                                    "documents": [
                                        {
                                            "name": "",
                                            "filePath": "Sample-1.yaml",
                                            "status": "success",
                                            "description": "",
                                            "startTime": "2021-08-26T17:20:31-07:00",
                                            "endTime": "2021-08-26T17:20:31-07:00",
                                            "failureMessage": "",
                                            "phases": [
                                                {
                                                    "name": "build",
                                                    "status": "success",
                                                    "startTime": "2021-08-26T17:20:31-07:00",
                                                    "endTime": "2021-08-26T17:20:31-07:00",
                                                    "failureMessage": "",
                                                    "steps": [
                                                        {
                                                            "name": "ExecuteBashStep",
                                                            "status": "success",
                                                            "failureMessage": "",
                                                            "timeoutSeconds": 7200,
                                                            "onFailure": "Abort",
                                                            "maxAttempts": 1,
                                                            "action": "ExecuteBash",
                                                            "startTime": "2021-08-26T17:20:31-07:00",
                                                            "endTime": "2021-08-26T17:20:31-07:00",
                                                            "inputs": "[{\"commands\":[\"echo \\\"Hello World!\\\"\"]}]",
                                                            "outputs": "[{\"stdout\":\"Hello World!\"}]",
                                                            "loop": null,
                                                            "detailedOutput": null
                                                        }]
                                                }]
                                        }]
                                }]
                        }]
                
                }]
        }]
}
```

### ExecutePowerShell (Windows)
<a name="action-modules-executepowershell"></a>

**ExecutePowerShell** アクションモジュールを使用すると、インラインシェルコード/コマンドを使用して PowerShell スクリプトを実行できます。このモジュールは Windows プラットフォームと Windows PowerShell をサポートしています。

コマンドブロックで指定されたすべてのコマンド/命令は、スクリプトファイル（例えば、`input.ps1`）に変換され、Windows PowerShell を使用して実行されます。シェルファイルを実行した結果が終了コードです。

**ExecutePowerShell** モジュールは、シェルコマンドが終了コードが `3010` で終了した場合、システムの再起動を処理します。起動すると、アプリケーションは以下のいずれかのアクションを実行します。
+ Systems Manager エージェントによって実行された場合、終了コードを呼び出し側に渡します。Systems Manager エージェント はシステムの再起動を処理し、「[スクリプトからのマネージドインスタンスの再起動](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html)」で説明されているように、再起動を開始したのと同じステップを実行します。
+ 現在の `executionstate` を保存し、アプリケーションを再実行するための再起動トリガーを設定し、システムを再起動します。

システムの再起動後、アプリケーションは再起動を開始したのと同じステップを実行します。この機能が必要な場合は、同じシェルコマンドを複数回呼び出しても処理できる同等のスクリプトを記述する必要があります。


**Input**  

| キー名 | 説明 | タイプ | 必須 | 
| --- | --- | --- | --- | 
| commands | PowerShell 構文に従って実行する命令またはコマンドのリストが含まれています。複数行の YAML を使用できます。 | 文字列リスト | はい。両方ではなく、`commands` または `file` を指定する必要があります。  | 
| file | PowerShell スクリプトファイルへのパスが含まれています。PowerShell は、-file コマンドライン引数を使用してこのファイルに対して実行されます。パスは.ps1ファイルを指していなければなりません。 | String | はい。両方ではなく、`commands` または `file` を指定する必要があります。  | 

**入力例: 再起動前と再起動後**

```
name: ExitCode3010Example
description: This shows how the exit code can be used to restart a system with ExecutePowerShell
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: RestartTrigger
        action: ExecutePowerShell
        inputs:
          commands:
            - |
              $rebootIndicator = Join-Path -Path $env:SystemDrive -ChildPath 'reboot-indicator'
              if (Test-Path -Path $rebootIndicator) {
                Write-Host 'The reboot file exists. Deleting it and exiting with success.'
                Remove-Item -Path $rebootIndicator -Force | Out-Null
                [System.Environment]::Exit(0)
              }
              Write-Host 'The reboot file does not exist. Creating it and triggering a restart.'
              New-Item -Path $rebootIndicator -ItemType File | Out-Null
              [System.Environment]::Exit(3010)
```


**Output**  

| フィールド | 説明 | タイプ | 
| --- | --- | --- | 
| stdout | コマンド実行の標準出力。 | string | 

アクションモジュールの一部として再起動を実行して終了コード `3010` を返した場合、ビルドは再起動を開始したのと同じアクションモジュールステップで再開されます。終了コードを指定せずに再起動を実行すると、ビルドプロセスが失敗する可能性があります。

**出力例: 再起動前 (初めてドキュメントから)**

```
{
	“stdout”: “The reboot file does not exist. Creating it and triggering a restart."
}
```

**出力例: 再起動後 (2 回目にドキュメントを通過)**

```
{
	“stdout”: “The reboot file exists. Deleting it and exiting with success."
}
```

## ファイルダウンロードとアップロードモジュール
<a name="action-modules-download-upload"></a>

以下のセクションでは、ファイルをアップロードまたはダウンロードするアクションモジュールの詳細について説明します。

**Topics**
+ [S3Download (Linux、Windows、macOS)](#action-modules-s3download)
+ [S3Upload (Linux、Windows、macOS)](#action-modules-s3upload)
+ [WebDownload (Linux、Windows、macOS)](#action-modules-webdownload)

### S3Download (Linux、Windows、macOS)
<a name="action-modules-s3download"></a>

`S3Download` アクションモジュールを使用すると、Amazon S3 オブジェクトまたはオブジェクトのセットを、`destination` パスで指定したローカルファイルまたはフォルダにダウンロードできます。指定した場所に既にファイルが存在し、`overwrite` フラグが true に設定されている場合、`S3Download` がそのファイルを上書きします。

`source` ロケーションは Amazon S3 内の特定のオブジェクトを指すこともできますし、アスタリスクワイルドカード (`*`) が付いたキー接頭辞を使用して、キー接頭辞パスと一致するオブジェクトのセットをダウンロードすることもできます。`source` ロケーションでキー接頭辞を指定すると、`S3Download` アクションモジュールはプレフィックスに一致するすべてのもの (ファイルとフォルダを含む) をダウンロードします。キー接頭辞がフォーワードスラッシュで終わり、その後にアスタリスク (`/*`) が続くことを確認してください。これにより、プレフィックスに一致するものをすべてダウンロードできるようになります。例: `s3://my-bucket/my-folder/*`。

ダウンロード中に指定されたキー接頭辞 `S3Download` アクションが失敗した場合、フォルダの内容は失敗前の状態にロールバックされません。宛先フォルダは、障害発生時のままです。

**対応するユースケース**  
`S3Download` アクションモジュールは以下のユースケースをサポートしています。
+ Amazon S3 オブジェクトは、ダウンロードパスで指定されたローカルフォルダにダウンロードされます。
+ Amazon S3 オブジェクト (Amazon S3 ファイルパスにキー接頭辞 が付いている) は、指定されたローカルフォルダにダウンロードされます。このローカルフォルダは、キー接頭辞 と一致するすべての Amazon S3 オブジェクトをローカルフォルダに再帰的にコピーします。

**IAM の要件**  
インスタンスプロファイルに関連付ける IAM ロールには、`S3Download` アクションモジュールを実行する権限が必要です。インスタンスプロファイルに関連付けられている IAM ロールに、以下の IAM ポリシーをアタッチする必要があります：
+ **単一ファイル** `s3:GetObject` バケット/オブジェクトに対して(例えば`arn:aws:s3:::BucketName/*`)。
+ **複数のファイル**: `s3:ListBucket`バケット/オブジェクトに対するファイル (例:`arn:aws:s3:::BucketName`) `s3:GetObject` とバケット/オブジェクト (例: `arn:aws:s3:::BucketName/*`)。


**Input**  

|  キー  |  説明  |  タイプ  |  [Required] (必須)  |  [Default] (デフォルト)  | 
| --- | --- | --- | --- | --- | 
|  `source`  |  ダウンロードのソースである Amazon S3 バケット。特定のオブジェクトへのパスを指定するか、またはキー接頭辞 (末尾がスラッシュ) で終わり、アスタリスクワイルドカード (`/*`) が続くものを使用して、キー接頭辞 に一致するオブジェクトのセットをダウンロードできます。  |  String  |  はい  |  該当なし  | 
|  `destination`  |  Amazon S3 オブジェクトがダウンロードされるローカルパス。1 つのファイルをダウンロードするには、パスの一部としてファイル名を指定する必要があります。例えば、`/myfolder/package.zip`。  |  String  |  はい  |  該当なし  | 
|  `expectedBucketOwner`  |  `source` パスで指定されたバケットの必要な所有者アカウント ID。ソースで指定されている Amazon S3 バケットの所有権を確認することをお勧めします。  |  String  |  いいえ  |  該当なし  | 
|  `overwrite`  |  true に設定すると、指定したローカルパスの宛先フォルダに同じ名前のファイルが既に存在する場合、ダウンロードファイルはローカルファイルを上書きします。false に設定すると、ローカルシステム上の既存のファイルは上書きされないよう保護され、アクションモジュールはダウンロードエラーで失敗します。 例: `Error: S3Download: File already exists and "overwrite" property for "destination" file is set to false. Cannot download.`  |  ブール値  |  なし  |  true  | 

**注記**  
次の例では、Windows フォルダパスを Linux パスに置き換えることができます。例えば、`C:\myfolder\package.zip` を `/myfolder/package.zip` に置き換えることができます。

**入力例: Amazon S3 オブジェクトをローカルファイルにコピーする**  
以下の例では、Amazon S3 オブジェクトをローカルファイルにコピーする方法を示します。

```
  - name: DownloadMyFile
    action: S3Download
    inputs:
      - source: s3://amzn-s3-demo-source-bucket/path/to/package.zip
        destination: C:\myfolder\package.zip
        expectedBucketOwner: 123456789022
        overwrite: false
      - source: s3://amzn-s3-demo-source-bucket/path/to/package.zip
        destination: C:\myfolder\package.zip
        expectedBucketOwner: 123456789022
        overwrite: true
      - source: s3://amzn-s3-demo-source-bucket/path/to/package.zip
        destination: C:\myfolder\package.zip
        expectedBucketOwner: 123456789022
```

**入力例：キープレフィックスを持つ Amazon S3 バケット内のすべての Amazon S3 オブジェクトをローカルフォルダにコピーする**  
次の例では、Amazon S3 バケット内のすべての Amazon S3 オブジェクトを、キーのプレフィックス付きでローカルフォルダにコピーする方法を示しています。Amazon S3 にはフォルダという概念がないため、キー接頭辞 に一致するすべてのオブジェクトがコピーされます。ダウンロードできるオブジェクトの最大数は 1000 です。

```
  - name: MyS3DownloadKeyprefix
    action: S3Download
    maxAttempts: 3
    inputs:
      - source: s3://amzn-s3-demo-source-bucket/path/to/*
        destination: C:\myfolder\
        expectedBucketOwner: 123456789022
        overwrite: false
      - source: s3://amzn-s3-demo-source-bucket/path/to/*
        destination: C:\myfolder\
        expectedBucketOwner: 123456789022
        overwrite: true
      - source: s3://amzn-s3-demo-source-bucket/path/to/*
        destination: C:\myfolder\
        expectedBucketOwner: 123456789022
```

**Output**  
なし。

### S3Upload (Linux、Windows、macOS)
<a name="action-modules-s3upload"></a>

**S3Upload** アクションモジュールを使用すると、ソースファイルまたはフォルダから Amazon S3 の場所にファイルをアップロードできます。ソースロケーションに指定されたパスにワイルドカード (`*`) を使用すると、ワイルドカードパターンに一致するパスを持つすべてのファイルをアップロードできます。

再帰的な **S3Upload** アクションが失敗した場合、既にアップロードされたファイルは宛先の Amazon S3 バケットに残ります。

**対応するユースケース**
+ Amazon S3 オブジェクトへのローカルファイル。
+ Amazon S3 キー接頭辞 へのフォルダ内のローカルファイル (ワイルドカード付き)。
+ ローカルフォルダ (`recurse` を `true` に設定されている必要があります) を Amazon S3 キー接頭辞 にコピーします。

**IAM の要件**  
インスタンスプロファイルに関連付ける IAM ロールには、`S3Upload` アクションモジュールを実行する権限が必要です。インスタンスプロファイルに関連付けられている IAM ロールに、以下の IAM ポリシーをアタッチする必要があります。ポリシーは、ターゲット Amazon S3 バケットに `s3:PutObject` アクセス権限を付与する必要があります。例えば、`arn:aws:s3:::BucketName/*` です。


**Input**  

|  キー  |  説明  |  タイプ  |  [Required] (必須)  |  [Default] (デフォルト)  | 
| --- | --- | --- | --- | --- | 
|  `source`  |  ソースファイル/フォルダの生成元のローカルパス。`source` はアスタリスクワイルドカード (`*`) をサポートします。  |  String  |  はい  |  該当なし  | 
|  `destination`  |  ソースファイル/フォルダがアップロードされる宛先 Amazon S3 バケットのパス。  |  String  |  はい  |  該当なし  | 
|  `recurse`  |  `true` に設定すると、**S3Upload** を再帰的に実行します。  |  String  |  いいえ  |  `false`  | 
|  `expectedBucketOwner`  |  宛先パスで指定されている Amazon S3 バケットの予想所有者アカウント ID。宛先に指定された Amazon S3 バケットの所有権を確認することをお勧めします。  |  String  |  いいえ  |  該当なし  | 

**入力例: ローカルファイルをAmazon S3 オブジェクトにコピーする**  
次の例は、ローカルファイルを Amazon S3 オブジェクトにコピーする方法を示しています。

```
  - name: MyS3UploadFile
    action: S3Upload
    onFailure: Abort
    maxAttempts: 3
    inputs:
      - source: C:\myfolder\package.zip
        destination: s3://amzn-s3-demo-destination-bucket/path/to/package.zip
        expectedBucketOwner: 123456789022
```

**入力例：ローカルフォルダ内のすべてのファイルを、キーの接頭辞を持つ Amazon S3 バケットにコピーする**  
次の例では、ローカルフォルダ内のすべてのファイルを、キープレフィックスを持つ Amazon S3 バケットにコピーする方法を示しています。この例では、`recurse` が指定されていないためサブフォルダやその内容はコピーされません。デフォルトは `false` です。

```
  - name: MyS3UploadMultipleFiles
    action: S3Upload
    onFailure: Abort
    maxAttempts: 3
    inputs:
      - source: C:\myfolder\*
        destination: s3://amzn-s3-demo-destination-bucket/path/to/
        expectedBucketOwner: 123456789022
```

**入力例:ローカルフォルダから再帰的に Amazon S3 バケットにコピーする**  
次の例では、ローカルフォルダから Amazon S3 バケットに、キープレフィックスを付けてすべてのファイルとフォルダを再帰的にコピーする方法を示しています。

```
  - name: MyS3UploadFolder
    action: S3Upload
    onFailure: Abort
    maxAttempts: 3
    inputs:
      - source: C:\myfolder\*
        destination: s3://amzn-s3-demo-destination-bucket/path/to/
        recurse: true
        expectedBucketOwner: 123456789022
```

**Output**  
なし。

### WebDownload (Linux、Windows、macOS)
<a name="action-modules-webdownload"></a>

**WebDownload** アクションモジュールを使用すると、HTTP/HTTPS プロトコル (HTTPS を推奨) を介してリモートの場所からファイルやリソースをダウンロードできます。ダウンロードの数やサイズに制限はありません。このモジュールはリトライとエクスポネンシャルバックオフロジックを処理します。

ユーザーの入力に応じて、各ダウンロード操作が成功するまでに最大 5 回の試行が割り当てられます。これらの試行は、アクションモジュールの障害に関連する `maxAttempts` の `steps` ドキュメントフィールドで指定されている試行とは異なります。

このアクションモジュールは暗黙的にリダイレクトを処理します。`200` を除く、すべての HTTP ステータスコードはエラーになります。


**Input**  

| キー名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 
| --- | --- | --- | --- | --- | 
| source | RFC 3986 標準に準拠した有効な HTTP/HTTPS URL (HTTPS を推奨)。式を連鎖させることは許可されます。 | String |  はい  | 該当なし | 
| destination | ローカルシステム上のファイルまたはフォルダの絶対パスまたは相対パス。フォルダパスは / で終わる必要があります。末尾が / でなければ、ファイルパスとして扱われます。モジュールは、ダウンロードを成功させるために必要なファイルまたはフォルダを作成します。式を連鎖させることは許可されます。 | String | はい | 該当なし | 
| overwrite | 有効にすると、ローカルシステム上の既存のファイルを、ダウンロードしたファイルまたはリソースで上書きします。有効にしないと、ローカルシステム上の既存のファイルは上書きされず、アクションモジュールはエラーで失敗します。上書きが有効で、チェックサムとアルゴリズムが指定されている場合、アクションモジュールは、既存のファイルのチェックサムとハッシュが一致しない場合にのみファイルをダウンロードします。 | ブール値 | いいえ | true | 
| checksum | チェックサムを指定すると、指定されたアルゴリズムで生成されたダウンロードファイルのハッシュと照合されます。ファイル検証を有効にするには、チェックサムとアルゴリズムの両方を指定する必要があります。式を連鎖させることは許可されます。 | String | いいえ | 該当なし | 
| algorithm | チェックサムの計算に使用するアルゴリズム。オプションには MD5、SHA1、SHA256 および SHA512 があります。ファイル検証を有効にするには、チェックサムとアルゴリズムの両方を指定する必要があります。式を連鎖させることは許可されます。 | String | いいえ | 該当なし | 
| ignoreCertificateErrors | SSL 証明書の検証は有効になっていると無視されます。 | ブール値 | いいえ | false | 


**Output**  

| キー名 | 説明 | タイプ | 
| --- | --- | --- | 
| destination | ダウンロードしたファイルまたはリソースの保存先パスを指定する改行文字で区切られた文字列。 | String | 

**入力例: リモートファイルをローカルの宛先にダウンロードする**

```
  - name: DownloadRemoteFile
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://testdomain/path/to/java14.zip
        destination: C:\testfolder\package.zip
```

**出力:**

```
{
	"destination": "C:\\testfolder\\package.zip"
}
```

**入力例: 複数のリモートファイルを複数のローカル宛先にダウンロードする**

```
  - name: DownloadRemoteFiles
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://testdomain/path/to/java14.zip
        destination: /tmp/java14_renamed.zip
      - source: https://testdomain/path/to/java14.zip
        destination: /tmp/create_new_folder_and_add_java14_as_zip/
```

**出力:**

```
{
	"destination": "/tmp/create_new_folder/java14_renamed.zip\n/tmp/create_new_folder_and_add_java14_as_zip/java14.zip"
}
```

**入力例: ローカル宛先を上書きせずにリモートファイルを 1 つダウンロードし、ファイル検証を行って別のリモートファイルをダウンロードする**

```
  - name: DownloadRemoteMultipleProperties
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://testdomain/path/to/java14.zip
        destination: C:\create_new_folder\java14_renamed.zip
        overwrite: false
      - source: https://testdomain/path/to/java14.zip
        destination: C:\create_new_folder_and_add_java14_as_zip\
        checksum: ac68bbf921d953d1cfab916cb6120864
        algorithm: MD5
        overwrite: true
```

**出力:**

```
{
	"destination": "C:\\create_new_folder\\java14_renamed.zip\nC:\\create_new_folder_and_add_java14_as_zip\\java14.zip"
}
```

**入力例: リモートファイルをダウンロードし、SSL 証明書の検証を無視**

```
  - name: DownloadRemoteIgnoreValidation
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://www.bad-ssl.com/resource
        destination: /tmp/downloads/
        ignoreCertificateErrors: true
```

**出力:**

```
{
	"destination": "/tmp/downloads/resource"
}
```

## ファイルシステム操作モジュール
<a name="action-modules-file-system-operations"></a>

以下のセクションでは、ファイルシステム操作を実行するアクションモジュールの詳細について説明します。

**Topics**
+ [AppendFile (Linux、Windows、macOS)](#action-modules-appendfile)
+ [CopyFile (Linux、Windows、macOS)](#action-modules-copyfile)
+ [CopyFolder (Linux、Windows、macOS)](#action-modules-copyfolder)
+ [CreateFile (Linux、Windows、macOS)](#action-modules-createfile)
+ [CreateFolder (Linux、Windows、macOS)](#action-modules-createfolder)
+ [CreateSymlink (Linux、Windows、macOS)](#action-modules-createsymlink)
+ [DeleteFile (Linux、Windows、macOS)](#action-modules-deletefile)
+ [DeleteFolder (Linux、Windows、macOS)](#action-modules-deletefolder)
+ [ListFiles (Linux、Windows、macOS)](#action-modules-listfiles)
+ [MoveFile (Linux、Windows、macOS)](#action-modules-movefile)
+ [MoveFolder (Linux、Windows、macOS)](#action-modules-movefolder)
+ [ReadFile (Linux、Windows、macOS)](#action-modules-readfile)
+ [SetFileEncoding (Linux、Windows、macOS)](#action-modules-setfileencoding)
+ [SetFileOwner (Linux、Windows、macOS)](#action-modules-setfileowner)
+ [SetFolderOwner (Linux、Windows、macOS)](#action-modules-setfolderowner)
+ [SetFilePermissions (Linux、Windows、macOS)](#action-modules-setfilepermissions)
+ [SetFolderPermissions (Linux、Windows、macOS)](#action-modules-setfolderpermissions)

### AppendFile (Linux、Windows、macOS)
<a name="action-modules-appendfile"></a>

**AppendFile** アクションモジュールは、指定された内容をファイルの既存のコンテンツに追加します。

ファイルエンコーディング値がデフォルトのエンコーディング(`utf-8`) 値と異なる場合は、`encoding` オプションを使用してファイルエンコーディング値を指定できます。デフォルトでは `utf-16` と `utf-32` リトルエンディアンエンディアンエンコーディングを使用すると想定されています。

アクションモジュールは、以下の場合にエラーを返します。
+ 指定したファイルは実行時には存在しません。
+ ファイルの内容を変更するための書き込み権限がない。
+ ファイル操作中にモジュールにエラーが発生した。


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | すべてのプラットフォームでサポートされています | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | ファイルパス。 | String | はい | 該当なし | 該当なし | はい | 
| content | ファイルに追加するコンテンツ。 | String | いいえ | 空の文字列 | 該当なし | はい | 
| encoding | エンコード形式です。 | String | いいえ | utf8 | utf8、utf-8、utf16、utf-16、utf16-LE、utf-16-LE、utf16-BE、utf-16-BE、utf32、utf-32、utf32-LE、utf-32-LE、utf32-BEおよび  utf-32-BE。エンコーディングオプションの値は大文字と小文字を区別しません。 | はい | 

**入力例: エンコードせずにファイルを追加 (Linux)**

```
  - name: AppendingFileWithOutEncodingLinux
    action: AppendFile
    inputs:
      - path: ./Sample.txt
        content: "The string to be appended to the file"
```

**入力例: エンコーディングなしでファイルを追加 (Windows)**

```
  - name: AppendingFileWithOutEncodingWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolder\MyFile.txt
        content: "The string to be appended to the file"
```

**入力例: エンコーディング付きファイルの追加 (Linux)**

```
  - name: AppendingFileWithEncodingLinux
    action: AppendFile
    inputs:
      - path: /FolderName/SampleFile.txt
        content: "The string to be appended to the file"
        encoding: UTF-32
```

**入力例: エンコーディング付きファイルの追加 (Windows)**

```
  - name: AppendingFileWithEncodingWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolderName\SampleFile.txt
        content: "The string to be appended to the file"
        encoding: UTF-32
```

**入力例: 空の文字列を含むファイルの追加 (Linux)**

```
  - name: AppendingEmptyStringLinux
    action: AppendFile
    inputs:
      - path: /FolderName/SampleFile.txt
```

**入力例: 空の文字列を含むファイルの追加 (Windows)**

```
  - name: AppendingEmptyStringWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolderName\SampleFile.txt
```

**Output**  
なし。

### CopyFile (Linux、Windows、macOS)
<a name="action-modules-copyfile"></a>

**CopyFile** アクションモジュールは、指定されたソースから指定された宛先にファイルをコピーします。デフォルトでは、実行時に宛先フォルダが存在しない場合、モジュールは再帰的に宛先フォルダを作成します。

指定された名前のファイルが指定されたフォルダーにすでに存在する場合、アクションモジュールはデフォルトで既存のファイルを上書きします。上書きオプションを`false`に設定することで、このデフォルトの動作を上書きすることができます。上書きオプションが `false` に設定されていて、指定した場所に指定した名前のファイルが既に存在する場合、アクションモジュールはエラーを返します。このオプションは Linux `cp` のコマンドと同じように機能し、デフォルトでは上書きされます。

ソースファイル名にはワイルドカード (`*`) を含めることができます。ワイルドカード文字は、最後のファイルパスの区切り文字 (`/` または `\`) の後でのみ使用できます。ソースファイル名にワイルドカード文字が含まれている場合、ワイルドカードに一致するすべてのファイルが宛先フォルダにコピーされます。ワイルドカード文字を使用して複数のファイルを移動する場合は、`destination` オプションへの入力の末尾にファイルパスの区切り文字 (`/` または `\`) を付ける必要があります。これは、移動先の入力がフォルダであることを示します。

移動先のファイル名がソースファイル名と異なる場合は、`destination` オプションを使用して移動先のファイル名を指定できます。宛先ファイル名を指定しない場合、ソースファイルの名前を使用して宛先ファイルが作成されます。最後のファイルパス区切り文字 (`/` または `\`) に続くテキストはすべてファイル名として扱われます。ソースファイルと同じファイル名を使用する場合は、`destination` オプションの入力がファイルパスの区切り文字 (`/` または `\`) で終わる必要があります。

アクションモジュールは、以下の場合にエラーを返します。
+ 指定されたフォルダにファイルを作成する権限がない。
+ ソースファイルは実行時には存在しません。
+ 指定したファイル名のフォルダが既に存在し、`overwrite` オプションは `false` に設定されています。
+ 操作の実行中にアクションモジュールがエラーに遭遇しました。


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | すべてのプラットフォームでサポートされています | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | ソースファイルのパス。 | String | はい | 該当なし | 該当なし | はい | 
| destination | デスティネーションファイルパス。 | String | はい | 該当なし | 該当なし | はい | 
| overwrite | false に設定すると、指定した場所に指定した名前のファイルが既にある場合でも、宛先ファイルは置き換えられません。 | ブール値 | いいえ | true | 該当なし | はい | 

**入力例: ファイルのコピー (Linux)**

```
  - name: CopyingAFileLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
```

**入力例: ファイルのコピー (Windows)**

```
  - name: CopyingAFileWindows
    action: CopyFile
    inputs:
      - source: C:\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
```

**入力例: ソースファイル名を使用してファイルをコピーする (Linux)**

```
  - name: CopyingFileWithSourceFileNameLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/
```

**入力例: ソースファイル名を使用してファイルをコピーする (Windows)**

```
  - name: CopyingFileWithSourceFileNameWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\
```

**入力例: ワイルドカード文字を使用してファイルをコピーする (Linux)**

```
  - name: CopyingFilesWithWildCardLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**入力例: ワイルドカード文字を使用してファイルをコピーする (Windows）**

```
  - name: CopyingFilesWithWildCardWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**入力例: 上書きせずにファイルをコピーする (Linux)**

```
  - name: CopyingFilesWithoutOverwriteLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
        overwrite: false
```

**入力例: 上書きせずにファイルをコピーする (Windows)**

```
  - name: CopyingFilesWithoutOverwriteWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
        overwrite: false
```

**Output**  
なし。

### CopyFolder (Linux、Windows、macOS)
<a name="action-modules-copyfolder"></a>

**CopyFolder** アクションモジュールは、指定されたソースから指定された宛先にフォルダをコピーします。`destination` オプションの入力はコピーするフォルダであり、`source` オプションの入力はソースフォルダの内容をコピーするフォルダです。デフォルトでは、実行時に宛先フォルダが存在しない場合、モジュールは再帰的に宛先フォルダを作成します。

指定されたフォルダ内に指定された名前のフォルダが既に存在する場合、アクションモジュールは、デフォルトで、既存のフォルダを上書きします。上書きオプションを`false`に設定することで、このデフォルトの動作を上書きすることができます。上書きオプションが `false` に設定されていて、指定した場所に指定した名前のフォルダが既に存在する場合、アクションモジュールはエラーを返します。

ソースフォルダ名にはワイルドカード (`*`) を含めることができます。ワイルドカード文字は、最後のファイルパスの区切り文字 (`/` または `\`) の後でのみ使用できます。コピー元フォルダ名にワイルドカード文字が含まれている場合、ワイルドカードに一致するすべてのフォルダがコピー先フォルダにコピーされます。ワイルドカード文字を使用して複数のフォルダをコピーする場合、`destination` オプションへの入力は、コピー先の入力がフォルダであることを示すファイルパス区切り記号 (`/` または `\`) で終わる必要があります。

コピー先フォルダ名がソースフォルダ名と異なる場合は、`destination` オプションを使用してコピー先フォルダ名を指定できます。宛先フォルダ名を指定しない場合、ソースフォルダの名前が宛先フォルダの作成に使用されます。最後のファイルパスの区切り文字 (`/` または `\`) に続くテキストはすべてフォルダ名として扱われます。ソースフォルダと同じフォルダ名を使用する場合は、`destination` オプションの入力がファイルパスの区切り文字 (`/` または `\`) で終わる必要があります。

アクションモジュールは、以下の場合にエラーを返します。
+ 指定されたフォルダにフォルダを作成する権限がありません。
+ ソースフォルダは実行時には存在しません。
+ 指定したフォルダ名のフォルダが既に存在し、`overwrite` オプションは `false` に設定されています。
+ 操作の実行中にアクションモジュールがエラーに遭遇しました。


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | すべてのプラットフォームでサポートされています | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | ソースフォルダのパス。 | String | はい | 該当なし | 該当なし | はい | 
| destination | 宛先フォルダのパス。 | String | はい | 該当なし | 該当なし | はい | 
| overwrite | false に設定すると、指定された場所に指定された名前のフォルダが既にある場合、保存先フォルダは置き換えられません。 | ブール値 | いいえ | true | 該当なし | はい | 

**入力例: フォルダのコピー (Linux)**

```
  - name: CopyingAFolderLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
        destination: /MyFolder/destinationFolder
```

**入力例: フォルダのコピー (Windows)**

```
  - name: CopyingAFolderWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\destinationFolder
```

**入力例: ソースフォルダ名を使用してフォルダをコピーする (Linux)**

```
  - name: CopyingFolderSourceFolderNameLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/
```

**入力例: ソースフォルダ名を使用してフォルダをコピーする (Windows)**

```
  - name: CopyingFolderSourceFolderNameWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\
```

**入力例: ワイルドカード文字を使用してフォルダをコピーする (Linux)**

```
  - name: CopyingFoldersWithWildCardLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**入力例: ワイルドカード文字を使用してフォルダをコピーする (Windows)**

```
  - name: CopyingFoldersWithWildCardWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**入力例: フォルダを上書きせずにコピーする (Linux)**

```
  - name: CopyingFoldersWithoutOverwriteLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/destinationFolder
        overwrite: false
```

**入力例: フォルダを上書きせずにコピーする (Windows)**

```
  - name: CopyingFoldersWithoutOverwrite
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SourceFolder
        destination: C:\MyFolder\destinationFolder
        overwrite: false
```

**Output**  
なし。

### CreateFile (Linux、Windows、macOS)
<a name="action-modules-createfile"></a>

**CreateFile** アクションモジュールは、指定された場所にファイルを作成します。デフォルトでは、モジュールは必要に応じて親フォルダも再帰的に作成します。

ファイルが指定されたフォルダに既に存在する場合、アクションモジュールはデフォルトで、既存のファイルを切り捨てるか上書きする。上書きオプションを`false`に設定することで、このデフォルトの動作を上書きすることができます。上書きオプションが `false` に設定されていて、指定した場所に指定した名前のファイルが既に存在する場合、アクションモジュールはエラーを返します。

ファイルエンコーディング値がデフォルトのエンコーディング (`utf-8`) 値と異なる場合は、`encoding` オプションを使用してファイルエンコーディング値を指定できます。デフォルトでは `utf-16` と `utf-32` リトルエンディアンエンディアンエンコーディングを使用すると想定されています。

`owner`、`group` および `permissions` はオプションの入力です。`permissions` の入力は文字列値でなければなりません。指定しない場合、ファイルはデフォルト値で作成されます。これらのオプションは Windows プラットフォームではサポートされていません。Windows プラットフォームで、`owner`、`group` と `permissions` オプションが使用されている場合、このアクションモジュールは検証してエラーを返します。

このアクションモジュールは、オペレーティングシステムのデフォルト `umask` 値で定義されたパーミッションを持つファイルを作成することができます。デフォルト値をオーバーライドする場合、`umask` 値を設定する必要があります。

アクションモジュールは、以下の場合にエラーを返します。
+ 指定された親フォルダにファイルまたはフォルダを作成する権限がありません。
+ 操作の実行中にアクションモジュールがエラーに遭遇しました。


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | すべてのプラットフォームでサポートされています | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | ファイルパス。 | String | はい | 該当なし | 該当なし | はい | 
| content | ファイルのテキストコンテンツ。 | String | いいえ | 該当なし | 該当なし | はい | 
| encoding | エンコード形式です。 | String | いいえ | utf8 | utf8、utf-8、utf16、utf-16、utf16-LE、utf-16-LE、utf16-BE、utf-16-BE、utf32、utf-32、utf32-LE、utf-32-LE、utf32-BEおよび  utf-32-BE。エンコーディングオプションの値は大文字と小文字を区別しません。 | はい | 
| owner | ユーザー名または ID。 | String | いいえ | 該当なし | 該当なし | Windows ではサポートされていません。 | 
| group | グループ名または ID。 | String | いいえ | 現在のユーザー。 | 該当なし | Windows ではサポートされていません。 | 
| permissions | ファイルのパーミッション。 | String | いいえ | 0666 | 該当なし | Windows ではサポートされていません。 | 
| overwrite | 指定したファイルの名前が既に存在する場合、この値を false に設定すると、デフォルトでファイルが切り捨てられたり上書きされたりするのを防ぐことができます。 | ブール値 | いいえ | true | 該当なし | はい | 

**入力例: 上書きせずにファイルを作成 (Linux)**

```
  - name: CreatingFileWithoutOverwriteLinux
    action: CreateFile
    inputs:
      - path: /home/UserName/Sample.txt
        content: The text content of the sample file.
        overwrite: false
```

**入力例: 上書きせずにファイルを作成 (Windows)**

```
  - name: CreatingFileWithoutOverwriteWindows
    action: CreateFile
    inputs:
      - path: C:\Temp\Sample.txt
        content: The text content of the sample file.
        overwrite: false
```

**入力例: ファイルプロパティを含むファイルの作成**

```
  - name: CreatingFileWithFileProperties
    action: CreateFile
    inputs:
      - path: SampleFolder/Sample.txt
        content: The text content of the sample file.
        encoding: UTF-16
        owner: Ubuntu
        group: UbuntuGroup
        permissions: 0777
     - path: SampleFolder/SampleFile.txt
        permissions: 755
      - path: SampleFolder/TextFile.txt
        encoding: UTF-16
        owner: root
        group: rootUserGroup
```

**入力例: ファイルのプロパティなしでファイルを作成する**

```
  - name: CreatingFileWithoutFileProperties
    action: CreateFile
    inputs:
      - path: ./Sample.txt
      - path: Sample1.txt
```

**入力例: Linux クリーンアップスクリプトのセクションをスキップするために空のファイルを作成する**

```
  - name: CreateSkipCleanupfile
    action: CreateFile
    inputs:
      - path: <skip section file name>
```

詳細については、[Linux クリーンアップスクリプトをオーバーライドする](security-best-practices.md#override-linux-cleanup-script)を参照してください。

**Output**  
なし。

### CreateFolder (Linux、Windows、macOS)
<a name="action-modules-createfolder"></a>

**CreateFolder** アクションモジュールは、指定された場所にフォルダを作成します。デフォルトでは、モジュールは必要に応じて親フォルダも再帰的に作成します。

指定されたフォルダに既にフォルダが存在する場合、アクションモジュールはデフォルトで、既存のフォルダを切り捨てるか上書きします。上書きオプションを`false`に設定することで、このデフォルトの動作を上書きすることができます。上書きオプションが `false` に設定されていて、指定した場所に指定した名前のフォルダが既に存在する場合、アクションモジュールはエラーを返します。

`owner`、`group` および `permissions` はオプションの入力です。`permissions` の入力は文字列値でなければなりません。これらのオプションは Windows プラットフォームではサポートされていません。Windows プラットフォームで、`owner`、`group` と `permissions` オプションが使用されている場合、このアクションモジュールは検証してエラーを返します。

このアクションモジュールは、`umask` オペレーティングシステムのデフォルト値で定義された権限を持つフォルダを作成できます。デフォルト値をオーバーライドする場合、`umask` 値を設定する必要があります。

アクションモジュールは、以下の場合にエラーを返します。
+ 指定された場所にフォルダを作成する権限がありません。
+ 操作の実行中にアクションモジュールがエラーに遭遇しました。


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | すべてのプラットフォームでサポートされています | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | フォルダパス。 | String | はい | 該当なし | 該当なし | はい | 
| owner | ユーザー名または ID。 | String | いいえ | 現在のユーザー。 | 該当なし | Windows ではサポートされていません。 | 
| group | グループ名または ID。 | String | いいえ | 現在のユーザーのグループ。 | 該当なし | Windows ではサポートされていません。 | 
| permissions | フォルダのパーミッション。 | String | いいえ | 0777 | 該当なし | Windows ではサポートされていません。 | 
| overwrite | 指定したファイルの名前が既に存在する場合、この値を false に設定すると、デフォルトでファイルが切り捨てられたり上書きされたりするのを防ぐことができます。 | ブール値 | いいえ | true | 該当なし | はい | 

**入力例: フォルダの作成 (Linux)**

```
  - name: CreatingFolderLinux
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/
```

**入力例: フォルダの作成 (Windows)**

```
  - name: CreatingFolderWindows
    action: CreateFolder
    inputs:
      - path: C:\MyFolder
```

**入力例: フォルダのプロパティを指定してフォルダの作成**

```
  - name: CreatingFolderWithFolderProperties
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        owner: SampleOwnerName
        group: SampleGroupName
        permissions: 0777
      - path: /Sample/MyFolder/SampleFoler/
        permissions: 777
```

**入力例: 既存のフォルダ (ある場合) を上書きするフォルダを作成します。**

```
  - name: CreatingFolderWithOverwrite
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        overwrite: true
```

**Output**  
なし。

### CreateSymlink (Linux、Windows、macOS)
<a name="action-modules-createsymlink"></a>

**CreateSymLink** アクションモジュールは、シンボリックリンク、つまり別のファイルへの参照を含むファイルを作成します。このモジュールは Windows プラットフォームではサポートされていません。

`path` および `target` オプションの入力は、絶対パスでも相対パスでもかまいません。`path` オプションの入力が相対パスの場合は、リンクの作成時に絶対パスに置き換えられます。

デフォルトでは、指定された名前のリンクが指定されたフォルダに既に存在する場合、アクションモジュールからエラーが返されます。`force`オプションを`true`に設定することで、このデフォルト動作をオーバーライドすることができます。`force` オプションを `true` に設定すると、モジュールは既存のリンクを上書きします。

親フォルダが存在しない場合、アクションモジュールはデフォルトでそのフォルダを再帰的に作成します。

アクションモジュールは、以下の場合にエラーを返します。
+ ターゲットファイルが実行時に存在しません。
+ 指定された名前の非シンボリックリンクファイルが既に存在する。
+ 操作の実行中にアクションモジュールがエラーに遭遇しました。


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | すべてのプラットフォームでサポートされています | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | ファイルパス。 | String | はい | 該当なし | 該当なし | Windows ではサポートされていません。 | 
| target | シンボリックリンクが指すターゲットファイルのパス。 | String | はい | 該当なし | 該当なし | Windows ではサポートされていません。 | 
| force | 同じ名前のリンクが既に存在する場合、リンクの作成を強制します。 | ブール値 | いいえ | false | 該当なし | Windows ではサポートされていません。 | 

**入力例: リンクの作成を強制するシンボリックリンクの作成**

```
  - name: CreatingSymbolicLinkWithForce
    action: CreateSymlink
    inputs:
      - path: /Folder2/Symboliclink.txt
        target: /Folder/Sample.txt
        force: true
```

**入力例: リンクの作成を強制しないシンボリックリンクの作成**

```
  - name: CreatingSymbolicLinkWithOutForce
    action: CreateSymlink
    inputs:
      - path: Symboliclink.txt
        target: /Folder/Sample.txt
```

**Output**  
なし。

### DeleteFile (Linux、Windows、macOS)
<a name="action-modules-deletefile"></a>

**DeleteFile** アクションモジュールは、指定された場所にある 1 つまたは複数のファイルを削除します。

`path` の入力は、有効なファイルパスか、ファイル名にワイルドカード文字(`*`)を含むファイルパスでなければならない。ファイル名にワイルドカード文字を指定すると、ワイルドカードに一致する同じフォルダ内のすべてのファイルが削除されます。

アクションモジュールは、以下の場合にエラーを返します。
+ あなたには削除操作を実行する権限がありません。
+ 操作の実行中にアクションモジュールがエラーに遭遇しました。


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | すべてのプラットフォームでサポートされています | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | ファイルパス。 | String | はい | 該当なし | 該当なし | はい | 

**入力例: 1 つのファイルを削除する (Linux)**

```
  - name: DeletingSingleFileLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/Sample.txt
```

**入力例: 1 つのファイルを削除する (Windows)**

```
  - name: DeletingSingleFileWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\Sample.txt
```

**入力例:「log」で終わるファイルを削除する (Linux)**

```
  - name: DeletingFileEndingWithLogLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/*log
```

**入力例:「log」で終わるファイルを削除する (Windows)**

```
  - name: DeletingFileEndingWithLogWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\*log
```

**入力例: 指定したフォルダ内のファイルをすべて削除する (Linux)**

```
  - name: DeletingAllFilesInAFolderLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/*
```

**入力例: 指定したフォルダ内のファイルをすべて削除する (Windows)**

```
  - name: DeletingAllFilesInAFolderWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\*
```

**Output**  
なし。

### DeleteFolder (Linux、Windows、macOS)
<a name="action-modules-deletefolder"></a>

**DeleteFolder** アクションモジュールはフォルダを削除します。

フォルダが空でない場合は、 フォルダとその内容を削除する `force` オプションを `true` に設定する必要があります。`force` オプションを `true` に設定せず、削除しようとしているフォルダが空でない場合、アクションモジュールはエラーを返します。`force`オプションのデフォルト値は`false`です。

アクションモジュールは、以下の場合にエラーを返します。
+ あなたには削除操作を実行する権限がありません。
+ 操作の実行中にアクションモジュールがエラーに遭遇しました。


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | すべてのプラットフォームでサポートされています | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | フォルダパス。 | String | はい | 該当なし | 該当なし | はい | 
| force | フォルダが空であろうとなかろうと、フォルダを削除します。 | ブール値 | いいえ | false | 該当なし | はい | 

**入力例: `force` オプションを使用して空でないフォルダを削除する (Linux)** 

```
  - name: DeletingFolderWithForceOptionLinux
    action: DeleteFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        force: true
```

**入力例: `force` オプションを使用して空でないフォルダを削除する (Windows)** 

```
  - name: DeletingFolderWithForceOptionWindows
    action: DeleteFolder
    inputs:
      - path: C:\Sample\MyFolder\Sample\
        force: true
```

**入力例: フォルダの削除 (Linux)** 

```
  - name: DeletingFolderWithOutForceLinux
    action: DeleteFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
```

**入力例: フォルダの削除 (Windows)** 

```
  - name: DeletingFolderWithOutForce
    action: DeleteFolder
    inputs:
      - path: C:\Sample\MyFolder\Sample\
```

**Output**  
なし。

### ListFiles (Linux、Windows、macOS)
<a name="action-modules-listfiles"></a>

**ListFiles** アクションモジュールは、指定されたフォルダ内のファイルを一覧表示します。recursive オプションを `true` に設定すると、サブフォルダ内のファイルが一覧表示されます。このモジュールは、デフォルトではサブフォルダ内のファイルを一覧表示しません。

指定したパターンに一致する名前のファイルをすべて一覧表示するには、`fileNamePattern` オプションを使用してパターンを指定します。`fileNamePattern` オプションはワイルドカード (`*`) 値を受け入れます。`fileNamePattern` を指定すると、指定されたファイル名形式に一致するすべてのファイルが返されます。

アクションモジュールは、以下の場合にエラーを返します。
+ 指定されたフォルダが実行時に存在しません。
+ 指定された親フォルダにファイルまたはフォルダを作成する権限がありません。
+ 操作の実行中にアクションモジュールがエラーに遭遇しました。


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | すべてのプラットフォームでサポートされています | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | フォルダパス。 | String | はい | 該当なし | 該当なし | はい | 
| fileNamePattern | 一致するパターンで、そのパターンに一致する名前を持つすべてのファイルを一覧表示します。 | String | いいえ | 該当なし | 該当なし | はい | 
| recursive | フォルダ内のファイルを再帰的に一覧表示します。 | ブール値 | いいえ | false | 該当なし | はい | 

**入力例: 指定したフォルダ内のファイルを一覧表示する (Linux)**

```
  - name: ListingFilesInSampleFolderLinux
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/Sample
```

**入力例: 指定したフォルダ内のファイルを一覧表示する (Windows)**

```
  - name: ListingFilesInSampleFolderWindows
    action: ListFiles
    inputs:
      - path: C:\Sample\MyFolder\Sample
```

**入力例:「log」で終わるファイルを一覧表示する (Linux)**

```
  - name: ListingFilesWithEndingWithLogLinux
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/
        fileNamePattern: *log
```

**入力例:「log」で終わるファイルを一覧表示する (Windows)**

```
  - name: ListingFilesWithEndingWithLogWindows
    action: ListFiles
    inputs:
      - path: C:\Sample\MyFolder\
        fileNamePattern: *log
```

**入力例: ファイルを再帰的に一覧表示する**

```
  - name: ListingFilesRecursively
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/
        recursive: true
```


**Output**  

| キー名 | 説明 | タイプ | 
| --- | --- | --- | 
| files | ファイルのリストです。 | String | 

**出力例**

```
{
	"files": "/sample1.txt,/sample2.txt,/sample3.txt"
}
```

### MoveFile (Linux、Windows、macOS)
<a name="action-modules-movefile"></a>

**MoveFile** アクションモジュールは、指定されたソースから指定された宛先にファイルを移動します。

指定したフォルダーにファイルがすでに存在する場合、アクションモジュールはデフォルトで既存のファイルを上書きします。上書きオプションを`false`に設定することで、このデフォルトの動作を上書きすることができます。上書きオプションが `false` に設定されていて、指定した場所に指定した名前のファイルが既に存在する場合、アクションモジュールはエラーを返します。このオプションは Linux `mv` のコマンドと同じように機能し、デフォルトでは上書きされます。

ソースファイル名にはワイルドカード (`*`) を含めることができます。ワイルドカード文字は、最後のファイルパスの区切り文字 (`/` または `\`) の後でのみ使用できます。ソースファイル名にワイルドカード文字が含まれている場合、ワイルドカードに一致するすべてのファイルが宛先フォルダにコピーされます。ワイルドカード文字を使用して複数のファイルを移動する場合は、`destination` オプションへの入力の末尾にファイルパスの区切り文字 (`/` または `\`) を付ける必要があります。これは、移動先の入力がフォルダであることを示します。

移動先のファイル名がソースファイル名と異なる場合は、`destination` オプションを使用して移動先のファイル名を指定できます。宛先ファイル名を指定しない場合、ソースファイルの名前を使用して宛先ファイルが作成されます。最後のファイルパス区切り文字 (`/` または `\`) に続くテキストはすべてファイル名として扱われます。ソースファイルと同じファイル名を使用する場合は、`destination` オプションの入力がファイルパスの区切り文字 (`/` または `\`) で終わる必要があります。

アクションモジュールは、以下の場合にエラーを返します。
+ 指定されたフォルダにファイルを作成する権限がない。
+ ソースファイルは実行時には存在しません。
+ 指定したファイル名のフォルダが既に存在し、`overwrite` オプションは `false` に設定されています。
+ 操作の実行中にアクションモジュールがエラーに遭遇しました。


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | すべてのプラットフォームでサポートされています | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | ソースファイルのパス。 | String | はい | 該当なし | 該当なし | はい | 
| destination | デスティネーションファイルパス。 | String | はい | 該当なし | 該当なし | はい | 
| overwrite | false に設定すると、指定した場所に指定した名前のファイルが既にある場合でも、宛先ファイルは置き換えられません。 | ブール値 | いいえ | true | 該当なし | はい | 

**入力例: ファイルを移動する (Linux)**

```
  - name: MovingAFileLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
```

**入力例: ファイルを移動する (Windows)**

```
  - name: MovingAFileWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
```

**入力例: ソースファイル名を使用してファイルを移動する (Linux)**

```
  - name: MovingFileWithSourceFileNameLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/
```

**入力例: ソースファイル名を使用してファイルを移動する (Windows)**

```
  - name: MovingFileWithSourceFileNameWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder
```

**入力例: ワイルドカード文字を使用してファイルを移動する (Linux)**

```
  - name: MovingFilesWithWildCardLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**入力例: ワイルドカード文字を使用してファイルを移動する (Windows)**

```
  - name: MovingFilesWithWildCardWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder
```

**入力例: ファイルを上書きせずに移動する (Linux)**

```
  - name: MovingFilesWithoutOverwriteLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
        overwrite: false
```

**入力例: ファイルを上書きせずに移動する (Windows)**

```
  - name: MovingFilesWithoutOverwrite
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
        overwrite: false
```

**Output**  
なし。

### MoveFolder (Linux、Windows、macOS)
<a name="action-modules-movefolder"></a>

**MoveFolder** アクションモジュールは、指定されたソースから指定された宛先にフォルダを移動します。`source`オプションの入力は移動するフォルダであり、`destination`オプションの入力は移動元フォルダのコンテンツを移動するフォルダです。

実行時に移動先の親フォルダまたは `destination` オプションへの入力が存在しない場合、モジュールのデフォルト動作では、指定された宛先にフォルダを再帰的に作成します。

ソースフォルダと同じフォルダが宛先フォルダに既に存在する場合、アクションモジュールはデフォルトで、既存のフォルダを上書きします。上書きオプションを`false`に設定することで、このデフォルトの動作を上書きすることができます。上書きオプションが `false` に設定されていて、指定した場所に指定した名前のフォルダが既に存在する場合、アクションモジュールはエラーを返します。

ソースフォルダ名にはワイルドカード (`*`) を含めることができます。ワイルドカード文字は、最後のファイルパスの区切り文字 (`/` または `\`) の後でのみ使用できます。コピー元フォルダ名にワイルドカード文字が含まれている場合、ワイルドカードに一致するすべてのフォルダがコピー先フォルダにコピーされます。ワイルドカード文字を使用して複数のフォルダを移動する場合、`destination` オプションへの入力は、コピー先の入力がフォルダであることを示すファイルパス区切り記号 (`/` または `\`) で終わる必要があります。

コピー先フォルダ名がソースフォルダ名と異なる場合は、`destination` オプションを使用してコピー先フォルダ名を指定できます。宛先フォルダ名を指定しない場合、ソースフォルダの名前が宛先フォルダの作成に使用されます。最後のファイルパスの区切り文字 (`/` または `\`) に続くテキストはすべてフォルダ名として扱われます。ソースフォルダと同じフォルダ名を使用する場合は、`destination` オプションの入力がファイルパスの区切り文字 (`/` または `\`) で終わる必要があります。

アクションモジュールは、以下の場合にエラーを返します。
+ 保存先フォルダにフォルダを作成する権限がありません。
+ ソースフォルダは実行時には存在しません。
+ 指定した名前のフォルダが既に存在し、`overwrite` オプションは `false` に設定されています。
+ 操作の実行中にアクションモジュールがエラーに遭遇しました。


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | すべてのプラットフォームでサポートされています | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | ソースフォルダのパス。 | String | はい | 該当なし | 該当なし | はい | 
| destination | 宛先フォルダのパス。 | String | はい | 該当なし | 該当なし | はい | 
| overwrite | false に設定すると、指定された場所に指定された名前のフォルダが既にある場合、保存先フォルダは置き換えられません。 | ブール値 | いいえ | true | 該当なし | はい | 

**入力例: フォルダの移動 (Linux)**

```
  - name: MovingAFolderLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/destinationFolder
```

**入力例: フォルダの移動 (Windows)**

```
  - name: MovingAFolderWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SourceFolder
        destination: C:\MyFolder\destinationFolder
```

**入力例: ソースフォルダ名を使用してフォルダを移動する (Linux)**

```
  - name: MovingFolderWithSourceFolderNameLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
        destination: /MyFolder/
```

**入力例: ソースフォルダ名を使用してフォルダを移動する (Windows)**

```
  - name: MovingFolderWithSourceFolderNameWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\
```

**入力例: ワイルドカード文字を使用してフォルダを移動 (Linux)**

```
  - name: MovingFoldersWithWildCardLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**入力例: ワイルドカード文字を使用してフォルダを移動する (Windows)**

```
  - name: MovingFoldersWithWildCardWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**入力例: フォルダを上書きせずに移動する (Linux)**

```
  - name: MovingFoldersWithoutOverwriteLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
    destination: /MyFolder/destinationFolder
    overwrite: false
```

**入力例: フォルダを上書きせずに移動する (Windows)**

```
  - name: MovingFoldersWithoutOverwriteWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\destinationFolder
        overwrite: false
```

**Output**  
なし。

### ReadFile (Linux、Windows、macOS)
<a name="action-modules-readfile"></a>

**ReadFile** アクションモジュールは、文字列型のテキストファイルの内容を読み取ります。このモジュールを使うと、ファイルの内容を読み取ってチェーニングによって後続のステップで使用したり、データを `console.log` ファイルに読み込んだりできます。指定されたパスがシンボリックリンクの場合、このモジュールはターゲットファイルの内容を返します。このモジュールはテキストファイルのみをサポートします。

ファイルエンコーディング値がデフォルトのエンコーディング (`utf-8`) 値と異なる場合は、`encoding` オプションを使用してファイルエンコーディング値を指定できます。デフォルトでは `utf-16` と `utf-32` リトルエンディアンエンディアンエンコーディングを使用すると想定されています。

デフォルトでは、このモジュールは `console.log` ファイルの内容をファイルに出力できません。`printFileContent` プロパティを `true` に設定すると、この設定を上書きできます。

このモジュールはファイルの内容のみを返すことができます。Excel や JSON ファイルなどのファイルを解析することはできません。

アクションモジュールは、以下の場合にエラーを返します。
+ 実行時にファイルが存在しません。
+ 操作の実行中にアクションモジュールがエラーに遭遇しました。


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | すべてのプラットフォームでサポートされています | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | ファイルパス。 | String | はい | 該当なし | 該当なし | はい | 
| encoding | エンコード形式です。 | String | いいえ | utf8 | utf8、utf-8、utf16、utf-16、utf16-LE、utf-16-LE、utf16-BE、utf-16-BE、utf32、utf-32、utf32-LE、utf-32-LE、utf32-BEおよび  utf-32-BE。エンコーディングオプションの値は大文字と小文字を区別しません。 | はい | 
| printFileContent | ファイルの内容を console.log ファイルに出力します。 | ブール値 | いいえ | false | 該当なし | はい。 | 

**入力例: ファイルの読み取り (Linux)**

```
  - name: ReadingFileLinux
    action: ReadFile
    inputs:
      - path: /home/UserName/SampleFile.txt
```

**入力例: ファイルの読み込み（Windows）**

```
  - name: ReadingFileWindows
    action: ReadFile
    inputs:
      - path: C:\Windows\WindowsUpdate.log
```

**入力例: ファイルを読み込んでエンコーディングの標準を指定する**

```
  - name: ReadingFileWithFileEncoding
    action: ReadFile
    inputs:
      - path: /FolderName/SampleFile.txt
        encoding: UTF-32
```

**入力例: `console.log` ファイルを読み込んでファイルに出力する**

```
  - name: ReadingFileToConsole
    action: ReadFile
    inputs:
      - path: /home/UserName/SampleFile.txt
        printFileContent: true
```


**Output**  

| フィールド | 説明 | タイプ | 
| --- | --- | --- | 
| content | ファイルの内容。 | string | 

**出力例**

```
{
	"content" : "The file content"
}
```

### SetFileEncoding (Linux、Windows、macOS)
<a name="action-modules-setfileencoding"></a>

**SetFileEncoding** アクションモジュールは、既存のファイルのエンコーディングプロパティを変更します。このモジュールは、`utf-8` ファイルのエンコーディングを指定されたエンコーディング標準に変換できます。デフォルトでは、`utf-16` と `utf-32` リトルエンディアンエンディアンエンコーディングと想定されています。

アクションモジュールは、以下の場合にエラーを返します。
+ 指定された変更を実行するにはアクセス許可が必要です。
+ 実行時にファイルが存在しません。
+ 操作の実行中にアクションモジュールがエラーに遭遇しました。


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | すべてのプラットフォームでサポートされています | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | ファイルパス。 | String | はい | 該当なし | 該当なし | はい | 
| encoding | エンコード形式です。 | String | いいえ | utf8 | utf8、utf-8、utf16、utf-16、utf16-LE、utf-16-LE、utf16-BE、utf-16-BE、utf32、utf-32、utf32-LE、utf-32-LE、utf32-BEおよび  utf-32-BE。エンコーディングオプションの値は大文字と小文字を区別しません。 | はい | 

**入力例: ファイルエンコーディングプロパティの設定**

```
  - name: SettingFileEncodingProperty
    action: SetFileEncoding
    inputs:
      - path: /home/UserName/SampleFile.txt
        encoding: UTF-16
```

**Output**  
なし。

### SetFileOwner (Linux、Windows、macOS)
<a name="action-modules-setfileowner"></a>

**SetFileOwner** アクションモジュールは、`owner` と `group` 既存のファイルのプロパティと所有者プロパティを変更します。指定されたファイルがシンボリックリンクの場合、`owner` モジュールはソースファイルのプロパティを変更します。このモジュールは Windows プラットフォームではサポートされていません。

このモジュールは、ユーザー名とグループ名を入力として受け入れます。グループ名が指定されていない場合、モジュールはファイルのグループ所有者をユーザーが所属するグループに割り当てます。

アクションモジュールは、以下の場合にエラーを返します。
+ 指定された変更を実行するにはアクセス許可が必要です。
+ 指定したユーザー名またはグループ名は実行時には存在しません。
+ 実行時にファイルが存在しません。
+ 操作の実行中にアクションモジュールがエラーに遭遇しました。


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | すべてのプラットフォームでサポートされています | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | ファイルパス。 | String | はい | 該当なし | 該当なし | Windows ではサポートされていません。 | 
| owner | ユーザー名。 | string | はい | 該当なし | 該当なし | Windows ではサポートされていません。 | 
| group | ユーザーグループの名前。 | String | いいえ | ユーザーが所属するグループ名。 | 該当なし | Windows ではサポートされていません。 | 

**入力例: ユーザーグループの名前を指定せずにファイル所有者プロパティを設定**

```
  - name: SettingFileOwnerPropertyNoGroup
    action: SetFileOwner
    inputs:
      - path: /home/UserName/SampleText.txt
        owner: LinuxUser
```

**入力例: 所有者とユーザーグループを指定してファイル所有者プロパティを設定**

```
  - name: SettingFileOwnerProperty
    action: SetFileOwner
    inputs:
      - path: /home/UserName/SampleText.txt
        owner: LinuxUser
        group: LinuxUserGroup
```

**Output**  
なし。

### SetFolderOwner (Linux、Windows、macOS)
<a name="action-modules-setfolderowner"></a>

**SetFolderOwner** アクションモジュールは、既存のフォルダのプロパティと `owner` と `group` 所有者プロパティを再帰的に変更します。デフォルトでは、モジュールはフォルダ内のすべてのコンテンツの所有権を変更できます。この動作をオーバーライドする `recursive` オプションを `false` に設定できます。このモジュールは Windows プラットフォームではサポートされていません。

このモジュールは、ユーザー名とグループ名を入力として受け入れます。グループ名が指定されていない場合、モジュールはファイルのグループ所有者をユーザーが所属するグループに割り当てます。

アクションモジュールは、以下の場合にエラーを返します。
+ 指定された変更を実行するにはアクセス許可が必要です。
+ 指定したユーザー名またはグループ名は実行時には存在しません。
+ 実行時にフォルダが存在しません。
+ 操作の実行中にアクションモジュールがエラーに遭遇しました。


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | すべてのプラットフォームでサポートされています | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | フォルダパス。 | String | はい | 該当なし | 該当なし | Windows ではサポートされていません。 | 
| owner | ユーザー名。 | string | はい | 該当なし | 該当なし | Windows ではサポートされていません。 | 
| group | ユーザーグループの名前。 | String | いいえ | ユーザーが所属するグループ名。 | 該当なし | Windows ではサポートされていません。 | 
| recursive | false に設定すると、フォルダのすべてのコンテンツの所有権を変更するというデフォルトの動作が上書きされます。 | ブール値 | いいえ | true | 該当なし | Windows ではサポートされていません。 | 

**入力例: ユーザーグループの名前を指定せずにフォルダ所有者プロパティを設定する**

```
  - name: SettingFolderPropertyWithOutGroup
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
```

**入力例: フォルダ内のすべてのコンテンツの所有権を変更せずにフォルダ所有者プロパティを設定する**

```
  - name: SettingFolderPropertyWithOutRecursively
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
        recursive: false
```

**入力例: ユーザーグループの名前を指定してファイル所有権プロパティを設定します**

```
  - name: SettingFolderPropertyWithGroup
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
        group: LinuxUserGroup
```

**Output**  
なし。

### SetFilePermissions (Linux、Windows、macOS)
<a name="action-modules-setfilepermissions"></a>

**SetFilePermissions** アクションモジュールは、既存のファイルの内容の `permissions` を変更します。このモジュールは Windows プラットフォームではサポートされていません。

`permissions` の入力は文字列値でなければなりません。

このアクションモジュールは、オペレーティングシステムのデフォルト値で定義された権限を使用してファイルを作成できます。デフォルト値をオーバーライドする場合、`umask` 値を設定する必要があります。

アクションモジュールは、以下の場合にエラーを返します。
+ 指定された変更を実行するにはアクセス許可が必要です。
+ 実行時にファイルが存在しません。
+ 操作の実行中にアクションモジュールがエラーに遭遇しました。


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | すべてのプラットフォームでサポートされています | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | ファイルパス。 | String | はい | 該当なし | 該当なし | Windows ではサポートされていません。 | 
| permissions | ファイルのパーミッション。 | String | はい | 該当なし | 該当なし | Windows ではサポートされていません。 | 

**入力例:ファイル権限の変更**

```
  - name: ModifyingFilePermissions
    action: SetFilePermissions
    inputs:
      - path: /home/UserName/SampleFile.txt
        permissions: 766
```

**Output**  
なし。

### SetFolderPermissions (Linux、Windows、macOS)
<a name="action-modules-setfolderpermissions"></a>

**SetFolderPermissions** アクションモジュールは、`permissions` の既存のフォルダとそのすべてのサブファイルおよびサブフォルダを再帰的に変更します。デフォルトでは、このモジュールは指定されたフォルダのすべてのコンテンツの許可を変更できます。この動作をオーバーライドする `recursive` オプションを `false` に設定できます。このモジュールは Windows プラットフォームではサポートされていません。

`permissions` の入力は文字列値でなければなりません。

このアクションモジュールは、オペレーティングシステムのデフォルト umask 値に従って権限を変更できます。デフォルト値をオーバーライドする場合、`umask` 値を設定する必要があります。

アクションモジュールは、以下の場合にエラーを返します。
+ 指定された変更を実行するにはアクセス許可が必要です。
+ 実行時にフォルダが存在しません。
+ 操作の実行中にアクションモジュールがエラーに遭遇しました。


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | すべてのプラットフォームでサポートされています | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | フォルダパス。 | String | はい | 該当なし | 該当なし | Windows ではサポートされていません。 | 
| permissions | フォルダのパーミッション。 | String | はい | 該当なし | 該当なし | Windows ではサポートされていません。 | 
| recursive | false に設定すると、フォルダのすべての内容の権限を変更するというデフォルトの動作が上書きされます。 | ブール値 | いいえ | true | 該当なし | Windows ではサポートされていません。 | 

**入力例: フォルダ権限の設定**

```
  - name: SettingFolderPermissions
    action: SetFolderPermissions
    inputs:
      - path: SampleFolder/
        permissions: 0777
```

**入力例: フォルダのすべてのコンテンツのパーミッションを変更せずに、フォルダのパーミッションを設定する**

```
  - name: SettingFolderPermissionsNoRecursive
    action: SetFolderPermissions
    inputs:
      - path: /home/UserName/SampleFolder/
        permissions: 777
        recursive: false
```

**Output**  
なし。

## ソフトウェアインストールアクション
<a name="action-modules-software-install-actions"></a>

以下のセクションでは、ソフトウェアをインストールまたはアンインストールするアクションモジュールについて説明します。

**IAM の要件**  
インストールダウンロードパスが S3 URI の場合、インスタンスプロファイルに関連付ける IAM ロールには `S3Download` アクションモジュールを実行する権限が必要です。必要なアクセス権限を付与するには、インスタンスプロファイルに関連付けられている `S3:GetObject` IAM ロールに IAM ポリシーをアタッチし、バケットのパスを指定します。例えば、`arn:aws:s3:::BucketName/*` です。

**複雑な MSI 入力**  
入力文字列に二重引用符 (`"`) が含まれている場合は、以下のいずれかの方法を使用して正しく解釈されるようにする必要があります。
+ 次の例のように、文字列の外側には一重引用符 (') を使用し、文字列の内側には二重引用符 (「) を使用できます。

  ```
  properties:
    COMPANYNAME: '"Acme ""Widgets"" and ""Gizmos."""'
  ```

  この場合、文字列の中でアポストロフィを使用する必要がある場合は、そのアポストロフィをエスケープする必要があります。つまり、アポストロフィの前に一重引用符 (') をもう 1 つ使うということです。
+ 文字列の外側には二重引用符 (「) を使用して格納できます。また、次の例のように、バックスラッシュ文字 (`\`) を使用して、文字列内の二重引用符をエスケープできます。

  ```
  properties:
    COMPANYNAME: "\"Acme \"\"Widgets\"\" and \"\"Gizmos.\"\"\""
  ```

これらのメソッドはいずれも、`COMPANYNAME="Acme ""Widgets"" and ""Gizmos."""` 値を**msiexec**コマンドに渡します。

**Topics**
+ [InstallMSI (Windows)](#action-modules-install-msi)
+ [UninstallMSI (Windows)](#action-modules-uninstall-msi)

### InstallMSI (Windows)
<a name="action-modules-install-msi"></a>

`InstallMSI` アクションモジュールは MSI ファイルを使用して Windows アプリケーションをインストールします。ローカルパス、S3 オブジェクト URI、またはウェブ URL を使用して MSI ファイルを指定できます。再起動オプションはシステムの再起動動作を設定します。

AWSTOE は、アクションモジュールの入力パラメータに基づいて**msiexec**コマンドを生成します。`path` (MSI ファイルの場所) と `logFile` (ログファイルの場所) の入力パラメータの値は、引用符 (「) で囲む必要があります。

次の MSI 終了コードは成功とみなされます。
+ 0 - 成功
+ 1614 (製品\$1アンインストールエラー)
+ 1641 (再起動が開始されました)
+ 3010 (再起動が必要です)


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | 
| --- | --- | --- | --- | --- | --- | 
| path |  次のいずれかを使用して MSI ファイルの場所を指定します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-action-modules.html) チェーン式は許可されています。  | String | はい | 該当なし | 該当なし | 
| reboot |  アクションモジュールが正常に実行された後のシステム再起動動作を設定します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-action-modules.html)  | String | いいえ | Allow | Allow, Force, Skip | 
| logOptions |  MSI インストールロギングに使用するオプションを指定します。指定されたフラグは、ロギングを有効にする `/L` コマンドラインパラメータとともに MSI インストーラーに渡されます。フラグが指定されていない場合、 はデフォルト値 AWSTOE を使用します。 MSI の Log オプションの詳細については、Microsoft Windows Installer 製品ドキュメントの[コマンドラインオプション](https://learn.microsoft.com/en-us/windows/win32/msi/command-line-options)を参照してください。  | String | いいえ | \$1VX | i,w,e,a,r,u,c,m,o,p,v,x,\$1,\$1,\$1 | 
| logFile |  ログファイルの場所への絶対パスまたは相対パス。Log ファイルのパスが存在しない場合は、作成される。ログファイルパスが指定されていない場合、 AWSTOE は MSI インストールログを保存しません。  | String | いいえ | 該当なし | 該当なし | 
| properties |  MSI ロギングプロパティのキーと値のペア。例: `TARGETDIR: "C:\target\location"`   注:以下のプロパティは変更できません。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-action-modules.html)  | Map[String]String | いいえ | 該当なし | 該当なし | 
| ignoreAuthenticodeSignatureErrors |  path で指定されたインストーラーの authenticode 署名検証エラーを無視するフラグ。この **Get-AuthenticodeSignature** コマンドはインストーラーを検証するために使用されます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-action-modules.html)  | ブール値 | いいえ | false | true, false | 
| allowUnsignedInstaller |  パスに指定された署名なしインストーラーの実行を許可するフラグ。この **Get-AuthenticodeSignature** コマンドはインストーラーを検証するために使用されます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-action-modules.html)  | ブール値 | いいえ | false | true, false | 

**例**  
以下の例は、コンポーネントドキュメントの入力セクションのバリエーションを示しています。

**入力例: ローカルドキュメントパスのインストール**

```
- name: local-path-install
  steps:
    - name: LocalPathInstaller
      action: InstallMSI
      inputs:
        path: C:\sample.msi
        logFile: C:\msilogs\local-path-install.log
        logOptions: '*VX'
        reboot: Allow
        properties:
          COMPANYNAME: '"Amazon Web Services"'
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: true
```

**入力例: Amazon S3 パスのインストール**

```
- name: s3-path-install
  steps:
    - name: S3PathInstaller
      action: InstallMSI
      inputs:
        path: s3://<bucket-name>/sample.msi
        logFile: s3-path-install.log
        reboot: Force
        ignoreAuthenticodeSignatureErrors: false
        allowUnsignedInstaller: true
```

**入力例: ウェブパスのインストール**

```
- name: web-path-install
  steps:
    - name: WebPathInstaller
      action: InstallMSI
      inputs:
        path: https://<some-path>/sample.msi
        logFile: web-path-install.log
        reboot: Skip
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: false
```

**Output**  
次は `InstallMSI` アクションモジュールの出力の例です。

```
{
	"logFile": "web-path-install.log",
	"msiExitCode": 0,
	"stdout": ""
}
```

### UninstallMSI (Windows)
<a name="action-modules-uninstall-msi"></a>

`UninstallMSI` アクションモジュールでは、MSI ファイルを使用して Windows アプリケーションを削除することができます。ローカルファイルパス、S3 オブジェクト URI、またはウェブ URL を使用して、MSI ファイルの場所を指定できます。再起動オプションはシステムの再起動動作を設定します。

AWSTOE は、アクションモジュールの入力パラメータに基づいて**msiexec**コマンドを生成します。MSI ファイルの場所 (`path`) とログファイルの場所 (`logFile`) は、**msiexec** コマンドの生成時に二重引用符 (") で明示的に囲まれます。

次の MSI 終了コードは成功とみなされます。
+ 0 - 成功
+ 1605 (製品不明エラー)
+ 1614 (製品\$1アンインストールエラー)
+ 1641 (再起動が開始されました)
+ 3010 (再起動が必要です)


**Input**  

| キー名 | 説明 | タイプ | 必須 | デフォルトの値 | 許容値 | 
| --- | --- | --- | --- | --- | --- | 
| path |  次のいずれかを使用して MSI ファイルの場所を指定します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-action-modules.html) チェーン式は許可されています。  | String | はい | 該当なし | 該当なし | 
| reboot |  アクションモジュールが正常に実行された後のシステム再起動動作を設定します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-action-modules.html)  | String | いいえ | Allow | Allow, Force, Skip | 
| logOptions |  MSI インストールロギングに使用するオプションを指定します。指定されたフラグは、ロギングを有効にする `/L` コマンドラインパラメータとともに MSI インストーラーに渡されます。フラグが指定されていない場合、 はデフォルト値 AWSTOE を使用します。 MSI の Log オプションの詳細については、Microsoft Windows Installer 製品ドキュメントの[コマンドラインオプション](https://docs.microsoft.com/en-us/windows/win32/msi/command-line-options)を参照してください。  | String | いいえ | \$1VX | i,w,e,a,r,u,c,m,o,p,v,x,\$1,\$1,\$1 | 
| logFile |  ログファイルの場所への絶対パスまたは相対パス。Log ファイルのパスが存在しない場合は、作成される。ログファイルパスが指定されていない場合、 AWSTOE は MSI インストールログを保存しません。  | String | いいえ | 該当なし | 該当なし | 
| properties |  MSI ロギングプロパティのキーと値のペア。例: `TARGETDIR: "C:\target\location"`   注:以下のプロパティは変更できません。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-action-modules.html)  | Map[String]String | いいえ | 該当なし | 該当なし | 
| ignoreAuthenticodeSignatureErrors |  path で指定されたインストーラーの authenticode 署名検証エラーを無視するフラグ。この **Get-AuthenticodeSignature** コマンドはインストーラーを検証するために使用されます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-action-modules.html)  | ブール値 | いいえ | false | true, false | 
| allowUnsignedInstaller |  パスに指定された署名なしインストーラーの実行を許可するフラグ。この **Get-AuthenticodeSignature** コマンドはインストーラーを検証するために使用されます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-action-modules.html)  | ブール値 | いいえ | false | true, false | 

**例**  
以下の例は、コンポーネントドキュメントの入力セクションのバリエーションを示しています。

**入力例:ローカルドキュメントパスインストールの削除**

```
- name: local-path-uninstall
  steps:
    - name: LocalPathUninstaller
      action: UninstallMSI
      inputs:
        path: C:\sample.msi
        logFile: C:\msilogs\local-path-uninstall.log
        logOptions: '*VX'
        reboot: Allow
        properties:
          COMPANYNAME: '"Amazon Web Services"'
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: true
```

**入力例:Amazon S3 パスインストールの削除**

```
- name: s3-path-uninstall
  steps:
    - name: S3PathUninstaller
      action: UninstallMSI
      inputs:
        path: s3://<bucket-name>/sample.msi
        logFile: s3-path-uninstall.log
        reboot: Force
        ignoreAuthenticodeSignatureErrors: false
        allowUnsignedInstaller: true
```

**入力例: ウェブパスのインストールを削除**

```
- name: web-path-uninstall
  steps:
    - name: WebPathUninstaller
      action: UninstallMSI
      inputs:
        path: https://<some-path>/sample.msi
        logFile: web-path-uninstall.log
        reboot: Skip
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: false
```

**Output**  
次は `UninstallMSI` アクションモジュールの出力の例です。

```
{
	"logFile": "web-path-uninstall.log",
	"msiExitCode": 0,
	"stdout": ""
}
```

## システムアクションモジュール
<a name="action-modules-system-actions"></a>

以下のセクションでは、システムアクションを実行したり、システム設定を更新したりするアクションモジュールについて説明します。

**Topics**
+ [Reboot (Linux、Windows)](#action-modules-reboot)
+ [SetRegistry (Windows)](#action-modules-setregistry)
+ [UpdateOS (Linux、Windows)](#action-modules-updateos)

### Reboot (Linux、Windows)
<a name="action-modules-reboot"></a>

**再起動**アクションモジュールはインスタンスを再起動します。再起動の開始を遅らせる設定可能なオプションがあります。デフォルトでは、`delaySeconds` は `0` に設定されています。つまり、遅延はありません。ステップタイムアウトは、インスタンスの再起動時には適用されないため、再起動アクションモジュールではサポートされていません。

アプリケーションが Systems Manager エージェントによって呼び出されると、終了コード (Windows `3010` の場合、Linux `194` の場合) がSystems Manager エージェントに渡されます。システムマネージャーエージェントは、[スクリプトからマネージドインスタンスを再起動する](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html)の説明に従ってシステムの再起動を処理します。

アプリケーションがホスト上でスタンドアロンプロセスとして呼び出された場合、現在の実行状態を保存し、再起動後にアプリケーションを再実行するように再起動後の自動実行トリガーを構成し、システムを再起動します。

**再起動後の自動実行トリガー:**
+ **Windows**。 AWSTOE は `SystemStartup` で自動的に実行されるトリガーを含む Windows タスクスケジューラエントリを作成
+ **Linux**。 AWSTOE はシステム再起動後に自動的に実行されるジョブを crontab に追加します。

```
@reboot /download/path/awstoe run --document s3://bucket/key/doc.yaml
```

このトリガーはアプリケーションの起動時にクリーンアップされます。

**再試行**  
デフォルトでは、再試行の最大回数は Systems Manager `CommandRetryLimit` に設定されています。再起動回数が再試行制限を超えると、自動化は失敗します。Systems Manager エージェント設定ファイル (`Mds.CommandRetryLimit`) を編集して制限を変更できます。Systems Manager エージェントオープンソースの「[Runtime Configuration](https://github.com/aws/amazon-ssm-agent/blob/mainline/README.md#runtime-configuration)」を参照してください。

**Reboot** アクションモジュールを使用するには、reboot `exitcode` を含むステップ（例えば `3010`）に対して、アプリケーションバイナリを `sudo user` として実行する必要があります。


**Input**  

| キー名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 
| --- | --- | --- | --- | --- | 
| delaySeconds | 再起動を開始する前に、特定の時間だけ遅延させます。 | 整数 |  いいえ  |  `0`  | 

**入力例: 再起動ステップ**

```
  - name: RebootStep
    action: Reboot
    onFailure: Abort
    maxAttempts: 2
    inputs:
      delaySeconds: 60
```

**出力**

なし。

**再起動**モジュールが完了すると、Image Builder はビルドの次のステップに進みます。

### SetRegistry (Windows)
<a name="action-modules-setregistry"></a>

**SetRegistry** アクションモジュールは入力のリストを受け入れ、指定したレジストリキーの値を設定できます。レジストリキーが存在しない場合、定義されたパスに作成されます。この機能は Windows のみに適用されます。


**Input**  

| キー名 | 説明 | タイプ | 必須 | 
| --- | --- | --- | --- | 
| path | レジストリキーのパス。 | String | はい | 
| name | レジストリキーの名前。 | String | はい | 
| value | レジストリキーの値。 | 文字列/数値/配列 | はい | 
| type | レジストリキーの値の型。 | String | はい | 

**サポートされているパスプレフィックス**
+ `HKEY_CLASSES_ROOT / HKCR:`
+ `HKEY_USERS / HKU:`
+ `HKEY_LOCAL_MACHINE / HKLM:`
+ `HKEY_CURRENT_CONFIG / HKCC:`
+ `HKEY_CURRENT_USER / HKCU:`

**サポートされている  型**
+ `BINARY`
+ `DWORD`
+ `QWORD`
+ `SZ`
+ `EXPAND_SZ`
+ `MULTI_SZ`

**入力例:レジストリキー値の設定**

```
  - name: SetRegistryKeyValues
    action: SetRegistry
    maxAttempts: 3
    inputs:
      - path: HKLM:\SOFTWARE\MySoftWare
        name: MyName
        value: FirstVersionSoftware
        type: SZ
      - path: HKEY_CURRENT_USER\Software\Test
        name: Version
        value: 1.1
        type: DWORD
```

**出力**

なし。

### UpdateOS (Linux、Windows)
<a name="action-modules-updateos"></a>

**UpdateOS** アクションモジュールは、Windows と Linux のアップデートをインストールするためのサポートを追加します。使用可能なすべてのアップデートがデフォルトでインストールされます。あるいは、インストールするアクションモジュール用に 1 つ以上の特定のアップデートのリストを設定することもできます。インストールから除外するアップデートを指定することもできます。

「含める」リストと「除外」リストの両方を指定した場合、生成されるアップデートのリストには、「含む」リストにリストされているもののうち、「除外」リストには含まれていないものだけが含まれる可能性があります。

**注記**  
**UpdateOS** は Amazon Linux 2023 (AL2023) をサポートしていません。ベース AMI をすべてのリリースに付属する新しいバージョンに更新することをお勧めします。他の方法については、Amazon Linux 2023 User Guide の [Control updates received from major and minor releases](https://docs.aws.amazon.com/linux/al2023/ug/deterministic-upgrades.html#controlling-release-updates) を参照してください。
+ **Windows**。アップデートは、ターゲットマシンに設定されているアップデートソースからインストールされます。
+ **Linux**。アプリケーションは Linux プラットフォームでサポートされているパッケージマネージャーを確認し、`yum` または `apt-get` パッケージマネージャーを使用します。どちらもサポートされていない場合はエラーが返ります。**UpdateOS** アクションモジュールを実行するための`sudo`権限を持っている必要があります。`sudo` 権限がない場合は、`error.Input` が返されます。


**Input**  

| キー名 | 説明 | タイプ | 必須 | 
| --- | --- | --- | --- | 
| include |  Windows の場合、以下のように指定できる： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-action-modules.html) Linux では、インストールするアップデートのリストに含めるパッケージを 1 つ以上指定できます。  | 文字列リスト | いいえ | 
| exclude |  Windows の場合、以下のように指定できる： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/toe-action-modules.html) Linux の場合、インストールするアップデートのリストから除外するパッケージを 1 つ以上指定できます。  | 文字列リスト | いいえ | 

**入力例: Linux アップデートのインストールのサポートを追加**

```
  - name: UpdateMyLinux
    action: UpdateOS
    onFailure: Abort
    maxAttempts: 3
    inputs:
      exclude:
        - ec2-hibinit-agent
```

**入力例: Windows 更新プログラムのインストールサポートの追加**

```
  - name: UpdateWindowsOperatingSystem
    action: UpdateOS
    onFailure: Abort
    maxAttempts: 3
    inputs:
      include:
        - KB1234567
        - '*Security*'
```

**出力**

なし。

# AWSTOE run コマンドの入力を設定する
<a name="toe-run-config-input"></a>

コマンドのコマンドライン入力を AWSTOE **run**効率化するには、コマンドパラメータとオプションの設定を`.json`ファイル拡張子付きの JSON 形式の入力設定ファイルに含めることができます。 AWSTOE は、次のいずれかの場所からファイルを読み取ることができます。
+ ローカルファイルパス (*./config.json*)。
+ S3 バケット (*s3://<bucket-path>/<bucket-name>/config.json*)。

**run** コマンドを入力すると、**--config** パラメータを使用して入力設定ファイルを指定できます。例:

```
awstoe run --config <file-path>/config.json
```

**入力設定ファイル**  
入力設定 JSON ファイルには、**run** コマンドパラメータとオプションで直接指定できるすべての設定のキーと値のペアが含まれています。入力設定ファイルと **run** コマンドの両方の設定をパラメータまたはオプションとして指定する場合、次の優先順位が適用されます。

**優先順位のルール**

1. パラメータまたはオプション AWS CLIを介して の**run**コマンドに直接提供される設定は、同じ設定の入力設定ファイルで定義されているすべての値を上書きします。

1. 入力設定ファイル内の設定は、コンポーネントのデフォルト値を上書きします。

1. コンポーネントドキュメントに他の設定が渡されない場合、デフォルト値があれば、そのデフォルト値を適用できます。

このルールには、ドキュメントとパラメータという 2 つの例外があります。これらの設定は、入力設定とコマンドパラメータでは動作が異なります。入力設定ファイルを使用する場合は、これらのパラメータを **run** コマンドに直接指定しないでください。そうするとエラーが発生する。

**コンポーネント設定**  
入力設定ファイルには次の設定が含まれます。ファイルを効率化するために、不要なオプション設定は省略できます。特に明記されていない限り、すべての設定はオプションです。
+ **CWIgnoreFailures** (ブール値) — CloudWatch Logs からのロギング障害を無視します。
+ **CWLogGroup** (文字列) — CloudWatch Logs `LogGroup` 名。
+ **cwLogRegion** (文字列) – CloudWatch Logs に適用される AWS リージョン。
+ **cwLogStream** (文字列) – CloudWatch Logs `LogStream`の名前。`console.log`ファイルをストリーミングする AWSTOE 場所を指定します。
+ **documents3BuckeTowner** (文字列) — S3 URI ベースのドキュメントのバケット所有者のアカウント ID。
+ **documents** (オブジェクトの配列、必須) – AWSTOE **run** コマンドが実行されている YAML コンポーネントドキュメントを表す JSON オブジェクトの配列。少なくとも 1 つのコンポーネント文書を指定しなければならない。

  各オブジェクトは以下のフィールドで構成される：
  + **パス** (文字列、必須) — YAML コンポーネントドキュメントのファイルの場所。これは、次のいずれかである必要があります。
    + ローカルファイルパス (*./component-doc-example.yaml*)。
    + S3 URI (`s3://bucket/key`)。
    + Image Builder のコンポーネントビルドバージョン ARN (arn: aws: imagebuilder: us-west-*2:123456789012*:component/ *my-example-component*/2021.12.02/1)。
  + **パラメータ** (オブジェクトの配列) — キーと値のペアオブジェクトの配列で、それぞれがコンポーネントドキュメントを実行するときに **run** コマンドが渡すコンポーネント固有のパラメータを表します。コンポーネントではパラメータはオプションです。コンポーネントドキュメントにはパラメータが定義される場合とされない場合があります。

    各オブジェクトは以下のフィールドで構成される：
    + **名前** (文字列、必須) — コンポーネントパラメータの名前。
    + **値** (文字列、必須) — コンポーネントドキュメントに渡される名前付きパラメータの値。

    コンポーネントパラメータの詳細については、[カスタムコンポーネントドキュメントでの変数の使用](toe-user-defined-variables.md) ページの **[パラメータ]** セクションを参照してください。
+ **ExecutOnID** (文字列) — 現在の **run** コマンドの実行に適用される固有の ID。この ID は出力ファイル名とログファイル名に含まれ、これらのファイルを一意に識別し、現在のコマンド実行にリンクします。この設定を省略すると、 は GUID AWSTOE を生成します。
+ **logDirectory** (文字列) – がこのコマンド実行のすべてのログファイル AWSTOE を保存する送信先ディレクトリ。デフォルトでは、このディレクトリは親ディレクトリ `TOE_<DATETIME>_<EXECUTIONID>` の中にあります。ログディレクトリを指定しない場合、 は現在の作業ディレクトリ () AWSTOE を使用します`.`。
+ **logS3BucketName** (文字列) – コンポーネントログが Amazon S3 に保存されている場合 (推奨）、 はコンポーネントアプリケーションログをこのパラメータで という名前の S3 バケット AWSTOE にアップロードします。
+ **logS3BucketOwner** (文字列) – コンポーネントログが Amazon S3 に保存されている場合 (推奨）、これは がログファイルを AWSTOE 書き込むバケットの所有者アカウント ID です。
+ **Logs3KeyPrefix** (文字列) — コンポーネントログが Amazon S3 に保存されている場合 (推奨)、これはバケット内のログの場所の S3 オブジェクトキープレフィックスです。
+ **パラメータ** (オブジェクトの配列) — 現在の **run** コマンド実行に含まれるすべてのコンポーネントにグローバルに適用されるパラメータを表すキー値のペアオブジェクトの配列。
  + **name**（文字列、必須） - グローバルパラメータの名前。
  + **値** (文字列、必須) — すべてのコンポーネントドキュメントに渡される名前付きパラメータの値。
+ **フェーズ** (文字列) — YAML コンポーネントドキュメントから実行するフェーズを指定するカンマ区切りのリスト。コンポーネントドキュメントに追加のフェーズが含まれている場合、そのフェーズは実行されません。
+ **StateDirectory** (文字列) — ステートトラッキングファイルが保存されているファイルパス。
+ **トレース** (ブール値) — コンソールへの冗長ロギングを有効にする。

**例**  
次の例は、2 つのコンポーネント文書に対して `build` と `test` のフェーズを実行する入力設定ファイルを示している: `sampledoc.yaml`と`conversation-intro.yaml`です。各コンポーネントドキュメントには、それ自体にのみ適用されるパラメータがあり、どちらも 1 つの共有パラメータを使用します。この `project` パラメータは両方のコンポーネントドキュメントに適用されます。

```
{
   "documents": [
     {
       "path": "<file path>/awstoe/sampledoc.yaml>",
       "parameters": [
         {
           "name": "dayofweek",
           "value": "Monday"
         }
       ]
     },
     {
       "path": "<file path>/awstoe/conversation-intro.yaml>",
       "parameters": [
         {
           "name": "greeting",
           "value": "Hello, HAL."
         }
       ]
     }
   ],
   "phases": "build,test",
   "parameters": [
     {
       "name": "project",
       "value": "examples"
     }
   ],
   "cwLogGroup": "<log_group_name>",
   "cwLogStream": "<log_stream_name>",
   "documentS3BucketOwner": "<owner_aws_account_number>",
   "executionId": "<id_number>",
   "logDirectory": "<local_directory_path>",
   "logS3BucketName": "<bucket_name_for_log_files>",
   "logS3KeyPrefix": "<key_prefix_for_log_files>",
   "logS3BucketOwner": "<owner_aws_account_number>"
 }
```