

# ソリューションを更新する
<a name="update-the-solution"></a>

このソリューションを既にデプロイ済みの場合は、この手順に従ってソリューションの CloudFormation スタックを更新し、ソリューションのフレームワークの最新バージョンを取得します。スタックを更新する前に、「[更新に関する考慮事項](#update-considerations)」を注意深くお読みください。

1. [AWS CloudFormation コンソール](https://console.aws.amazon.com/cloudformation/)にサインインします。

1. 左側のナビゲーションメニューで **[スタック]** をクリックします。

1. 既存の `aws-waf-security-automations` CloudFormation スタックを選択します。

1. **[更新]** を選択します。

1. **[既存テンプレートを置き換える]** を選択します。

1. **[テンプレートを指定]** で、以下を実行します。

   1. **[Amazon S3 URL]** を選択します。

   1. `aws-waf-security-automations.template` [AWS CloudFormation](aws-cloudformation-templates.md) のリンクをコピーします。

   1. **[Amazon S3 URL]** ボックスにリンクを貼り付けます。

   1. テンプレートの正しい URL が **[Amazon S3 URL]** テキストボックスに表示されていることを確認します。

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

   1. **[次へ]** をもう一度選択します。

1. **[パラメータ]** で、テンプレートのパラメータを確認し、必要に応じて変更します。パラメータの詳細については、「[ステップ 1. スタックを起動する](step-1.-launch-the-stack.md)」を参照してください。

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

1. **[スタックオプションの設定]** ページで、**[次へ]** を選択します。

1. **[レビュー]** ページで、設定を確認して確定します。

1. テンプレートによって IAM のリソースが作成されることを承認するチェックボックスをオンにします。

1. **[変更セットの表示]** を選択して、変更を確認します。

1. **[スタックの更新]** を選択してスタックをデプロイします。

AWS CloudFormation コンソールの **[ステータス]** 列でスタックのステータスを確認できます。約 15 分で UPDATE\$1COMPLETE のステータスが表示されます。

## 更新に関する考慮事項
<a name="update-considerations"></a>

次のセクションでは、このソリューションを実装するための制約と考慮事項について説明します。

### リソースタイプの更新
<a name="resource-type-update"></a>

スタックの作成後に **Endpoint** パラメータを更新するには、新しいスタックをデプロイする必要があります。スタックの更新時に **Endpoint** パラメータを変更しないでください。

### WAFV2 の更新
<a name="wafv2-upgrade"></a>

バージョン 3.0 以降、このソリューションでは AWS WAFV2 をサポートしています。すべての [AWS WAF Classic](https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html) API コールは、[AWS WAFV2 API コール](https://docs.aws.amazon.com/waf/latest/APIReference/Welcome.html)に置き換えられました。Node.js への依存関係が削除され、最新の Python ランタイムが使用されています。このソリューションを最新の機能と改善とともに引き続き使用するには、バージョン 3.0 以降を新しいスタックとしてデプロイする必要があります。

### スタック更新時のカスタマイズ
<a name="customizations-at-stack-update"></a>

既成のソリューションでは、AWS CloudFormation スタックを介して、デフォルト設定の AWS WAF ルールセットを AWS アカウントにデプロイします。ソリューションによってデプロイされたルールにカスタマイズを適用することはお勧めしません。スタックの更新では、これらの変更を上書きします。カスタマイズされたルールが必要な場合は、このソリューションとは別に個別のルールを作成することをお勧めします。

### 不正なボットからの保護のアップグレード
<a name="badbot-upgrade"></a>

バージョン **4.1.0** では、**API Gateway** を使用する **Access Handler** Lambda は廃止され、`Log parser - Bad bot` の拡張ログ機能に置き換えられました。API Gateway 経由で直接リクエストを使用する代わりに、ソリューションがログストリームを再利用して不正なボットを検出するようになりました。

以前の実装:

1. アクセスハンドラーとして Lambda と API Gateway が必要。

1. リクエストの直接処理にハニーポットエンドポイントを使用。

1. ウェブサイトにハニーポットエンドポイントの埋め込みが必要。

新しい実装 (4.1.0 以降): 現在は**不正なボットからの保護**ログパーサー:

1. ログを介してハニーポットエンドポイントへのリクエストを検査。

1. **不正なボットからの保護**をアクティブ化したときにリクエストを処理。

1. WAF フィルター **BadBotRuleFilter** を使用して不正なボットリクエストを特定。

1. ログデータを分析して、定義したクォータを超える IP アドレスを特定。

1. AWS WAF IP セット条件を更新して、特定したアドレスをブロック。

この変更により、重複する機能を排除し、既存のログ処理機能を活用することで、アーキテクチャが簡素化されます。

### CDK のアップグレード
<a name="CDK-upgrade"></a>

バージョン v4.1.0 以降、このソリューションは CDK でサポートされています。v4.1.0 より前のバージョンから移行する場合。Cloudformation で新しいテンプレートと更新ソリューションを使用します。その後、cdk デプロイを使用してターミナル経由でソリューションの更新をローカルで開始できます (詳細については「README」を参照してください)。cdk デプロイを直接使用しようとすると、フロー収集のインデントが不十分というエラーが表示されることがあります。

ソリューションを更新するもう 1 つの方法は、ソリューションが提供するテンプレートを使用し、AWS コンソールの [Cloudformation] セクションに移動して [ソリューションの更新] をクリックし、そこに新しいテンプレートを貼り付けることです。

**注記**  
このソリューションのバージョン 3.0 または 3.1 からバージョン 3.2 以降にアップグレードする場合で、[許可または拒否された IP セット](modify-the-allowed-and-denied-ip-sets-optional.md)に IP アドレスを手動で挿入した場合、それらの IP アドレスが失われるリスクがあります。これを防ぐには、ソリューションをアップグレードする前に、許可または拒否された IP セット内の IP アドレスのコピーを作成します。アップグレードが完了したら、必要に応じて IP アドレスを IP セットに追加し直します。[get-ip-set](https://docs.aws.amazon.com/cli/latest/reference/wafv2/get-ip-set.html) および [update-ip-set](https://docs.aws.amazon.com/cli/latest/reference/wafv2/update-ip-set.html) CLI コマンドを参照してください。バージョン 3.2 以降をすでに使用している場合は、このステップを無視してください。