翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Terraform を使用して AWS WAF ソリューションのセキュリティオートメーションをデプロイする
作成者: Dr. Rahul Sharad Gaikwad (AWS)、Tamilselvan P (AWS)
概要
AWS WAF は、ウェブアクセスコントロールリスト (ACL) で定義してデプロイするカスタマイズ可能なルールを使用して、一般的な悪用からアプリケーションを保護するウェブアプリケーションファイアウォールです。AWS WAF ルールの設定は、特に専任のセキュリティチームを持たない組織にとっては難しい場合があります。このプロセスを簡素化するために、Amazon Web Services (AWS) は AWS WAF 向けセキュリティ自動化
AWS WAF 向けセキュリティオートメーションソリューションは、「Security Automations for AWS WAF Implementation Guide」の指示に従って AWS CloudFormation を使用してデプロイできます。このパターンは、HashiCorp Terraform を推奨 Infrastructure as Code (IaC) ツールとして使用してクラウドインフラストラクチャをプロビジョニングおよび管理する組織にとって、代替のデプロイオプションとなります。このソリューションをデプロイすると、Terraform は変更をクラウドに自動的に適用し、AWS WAF 設定と保護機能をデプロイして設定します。
前提条件と制限
前提条件
アクティブなAWS アカウント
インストールおよび必要な権限を設定済みの AWS コマンドラインインターフェイス (AWS CLI)。詳細については、「使用の開始 (AWS CLI ドキュメント)」を参照してください。
インストールおよび設定済みの Terraform。詳細については、「Terraform のインストール
(Terraform ドキュメント)」を参照してください。
製品バージョン
AWS CLI バージョン 2.4.25 以降
Terraform バージョン 1.1.9 以降
アーキテクチャ
ターゲットアーキテクチャ
このパターンは、AWS WAF ソリューションのセキュリティ自動化をデプロイします。ターゲットアーキテクチャの詳細については、「Security Automations for AWS WAF Implementation Guide」の「Architecture overview」を参照してください。このデプロイの AWS Lambda 自動化、アプリケーションログパーサー、AWS WAF ログパーサー、IP リストパーサー、アクセスハンドラーの詳細については、「Security Automations for AWS WAF Implementation Guide」のコンポーネントの詳細を参照してください。
Terraform デプロイ
terraform apply
を実行すると、Terraform は次のことを行います。
Terraform は、.esting.tfvars ファイルからの入力に基づいて IAM ロールとLambda 関数を作成します。
Terraform は、.esting.tfvars ファイルからの入力に基づいて AWS WAF ACL ルールと IP セットを作成します。
Terraform は、testing.tfvars ファイルからの入力に基づいて、Amazon Simple Storage Service (Amazon S3) バケット、Amazon EventBridge ルール、AWS Glue データベーステーブル、および Amazon Athena ワークグループを作成します。
テラフォームは AWS CloudFormation スタックをデプロイしてカスタムリソースをプロビジョニングします。
Terraform は、test.tfvars ファイルからの指定された入力に基づいて Amazon API Gateway リソースを作成します。
自動化とスケール
このパターンを使用して、複数の AWS アカウントと AWS リージョン用の AWS WAF ルールを作成し、AWS クラウド環境全体に AWS WAF ソリューションのセキュリティ自動化をデプロイできます。
ツール
AWS サービス
「AWS コマンドラインインターフェイス (AWS CLI)」は、オープンソースのツールであり、コマンドラインシェルのコマンドを使用して AWS サービスとやり取りすることができます。
AWS WAF は、保護されたウェブアプリケーションリソースに転送される HTTP と HTTPS リクエストをモニタリングできるウェブアプリケーションファイアウォールです。
その他のサービス
Git
はオープンソースの分散型バージョン管理システムです。 HashiCorp Terraform
は、コードを使用してクラウドインフラストラクチャとリソースをプロビジョニングおよび管理するのに役立つコマンドラインインターフェイスアプリケーションです。
コードリポジトリ
このパターンのコードは、GitHub 内の「Terraform を使用した AWS WAF オートメーション
ベストプラクティス
静的ファイルは別の S3 バケットに配置してください。
変数をハードコーディングすることは避けてください。
カスタムスクリプトの使用を制限してください。
命名規則を採用してください。
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
Git をインストールする。 | 「Getting started | DevOps エンジニア |
リポジトリをクローン作成します。 | ローカルワークステーションで次のコマンドを入力し、コードリポジトリをクローンします。repo URL を含むコマンド全体をコピーするには、このパターンの「追加情報」セクションを参照してください。
| DevOps エンジニア |
変数を更新してください。 |
| DevOps エンジニア |
タスク | 説明 | 必要なスキル |
---|---|---|
Terraform の設定を初期化します。 | 次のコマンドを入力し、Terraform 設定ファイルを含む作業ディレクトリを初期化します。
| DevOps エンジニア |
Terraform プランをプレビューしてください。 | 次のコマンドを入力します。Terraform は設定ファイルを評価して、宣言されたリソースのターゲット状態を判断します。次に、ターゲットの状態を現在の状態と比較し、プランを作成します。
| DevOps エンジニア |
プランを検証してください。 | プランを確認し、ターゲット AWS アカウントで必要なアーキテクチャが設定されていることを確認します。 | DevOps エンジニア |
ソリューションをデプロイします。 |
| DevOps エンジニア |
タスク | 説明 | 必要なスキル |
---|---|---|
変更を確認します。 |
| DevOps エンジニア |
(オプション) インフラストラクチャをクリーンアップします。 | このソリューションによって行われたすべてのリソースと設定の変更を削除するには、次の操作を行います。
| DevOps エンジニア |
トラブルシューティング
問題 | ソリューション |
---|---|
|
|
関連リソース
AWS リファレンス
Terraform のリファレンス
追加情報
以下のコマンドは、このパターンの GitHub リポジトリをクローンします。
git clone https://github.com/aws-samples/aws-waf-automation-terraform-samples.git