AWS WAF ウェブ ACLs の管理 - AWS App Runner

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

AWS WAF ウェブ ACLs の管理

次のいずれかの方法を使用して、App Runner サービスの AWS WAF ウェブ ACLs を管理します。

App Runner コンソール

App Runner コンソールでサービスを作成したり、既存のサービスを更新したりすると、 AWS WAF ウェブ ACL の関連付けまたは関連付け解除ができます。 App Runner サービスの設定

注記
  • App Runner サービスは、1 つのウェブ ACL にのみ関連付けることができます。ただし、他の AWS リソースに加えて、1 つのウェブ ACL を複数の App Runner サービスに関連付けることができます。

  • ウェブ ACL を関連付ける前に、 の IAM アクセス許可を必ず更新してください AWS WAF。詳細については、「 アクセス許可」を参照してください。

AWS WAF ウェブ ACL の関連付け

重要

WAF ウェブ ACLsルールは、IP ベースのルール に準拠していません。これは、現在、WAF に関連付けられた App Runner プライベートサービスへのリクエストソース IP データの転送をサポートしていないためです。App Runner アプリケーションにソース IP/CIDR 受信トラフィックコントロールルールが必要な場合は、WAF ウェブ ACLs の代わりにプライベートエンドポイントのセキュリティグループルールを使用する必要があります。

AWS WAF ウェブ ACL を関連付けるには
  1. App Runner コンソール を開き、リージョンリストで を選択します AWS リージョン。

  2. サービスを作成または更新するかどうかに基づいて、次のいずれかのステップを実行します。

    • 新しいサービスを作成する場合は、App Runner サービスの作成 を選択し、サービスの設定 に移動します。

    • 既存のサービスを更新する場合は、設定 タブを選択し、サービスの設定 編集 を選択します。

  3. セキュリティ のウェブアプリケーションファイアウォールに移動します。

  4. トグルを有効にするボタンを選択すると、オプションが表示されます。

    App Runner コンソールのレイアウト。Web Application Firewall のオプションが表示されます。
  5. 次のいずれかのステップを実行します。

    • 既存のウェブ ACL を関連付けるには: App Runner サービスに関連付けるウェブ ACL の選択 テーブルから必要なウェブ ACL を選択します。

    • 新しいウェブ ACL を作成するには: AWS WAF コンソールを使用してウェブ ACL を作成 を選択して新しいウェブ ACL を作成します。詳細については、「 AWS WAF デベロッパーガイド」の「ウェブ ACL の作成」を参照してください。

      1. 更新ボタンを選択すると、新しく作成されたウェブ ACL がウェブ ACL の選択テーブルに表示されます。

      2. 必要なウェブ ACL を選択します。

  6. 新しいサービスを作成する場合は次へ、既存のサービスを更新する場合は変更を保存するを選択します。選択したウェブ ACL は App Runner サービスに関連付けられています。

  7. ウェブ ACL の関連付けを確認するには、サービスの設定タブを選択し、サービスの設定 に移動します。セキュリティウェブアプリケーションファイアウォールまでスクロールして、サービスに関連付けられているウェブ ACL の詳細を表示します。

    注記

    ウェブ ACL を作成すると、ウェブ ACL が完全に伝播され、App Runner で使用できるようになるまでに少し時間がかかります。伝達時間は数秒から数分までです。 は、ウェブ ACL が完全に伝達される前に関連付けようとWAFUnavailableEntityExceptionすると、 AWS WAF を返します。

    ウェブ ACL が完全に伝播される前にブラウザを更新したり、App Runner コンソールから移動したりすると、関連付けは実行されません。ただし、App Runner コンソール内を移動することはできます。

AWS WAF ウェブ ACL の関連付けを解除する

App Runner サービスを更新することで、不要になった AWS WAF ウェブ ACl の関連付けを解除できます。

AWS WAF ウェブ ACl の関連付けを解除するには
  1. App Runner コンソール を開き、リージョンリストで を選択します AWS リージョン。

  2. 更新するサービスの「設定」タブに移動し、「サービスの設定」で「編集」を選択します。

  3. セキュリティ のウェブアプリケーションファイアウォールに移動します。

  4. トグルを有効にするボタンを無効にします。削除を確認するメッセージが表示されます。

  5. [確認] を選択します。ウェブ ACL は App Runner サービスとの関連付けが解除されます。

    注記
    • サービスを別のウェブ ACL に関連付ける場合は、ウェブ ACL の選択 テーブルからウェブ ACL を選択します。App Runner は現在のウェブ ACL の関連付けを解除し、選択したウェブ ACL に関連付けるプロセスを開始します。

    • 関連付け解除されたウェブ ACL を使用する App Runner サービスまたはリソースが他にない場合は、ウェブ ACL の削除を検討してください。それ以外の場合は、引き続きコストが発生します。料金の詳細については、「AWS WAF 料金」を参照してください。ウェブ ACL を削除する方法については、AWS WAF 「 API リファレンス」のDeleteWeb「ACL」を参照してください。

    • 他のアクティブな App Runner サービスや他のリソースに関連付けられているウェブ ACL は削除できません。

