AWS WAF ウェブ ACL をサービスに関連付ける - AWS App Runner

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

AWS WAF ウェブ ACL をサービスに関連付ける

AWS WAF は、App Runner サービスを保護するために使用できるウェブアプリケーションファイアウォールです。 AWS WAF ウェブアクセスコントロールリスト (ウェブ ACLs) を使用すると、一般的なウェブエクスプロイトや不要なボットから App Runner サービスエンドポイントを保護できます。

ウェブ ACL を使用すると、App Runner サービスへのすべての受信ウェブリクエストをきめ細かく制御できます。ウェブ ACL でルールを定義して、ウェブトラフィックを許可、ブロック、またはモニタリングし、承認された正当なリクエストのみがウェブアプリケーションと APIsに到達できるようにします。ウェブ ACL ルールは、特定のビジネスおよびセキュリティニーズに基づいてカスタマイズできます。ネットワーク ACLs「Amazon VPC ユーザーガイド」の「ネットワークトラフィックを制御する」を参照してください。

重要

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

受信ウェブリクエストフロー

AWS WAF ウェブ ACL が App Runner サービスに関連付けられている場合、受信ウェブリクエストは次のプロセスを実行します。

  1. App Runner はオリジンリクエストの内容を に転送します AWS WAF。

  2. AWS WAF はリクエストを検査し、その内容をウェブ ACL で指定したルールと比較します。

  3. その検査に基づいて、 は App Runner に allowまたは blockレスポンス AWS WAF を返します。

    • allow レスポンスが返された場合、App Runner はリクエストをアプリケーションに転送します。

    • block レスポンスが返されると、App Runner はリクエストがウェブアプリケーションに到達するのをブロックします。block レスポンスを からアプリケーションに転送 AWS WAF します。

      注記

      デフォルトでは、 からレスポンスが返されない場合、App Runner はリクエストをブロックします AWS WAF。

AWS WAF ウェブ ACLs「 AWS WAF デベロッパーガイド」の「ウェブアクセスコントロールリスト (ウェブ ACLs」を参照してください。

注記

標準 AWS WAF 料金が発生します。App Runner サービスに AWS WAF ウェブ ACLs を使用しても、追加料金は発生しません。 
料金の詳細については、「 の料金AWS WAF」を参照してください。

WAF ウェブ ACLs App Runner サービスに関連付ける

以下は、 AWS WAF ウェブ ACL を App Runner サービスに関連付けるための大まかなプロセスです。

  1. AWS WAF コンソールでウェブ ACL を作成します。詳細については、「 AWS WAF デベロッパーガイド」の「ウェブ ACL の作成」を参照してください。

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

  3. 次のいずれかの方法を使用して、ウェブ ACL を App Runner サービスに関連付けます。

    • App Runner コンソール: App Runner サービスを作成または更新するときに、App Runner コンソールを使用して既存のウェブ ACL を関連付けます。手順については、AWS WAF 「ウェブ ACLs」を参照してください。

    • AWS WAF コンソール : 既存の App Runner サービスの AWS WAF コンソールを使用してウェブ ACL を関連付けます。詳細については、「AWS WAF デベロッパーガイド」の「ウェブ ACL と AWS リソースの関連付けまたは関連付け解除」を参照してください。

    • AWS CLI: AWS WAF パブリック APIs。 AWS WAF パブリック APIsAWS WAF リファレンスガイド」のAssociateWeb「ACL」を参照してください。

考慮事項

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

  • App Runner サービスは、1 つのウェブ ACL にのみ関連付けることができます。ただし、1 つのウェブ ACL を複数の App Runner サービスおよび複数の AWS リソースに関連付けることができます。例としては、Amazon Cognito ユーザープールや Application Load Balancer リソースなどがあります。

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

    ウェブ ACL が完全に伝播される前にブラウザを更新したり、App Runner コンソールから移動したりすると、関連付けは実行されません。ただし、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 できるペイロードの制限を超える可能性があります。が App Runner からのオーバーサイズリクエスト AWS WAF を処理する方法の詳細については、「 AWS WAF デベロッパーガイド」の「オーバーサイズリクエストコンポーネントの処理」を参照して、 が App Runner からのオーバーサイズリクエスト AWS WAF を処理する方法を確認してください。

  • 適切なルールを設定しない場合やトラフィックパターンが変更された場合、ウェブ ACL はアプリケーションの保護にそれほど効果的ではない可能性があります。

アクセス許可

でウェブ ACL を使用するには AWS App Runner、 に次の IAM アクセス許可を追加します AWS WAF。

  • apprunner:ListAssociatedServicesForWebAcl

  • apprunner:DescribeWebAclForService

  • apprunner:AssociateWebAcl

  • apprunner:DisassociateWebAcl

IAM アクセス許可の詳細については、「IAM ユーザーガイド」の「IAM のポリシーとアクセス許可」を参照してください。

以下は、 用に更新された IAM ポリシーの例です AWS WAF。この IAM ポリシーには、App Runner サービスを操作するために必要なアクセス許可が含まれています。

{ { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "wafv2:ListResourcesForWebACL", "wafv2:GetWebACLForResource", "wafv2:AssociateWebACL", "wafv2:DisassociateWebACL", "apprunner:ListAssociatedServicesForWebAcl", "apprunner:DescribeWebAclForService", "apprunner:AssociateWebAcl", "apprunner:DisassociateWebAcl" ], "Resource":"*" } ] }
注記

IAM アクセス権限を付与する必要がありますが、リストされているアクションは権限のみで、API オペレーションには対応していません。