

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

# アカウントでガードフックをアクティブ化する
<a name="guard-hooks-activate-hooks"></a>

次のトピックでは、アカウントで Guard Hook をアクティブ化する方法を示します。これにより、アクティブ化されたアカウントとリージョンで使用できます。

**Topics**
+ [ガードフックをアクティブ化する (コンソール)](#guard-hooks-activate-hook-console)
+ [ガードフックをアクティブ化する (AWS CLI)](#guard-hooks-activate-hooks-cli)
+ [関連リソース](#related-resources-guard-hooks)

## ガードフックをアクティブ化する (コンソール)
<a name="guard-hooks-activate-hook-console"></a>

**アカウントで使用するガードフックをアクティブ化するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) で CloudFormation コンソールを開きます。

1. 画面上部のナビゲーションバーで、フックを作成する AWS リージョン を選択します。

1. 左側のナビゲーションペインで、**フック**を選択します。

1. **フック**ページで、**フックの作成**を選択し、**ガード付き**を選択します。

1. ガードルールをまだ作成*していない場合は*、ガードルールを作成して Amazon S3 に保存し、この手順に戻ります。開始するには、[ガードフックのリソースを評価するためのガードルールを記述する](guard-hooks-write-rules.md)「」のルール例を参照してください。

   ガードルールを既に作成して S3 に保存している場合は、次のステップに進みます。
**注記**  
S3 に保存されるオブジェクトには、、`.guard`、`.zip`または のいずれかのファイル拡張子が必要です`.tar.gz`。

1. **Guard Hook ソース****の場合、S3 に Guard ルールを保存します**。次の操作を行います。
   + **S3 URI** の場合は、ルールファイルへの S3 パスを指定するか、**S3 参照**ボタンを使用してダイアログボックスを開き、S3 オブジェクトを参照して選択します。
   + (オプション) **オブジェクトバージョン**では、S3 バケットでバージョニングが有効になっている場合、S3 オブジェクトの特定のバージョンを選択できます。

     ガードフックは、フックが呼び出されるたびに S3 からルールをダウンロードします。誤って変更または削除されないように、ガードフックを設定するときは バージョンを使用することをお勧めします。

1. (オプション) **Guard 出力レポートの S3 バケットには**、Guard 出力レポートを保存する S3 バケットを指定します。このレポートには、ガードルールの検証の結果が含まれています。

   出力レポートの送信先を設定するには、次のいずれかのオプションを選択します。
   + **「Guard ルールが保存されているのと同じバケットを使用する**」チェックボックスをオンにして、Guard ルールがあるのと同じバケットを使用します。
   + Guard 出力レポートを保存する別の S3 バケット名を選択します。

1. (オプション) **ガードルール入力パラメータ**を展開し、**S3 にガードルール入力パラメータを保存する** の下に次の情報を入力します。
   + **S3 URI** の場合は、パラメータファイルへの S3 パスを指定するか、**S3 参照**ボタンを使用してダイアログボックスを開き、S3 オブジェクトを参照して選択します。
   + (オプション) **オブジェクトバージョン**では、S3 バケットでバージョニングが有効になっている場合、特定のバージョンの S3 オブジェクトを選択できます。

1. [**次へ**] を選択します。

1. **フック名**で、次のいずれかのオプションを選択します。
   + の後に追加される短いわかりやすい名前を指定します`Private::Guard::`。たとえば、 と入力すると*`MyTestHook`*、完全なフック名は になります`Private::Guard::MyTestHook`。
   + 次の形式を使用して、完全なフック名 (エイリアスとも呼ばれます) を指定します。 `Provider::ServiceName::HookName`

1. **フックターゲット**で、評価対象を選択します。
   + **スタック** — ユーザーがスタックを作成、更新、または削除するときにスタックテンプレートを評価します。
   + **リソース** — ユーザーがスタックを更新するときに、個々のリソースの変更を評価します。
   + **変更セット** — ユーザーが変更セットを作成するときに、計画された更新を評価します。
   + **Cloud Control API** — [Cloud Control API](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/what-is-cloudcontrolapi.html) によって開始された作成、更新、または削除オペレーションを評価します。

1. **アクション** で、フックを呼び出すアクション (作成、更新、削除) を選択します。

1. **フックモードでは**、ルールが評価に失敗したときにフックがどのように応答するかを選択します。
   + **警告** — ユーザーに警告を発行しますが、アクションを続行できます。これは、重要でない検証や情報チェックに役立ちます。
   + **失敗** — アクションが続行されないようにします。これは、厳格なコンプライアンスまたはセキュリティポリシーを適用するのに役立ちます。

1. **実行ロール**で、フックが S3 から Guard ルールを取得するために引き受ける IAM ロールを選択し、オプションで詳細な Guard 出力レポートを書き戻します。CloudFormation が実行ロールを自動的に作成できるようにするか、作成したロールを指定できます。

1. [**次へ**] を選択します。

1. (オプション) **フックフィルター**の場合は、次の操作を行います。

   1. **リソースフィルター**で、フックを呼び出すことができるリソースタイプを指定します。これにより、フックは関連するリソースに対してのみ呼び出されます。

   1. **フィルタリング条件** で、スタック名とスタックロールフィルターを適用するロジックを選択します。
      + **すべてのスタック名とスタックロール** – フックは、指定されたすべてのフィルターが一致する場合にのみ呼び出されます。
      + **スタック名とスタックロール** – 指定されたフィルターの少なくとも 1 つが一致すると、フックが呼び出されます。
**注記**  
Cloud Control API オペレーションでは、すべての**スタック名**と**スタックロール**フィルターは無視されます。

   1. **スタック名**の場合、フック呼び出しに特定のスタックを含めるか除外します。
      + **含める** には、含めるスタック名を指定します。これは、ターゲットにする特定のスタックの小さなセットがある場合に使用します。このリストで指定されたスタックのみがフックを呼び出します。
      + **Exclude** には、除外するスタック名を指定します。これは、ほとんどのスタックでフックを呼び出すが、いくつかの特定のスタックを除外する場合に使用します。ここにリストされているスタックを除くすべてのスタックはフックを呼び出します。

   1. **スタックロール**の場合、関連付けられた IAM ロールに基づいてフック呼び出しに特定のスタックを含めるか除外します。
      + **Include** には、これらのロールに関連付けられたスタックをターゲットにする 1 つ以上の IAM ロール ARNs を指定します。これらのロールによって開始されたスタックオペレーションのみがフックを呼び出します。
      + **Exclude** には、除外するスタックの 1 つ以上の IAM ロール ARNs を指定します。フックは、指定されたロールによって開始されたスタックを除くすべてのスタックで呼び出されます。

1. [**次へ**] を選択します。

1. **確認とアクティブ化**ページで、選択内容を確認します。変更するには、関連セクションで [**編集**] をクリックします。

1. 続行する準備ができたら、**Activate Hook** を選択します。

## ガードフックをアクティブ化する (AWS CLI)
<a name="guard-hooks-activate-hooks-cli"></a>

続行する前に、このフックで使用する Guard ルールと実行ロールが作成されていることを確認します。詳細については、「[ガードフックのリソースを評価するためのガードルールを記述する](guard-hooks-write-rules.md)」および「[ガードフックの実行ロールを作成する](guard-hooks-prepare-to-create-hook.md#guard-hooks-create-execution-role)」を参照してください。

**アカウントで使用するガードフックをアクティブ化するには (AWS CLI)**

1. フックのアクティブ化を開始するには、次の[https://docs.aws.amazon.com/cli/latest/reference/cloudformation/activate-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/activate-type.html)コマンドを使用して、プレースホルダーを特定の値に置き換えます。このコマンドは、フックが から指定された実行ロールを使用することを許可します AWS アカウント。

   ```
   aws cloudformation activate-type --type HOOK \
     --type-name AWS::Hooks::GuardHook \
     --publisher-id aws-hooks \
     --type-name-alias Private::Guard::MyTestHook \
     --execution-role-arn arn:aws:iam::123456789012:role/my-execution-role \
     --region us-west-2
   ```

1. フックのアクティブ化を完了するには、JSON 設定ファイルを使用してフックを設定する必要があります。

   **cat** コマンドを使用して、次の構造で JSON ファイルを作成します。詳細については、「[フック設定スキーマ構文リファレンス](hook-configuration-schema.md)」を参照してください。

   ```
   $ cat > config.json
   {
     "CloudFormationConfiguration": {
       "HookConfiguration": {
         "HookInvocationStatus": "ENABLED",
         "TargetOperations": [
           "STACK",
           "RESOURCE",
           "CHANGE_SET"
         ],
         "FailureMode": "WARN",
         "Properties": {
           "ruleLocation": "s3://amzn-s3-demo-bucket/MyGuardRules.guard",
           "logBucket": "amzn-s3-demo-logging-bucket"
         },
         "TargetFilters": {
           "Actions": [
             "CREATE",
             "UPDATE",
             "DELETE"
           ]
         }
       }
     }
   }
   ```
   + `HookInvocationStatus`: フックを有効にする`ENABLED`には、 に設定します。
   + `TargetOperations`: フックが評価するオペレーションを指定します。
   + `FailureMode`: `FAIL` または `WARN` に設定します。
   + `ruleLocation`: を、ルールが保存されている S3 URI に置き換えます。S3 に保存されるオブジェクトには、、`.guard`、 `.zip`のいずれかのファイル拡張子が必要です`.tar.gz`。
   + `logBucket`: (オプション) Guard JSON レポートの S3 バケットの名前を指定します。
   + `TargetFilters`: フックを呼び出すアクションのタイプを指定します。

1. 次の[https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-type-configuration.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-type-configuration.html)コマンドと作成した JSON ファイルを使用して、設定を適用します。プレースホルダーを特定の値に置き換えます。

   ```
   aws cloudformation set-type-configuration \
     --configuration file://config.json \
     --type-arn "arn:aws:cloudformation:us-west-2:123456789012:type/hook/MyTestHook" \
     --region us-west-2
   ```

## 関連リソース
<a name="related-resources-guard-hooks"></a>

CloudFormation スタックテンプレートで Guard Hook を宣言する方法を理解するために使用できるテンプレートの例を示します。詳細については、AWS CloudFormation  ユーザーガイドの [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-cloudformation-guardhook.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-cloudformation-guardhook.html)を参照してください。