AWS CLI

AWS WAF パブリック APIs を使用して、 AWS WAF ウェブ ACL の関連付けまたは関連付け解除を行うことができます。ウェブ ACL の関連付けまたは関連付け解除を行う App Runner サービスは、有効な状態である必要があります。

AWS WAF は、無効な状態にある App Runner サービスに対して次のいずれかの AWS WAF APIs を呼び出すと、WAFNonexistentItemExceptionエラーを返します。

  • AssociateWebACL

  • DisassociateWebACL

  • GetWebACLForResource

App Runner サービスの無効な状態には以下が含まれます。

  • CREATE_FAILED

  • DELETE_FAILED

  • DELETED

  • OPERATION_IN_PROGRESS

    注記

    OPERATION_IN_PROGRESS 状態は、App Runner サービスが削除されている場合にのみ無効になります。

AWS WAF パブリック APIsAWS WAF リファレンスガイド」を参照してください。

注記

の IAM アクセス許可を更新します AWS WAF。詳細については、「 アクセス許可」を参照してください。

を使用した AWS WAF ウェブ ACL の関連付け AWS CLI

重要

WAF ウェブ ACLsルールは、IP ベースのルール に準拠していません。これは、現在、WAF に関連付けられた App Runner プライベートサービスへのリクエストソース IP データの転送をサポートしていないためです。App Runner アプリケーションにソース IP/CIDR 受信トラフィックコントロールルールが必要な場合は、WAF ウェブ ACLs の代わりにプライベートエンドポイントのセキュリティグループルールを使用する必要があります。

AWS WAF ウェブ ACL を関連付けるには
  1. への優先ルールアクションのセットAllowまたはサービスへの AWS WAF ウェブリクエストを使用してBlock、サービスのウェブ ACL を作成します。API の詳細については、 AWS WAF APIsAWS WAF リファレンスガイド」のCreateWeb「ACL」を参照してください。

    例 ウェブ ACL の作成 - リクエスト
    aws wafv2 create-web-acl --region <region> --name <web-acl-name> --scope REGIONAL --default-action Allow={} --visibility-config <file-name.json> # This is the file containing the WAF web ACL rules.
  2. associate-web-acl AWS WAF パブリック API を使用して、作成したウェブ ACL を App Runner サービスに関連付けます。API の詳細については、 AWS WAF APIsAWS WAF リファレンスガイド」のAssociateWeb「ACL」を参照してください。

    注記

    ウェブ ACL を作成すると、ウェブ ACL が完全に伝播され、App Runner で使用できるようになるまでに少し時間がかかります。伝達時間は数秒から数分までです。 は、ウェブ ACL が完全に伝達される前に関連付けようとWAFUnavailableEntityExceptionすると、 AWS WAF を返します。

    ウェブ ACL が完全に伝播される前にブラウザを更新したり、App Runner コンソールから移動したりすると、関連付けは実行されません。ただし、App Runner コンソール内を移動することはできます。

    例 ウェブ ACL の関連付け - リクエスト
    aws wafv2 associate-web-acl --resource-arn <apprunner_service_arn> --web-acl-arn <web_acl_arn> --region <region>
  3. get-web-acl-for-resource AWS WAF パブリック API を使用して、ウェブ ACL が App Runner サービスに関連付けられていることを確認します。API の詳細については、 AWS WAF APIsAWS WAF リファレンスガイド」のGetWeb「ACLForResource」を参照してください。

    例 リソースのウェブ ACL の検証 - リクエスト
    aws wafv2 get-web-acl-for-resource --resource-arn <apprunner_service_arn> --region <region>

    サービスに関連付けられているウェブ ACLs がない場合は、空白のレスポンスが表示されます。

を使用した AWS WAF ウェブ ACL の削除 AWS CLI

App Runner サービスに関連付けられている AWS WAF ウェブ ACL は削除できません。

