Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

Terraform を使用して AWS WAF ソリューションのセキュリティオートメーションをデプロイする

フォーカスモード
Terraform を使用して AWS WAF ソリューションのセキュリティオートメーションをデプロイする - AWS 規範ガイダンス

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

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

作成者: Dr. Rahul Sharad Gaikwad (AWS)、Tamilselvan P (AWS)

概要

AWS WAF は、ウェブアクセスコントロールリスト (ACL) で定義してデプロイするカスタマイズ可能なルールを使用して、一般的な悪用からアプリケーションを保護するのに役立つウェブACLs。 AWS WAF ルールの設定は、特に専用のセキュリティチームを持たない組織では難しい場合があります。このプロセスを簡素化するために、Amazon Web Services (AWS) は ソリューションのセキュリティオートメーション AWS WAFを提供しています。これにより、ウェブベースの攻撃をフィルタリングする一連の AWS WAF ルールを含む単一のウェブ ACL が自動的にデプロイされます。Terraform のデプロイ時に、どの保護機能を含めるかを指定できます。このソリューションをデプロイすると、 は既存の Amazon CloudFront ディストリビューションまたは Application Load Balancer へのウェブリクエスト AWS WAF を検査し、ルールに一致しないリクエストをブロックします。

AWS WAF ソリューションのセキュリティオートメーションは、「 Security Automations for AWS WAF Implementation Guide」の指示 AWS CloudFormation に従って を使用してデプロイできます。このパターンは、HashiCorp Terraform を推奨 Infrastructure as Code (IaC) ツールとして使用してクラウドインフラストラクチャをプロビジョニングおよび管理する組織にとって、代替のデプロイオプションとなります。このソリューションをデプロイすると、Terraform は自動的にクラウドに変更を適用し、 AWS WAF 設定と保護機能をデプロイして設定します。

前提条件と制限

前提条件

  • アクティブ AWS アカウント。

  • AWS Command Line Interface (AWS CLI) バージョン 2.4.25 以降、必要なアクセス許可でインストールおよび設定されている。詳細については、「開始方法 (AWS CLI ドキュメント)」を参照してください。

  • Terraform バージョン 1.1.9 以降がインストールされ、設定されています。詳細については、「Terraform のインストール (Terraform ドキュメント)」を参照してください。

アーキテクチャ

ターゲット アーキテクチャ

このパターンは、 AWS WAF ソリューションのセキュリティオートメーションをデプロイします。ターゲットアーキテクチャの詳細については、「 Security Automations for AWS WAF Implementation Guide」の「アーキテクチャの概要」を参照してください。このデプロイの AWS Lambda オートメーション、アプリケーションログパーサー、 AWS WAF ログパーサー、IP リストパーサー、アクセスハンドラーの詳細については、「 Security Automations for AWS WAF Implementation Guide」の「コンポーネントの詳細」を参照してください。

Terraform デプロイ

terraform apply を実行すると、Terraform は次のことを行います。

  1. Terraform は、testing.tfvars ファイルからの入力に基づいて AWS Identity and Access Management (IAM) ロールと Lambda 関数を作成します。

  2. Terraform は、testing.tfvars ファイルからの入力に基づいて AWS WAF ACL ルールと IP セットを作成します。

  3. Terraform は、testing.tfvars ファイルからの入力に基づいて、Amazon Simple Storage Service (Amazon S3) バケット、Amazon EventBridge ルール、 AWS Glue データベーステーブル、Amazon Athena ワークグループを作成します。

  4. Terraform は AWS CloudFormation スタックをデプロイしてカスタムリソースをプロビジョニングします。

  5. Terraform は、test.tfvars ファイルからの指定された入力に基づいて Amazon API Gateway リソースを作成します。

自動化とスケール

このパターンを使用して、複数の の AWS WAF ルールを作成し AWS アカウント AWS リージョン 、 AWS WAF ソリューションのセキュリティオートメーションを AWS クラウド 環境全体にデプロイできます。

ツール

AWS のサービス

  • AWS Command Line Interface (AWS CLI) は、コマンドラインシェルのコマンド AWS のサービス を通じて を操作するのに役立つオープンソースツールです。

  • AWS WAF は、保護されたウェブアプリケーションリソースに転送される HTTP および HTTPS リクエストをモニタリングするのに役立つウェブアプリケーションファイアウォールです。

その他のサービス

  • Git はオープンソースの分散型バージョン管理システムです。

  • HashiCorp Terraform は、コードを使用してクラウドインフラストラクチャとリソースをプロビジョニングおよび管理するのに役立つコマンドラインインターフェイスアプリケーションです。

コードリポジトリ

このパターンのコードは、GitHub AWS WAF Automation Using Terraform リポジトリで入手できます。

ベストプラクティス

  • 静的ファイルを個別の Amazon S3 バケットに配置します。

  • 変数をハードコーディングすることは避けてください。

  • カスタムスクリプトの使用を制限してください。

  • 命名規則を採用してください。

エピック

タスク説明必要なスキル

Git をインストールする。

Getting started」(Git Web サイト) の指示に従って、ローカルワークステーションに Git をインストールします。

DevOps エンジニア

リポジトリをクローン作成します。

ローカルワークステーションで、次のコマンドを入力してコードリポジトリのクローンを作成します。

