

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

# CloudFormation フックの概念
<a name="hooks-concepts"></a>

 CloudFormation フックの理解と使用には、以下の用語と概念が不可欠です。

## フック
<a name="hook-terms-hook"></a>

フックには、CloudFormation がスタックまたは特定のリソースを作成、更新、または削除する直前に呼び出されるコードが含まれています。また、変更セットの作成オペレーション中に呼び出すこともできます。フックは、CloudFormation がプロビジョニングしようとしているテンプレート、リソース、または変更セットを検査できます。さらに、[Cloud Control API](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/what-is-cloudcontrolapi.html) が特定のリソースを作成、更新、または削除する直前にフックを呼び出すことができます。

Hook ロジックで定義されている組織ガイドラインに準拠していない設定が Hook によって識別された場合は、`WARN`ユーザーまたは のいずれかを選択して`FAIL`、CloudFormation がリソースをプロビジョニングできないようにすることができます。

フックには次の特性があります。
+ **プロアクティブ検証** – 非準拠のリソースを作成、更新、または削除する前に特定することで、リスク、運用オーバーヘッド、コストを削減します。
+ **自動適用** – で適用 AWS アカウント を行い、非準拠のリソースが CloudFormation によってプロビジョニングされないようにします。

## 失敗モード
<a name="hook-terms-failure-mode"></a>

フックロジックは成功または失敗を返す可能性があります。成功レスポンスにより、オペレーションを続行できます。非準拠のリソースに障害が発生すると、以下が発生する可能性があります。
+ `FAIL` – プロビジョニングオペレーションを停止します。
+ `WARN` – プロビジョニングが警告メッセージで続行できるようにします。

モードでフックを作成する`WARN`ことは、スタックオペレーションに影響を与えずにフックの動作をモニタリングする効果的な方法です。まず、フックを `WARN` モードでアクティブ化して、影響を受けるオペレーションを理解します。潜在的な影響を評価したら、フックを `FAIL` モードに切り替えて、非準拠のオペレーションの防止を開始できます。

## フックターゲット
<a name="hook-terms-hook-target"></a>

フックターゲットは、フックが評価するオペレーションを指定します。これらは、以下に対するオペレーションです。
+ CloudFormation でサポートされているリソース (`RESOURCE`) 
+ スタックテンプレート (`STACK`)
+ 変更セット (`CHANGE_SET`)
+ [Cloud Control API](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/what-is-cloudcontrolapi.html) でサポートされているリソース (`CLOUD_CONTROL`) 

フックが評価する最も広範なオペレーションを指定する 1 つ以上のターゲットを定義します。たとえば、すべての AWS リソース`RESOURCE`をターゲットとし、すべてのスタックテンプレート`STACK`をターゲットとするフックターゲットを作成できます。

## ターゲットアクション
<a name="hook-terms-target-action"></a>

ターゲットアクションは`CREATE`、フックを呼び出す特定のアクション (、`UPDATE`、または `DELETE`) を定義します。`RESOURCE`、、`STACK`および `CLOUD_CONTROL`ターゲットの場合、すべてのターゲットアクションが適用されます。`CHANGE_SET` ターゲットの場合、 `CREATE`アクションのみが適用されます。

## ‏注釈
<a name="hook-annotations"></a>

[GetHookResult](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_GetHookResult.html) レスポンスは、評価されたリソースごとに詳細なコンプライアンスチェック結果と修復ガイダンスを提供する*注釈*を返すことができます。API の注釈構造の詳細については、*AWS CloudFormation 「 API* [リファレンス」の「注釈](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Annotation.html)」を参照してください。これらの検証結果を表示する手順については、「」を参照してください[CloudFormation フックの呼び出し結果を表示する](hooks-view-invocations.md)。

フックの設定時に独自の KMS キーを指定することで、機密コンプライアンス情報に必要な注釈を暗号化できます。詳細については、「[フック設定スキーマ構文リファレンス](hook-configuration-schema.md)」を参照してください。フックに KMS キーを指定するときに必要なキーポリシーの設定については、「」を参照してください[AWS KMS キーポリシーと CloudFormation フック結果を保管中に暗号化するためのアクセス許可](hooks-kms-key-policy.md)。

**重要**  
カスタマーマネージドキーを指定する`KmsKeyId`オプションは現在、 を使用してフック AWS CLI を設定する場合にのみ使用できます。

## フックハンドラー
<a name="hook-terms-hook-handler"></a>

カスタムフックの場合、これは評価を処理するコードです。これは、ターゲット呼び出しポイントと、フックが実行される正確なポイントを示すターゲットアクションに関連付けられます。これらの特定のポイントのロジックをホストするハンドラーを記述します。たとえば、`PRE`ターゲットアクションを持つ`CREATE`ターゲット呼び出しポイントは、`preCreate`フックハンドラーを作成します。フックハンドラー内のコードは、一致するターゲット呼び出しポイントとサービスが関連するターゲットアクションを実行するときに実行されます。

*有効な値*: (`preCreate` \$1 `preUpdate` \$1 `preDelete`)

**重要**  
ステータスが になるスタックオペレーションでは、フックは呼び出`UpdateCleanup`されません。たとえば、次の 2 つのシナリオでは、フックの`preDelete`ハンドラーは呼び出されません。  
スタックは、テンプレートから 1 つのリソースを削除した後に更新されます。
更新タイプの[置換](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)のリソースが削除されます。

## タイムアウトと再試行の制限
<a name="hook-timeout-and-retry-limits"></a>

フックには呼び出しごとに 30 秒のタイムアウト制限があり、再試行回数は 3 回に制限されています。呼び出しがタイムアウトを超えると、フック実行がタイムアウトしたことを示すエラーメッセージが返されます。3 回目の再試行後、CloudFormation はフックの実行を失敗としてマークします。