AWS WAF ウェブ ACL を削除するには
  1. disassociate-web-acl AWS WAF パブリック API を使用して、ウェブ ACL と App Runner サービスの関連付けを解除します。API の詳細については、 AWS WAF APIsAWS WAF リファレンスガイド」のDisassociateWeb「ACL」を参照してください。

    例 ウェブ ACL の関連付けの解除 - リクエスト
    aws wafv2 disassociate-web-acl --resource-arn <apprunner_service_arn> --region <region>
  2. get-web-acl-for-resource AWS WAF パブリック API を使用して、ウェブ ACL と App Runner サービスの関連付けが解除されていることを確認します。

    例 ウェブ ACL の関連付けが解除されていることを確認する - リクエスト
    aws wafv2 get-web-acl-for-resource --resource-arn <apprunner_service_arn> --region <region>

    関連付けが解除されたウェブ ACL は App Runner サービスには表示されません。サービスに関連付けられているウェブ ACLs がない場合は、空白のレスポンスが表示されます。

  3. delete-web-acl AWS WAF パブリック API を使用して、関連付けが解除されたウェブ ACL を削除します。API の詳細については、 AWS WAF APIsAWS WAF リファレンスガイド」のDeleteWeb「ACL」を参照してください。

    例 ウェブ ACL の削除 - リクエスト
    aws wafv2 delete-web-acl --name <web_acl_name> --scope REGIONAL --id <web_acl_id> --lock-token <web_acl_lock_token> --region <region>
  4. list-web-acl AWS WAF パブリック API を使用してウェブ ACL が削除されていることを確認します。API の詳細については、 AWS WAF APIsAWS WAF リファレンスガイド」のListWebACLs」を参照してください。

    例 ウェブ ACL が削除されていることを確認する - リクエスト
    aws wafv2 list-web-acls --scope REGIONAL --region <region>

    削除されたウェブ ACL は表示されなくなります。

    注記

    ウェブ ACL が他のアクティブな App Runner サービスまたは Amazon Cognito ユーザープールなどの他のリソースに関連付けられている場合、ウェブ ACL は削除できません。

ウェブ ACL に関連付けられている App Runner サービスの一覧表示

ウェブ ACL は、複数の App Runner サービスやその他のリソースに関連付けることができます。list-resources-for-web-acl AWS WAF パブリック API を使用して、ウェブ ACL に関連付けられた App Runner サービスを一覧表示します。API の詳細については、 AWS WAF APIsAWS WAF リファレンスガイド」のListResourcesForWeb「ACL」を参照してください。

例 ウェブ ACL に関連付けられた App Runner サービスを一覧表示する - リクエスト
aws wafv2 list-resources-for-web-acl --web-acl-arn <WEB_ACL_ARN> --resource-type APP_RUNNER_SERVICE --region <REGION>
例 ウェブ ACL に関連付けられた App Runner サービスを一覧表示する - レスポンス

次の例は、ウェブ ACL に関連付けられている App Runner サービスがない場合のレスポンスを示しています。

{ "ResourceArns": [] }
例 ウェブ ACL に関連付けられた App Runner サービスを一覧表示する - レスポンス

次の例は、ウェブ ACL に関連付けられている App Runner サービスがある場合のレスポンスを示しています。

{ "ResourceArns": [ "arn:aws:apprunner:<region>:<aws_account_id>:service/<service_name>/<service_id>" ] }

AWS WAF ウェブ ACLsテストとログ記録

ウェブ ACL でルールアクションをカウントに設定すると、 はルールに一致するリクエストの数にリクエスト AWS WAF を追加します。App Runner サービスでウェブ ACL をテストするには、ルールアクションをカウントに設定し、各ルールに一致するリクエストの量を考慮します。例えば、通常のユーザートラフィックであると判断した多数のリクエストに一致するBlockアクションのルールを設定します。その場合は、ルールの再設定が必要になる場合があります。詳細については、「 AWS WAF デベロッパーガイド」のAWS WAF 「保護のテストとチューニング」を参照してください。

リクエストヘッダー AWS WAF を Amazon CloudWatch Logs ロググループ、Amazon Simple Storage Service (Amazon S3) バケット、または Amazon Data Firehose に記録するように を設定することもできます。詳細については、AWS WAF デベロッパーガイドの「ウェブ ACL トラフィックのログ記録」を参照してください。

App Runner サービスに関連付けられているウェブ ACL に関連するログにアクセスするには、次のログフィールドを参照してください。

  • httpSourceName: 含まれる APPRUNNER

  • httpSourceId: 含まれる customeraccountid-apprunnerserviceid

詳細については、「 AWS WAF デベロッパーガイド」の「ログの例」を参照してください。

重要

WAF ウェブ ACLsルールは、IP ベースのルール に準拠していません。これは、現在、WAF に関連付けられた App Runner プライベートサービスへのリクエストソース IP データの転送をサポートしていないためです。App Runner アプリケーションにソース IP/CIDR 受信トラフィックコントロールルールが必要な場合は、WAF ウェブ ACLs の代わりにプライベートエンドポイントのセキュリティグループルールを使用する必要があります。