git clone https://github.com/aws-samples/aws-waf-automation-terraform-samples.git
DevOps エンジニア

変数を更新してください。

  1. 次のコマンドを入力して、クローンされたディレクトリに移動します。

    cd terraform-aws-waf-automation
  2. 任意のテキストエディタで testing.tfvars ファイルを開きます。

  3. testing.tfvars ファイル内の変数の値を更新します。

  4. ファイルを保存して閉じます。

DevOps エンジニア

ローカルワークステーションをセットアップする

タスク説明必要なスキル

Git をインストールする。

Getting started」(Git Web サイト) の指示に従って、ローカルワークステーションに Git をインストールします。

DevOps エンジニア

リポジトリをクローン作成します。

ローカルワークステーションで、次のコマンドを入力してコードリポジトリのクローンを作成します。

git clone https://github.com/aws-samples/aws-waf-automation-terraform-samples.git
DevOps エンジニア

変数を更新してください。

  1. 次のコマンドを入力して、クローンされたディレクトリに移動します。

    cd terraform-aws-waf-automation
  2. 任意のテキストエディタで testing.tfvars ファイルを開きます。

  3. testing.tfvars ファイル内の変数の値を更新します。

  4. ファイルを保存して閉じます。

DevOps エンジニア
タスク説明必要なスキル

Terraform の設定を初期化します。

次のコマンドを入力して、Terraform 設定ファイルを含む作業ディレクトリを初期化します。

terraform init
DevOps エンジニア

Terraform プランをプレビューしてください。

次のコマンドを入力します。Terraform は設定ファイルを評価して、宣言されたリソースのターゲット状態を判断します。次に、ターゲットの状態を現在の状態と比較し、計画を作成します。

terraform plan -var-file="testing.tfvars"
DevOps エンジニア

プランを検証してください。

プランを確認し、ターゲットに必要なアーキテクチャが設定されていることを確認します AWS アカウント。

DevOps エンジニア

ソリューションをデプロイします。

  1. プランを適用するには、次のコマンドを入力します。

    terraform apply -var-file="testing.tfvars"
  2. yes を入力して確定します。Terraform は、構成ファイルに宣言されている目標状態を達成するために、インフラストラクチャを作成、更新、または破棄します。シーケンスの詳細については、このパターンの「アーキテクチャ」セクションにある「Terraform デプロイ」を参照してください。

DevOps エンジニア

Terraform を使用してターゲットアーキテクチャをプロビジョニングします。

タスク説明必要なスキル

Terraform の設定を初期化します。

次のコマンドを入力して、Terraform 設定ファイルを含む作業ディレクトリを初期化します。

terraform init
DevOps エンジニア

Terraform プランをプレビューしてください。

次のコマンドを入力します。Terraform は設定ファイルを評価して、宣言されたリソースのターゲット状態を判断します。次に、ターゲットの状態を現在の状態と比較し、計画を作成します。

terraform plan -var-file="testing.tfvars"
DevOps エンジニア

プランを検証してください。

プランを確認し、ターゲットに必要なアーキテクチャが設定されていることを確認します AWS アカウント。

DevOps エンジニア

ソリューションをデプロイします。

  1. プランを適用するには、次のコマンドを入力します。

    terraform apply -var-file="testing.tfvars"
  2. yes を入力して確定します。Terraform は、構成ファイルに宣言されている目標状態を達成するために、インフラストラクチャを作成、更新、または破棄します。シーケンスの詳細については、このパターンの「アーキテクチャ」セクションにある「Terraform デプロイ」を参照してください。

DevOps エンジニア
タスク説明必要なスキル

変更を確認します。

  1. Terraform コンソールで、出力が期待どおりの結果であることを確認します。

  2. AWS Management Consoleにサインインします。

  3. Terraform コンソールの出力が に正常にデプロイされたことを確認します AWS アカウント。

DevOps エンジニア

(オプション) インフラストラクチャをクリーンアップします。

このソリューションによって行われたすべてのリソースと設定の変更を削除するには、次の操作を行います。

  1. Terraform コンソールで、次のコマンドを入力します。

    terraform destroy -var-file="testing.tfvars”
  2. yes を入力して確定します。

DevOps エンジニア

検証とクリーンアップ

タスク説明必要なスキル

変更を確認します。

  1. Terraform コンソールで、出力が期待どおりの結果であることを確認します。

  2. AWS Management Consoleにサインインします。

  3. Terraform コンソールの出力が に正常にデプロイされたことを確認します AWS アカウント。

DevOps エンジニア

(オプション) インフラストラクチャをクリーンアップします。

このソリューションによって行われたすべてのリソースと設定の変更を削除するには、次の操作を行います。

  1. Terraform コンソールで、次のコマンドを入力します。

    terraform destroy -var-file="testing.tfvars”
  2. yes を入力して確定します。

DevOps エンジニア

トラブルシューティング

問題ソリューション

WAFV2 IPSet: WAFOptimisticLockException エラー

terraform destroy コマンドの実行時にこのエラーが発生した場合は、IP セットを手動で削除する必要があります。手順については、「IP セットの削除 (AWS WAF ドキュメント)」を参照してください。

関連リソース

AWS リファレンス

Terraform のリファレンス

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.