翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS WAF は、App Runner サービスを保護するために使用できるウェブアプリケーションファイアウォールです。 AWS WAF ウェブアクセスコントロールリスト (ウェブ ACLs) を使用すると、一般的なウェブエクスプロイトや不要なボットから App Runner サービスエンドポイントを保護できます。
ウェブ ACL を使用すると、App Runner サービスへのすべての受信ウェブリクエストをきめ細かく制御できます。ウェブトラフィックを許可、ブロック、またはモニタリングするルールをウェブ ACL で定義して、承認された正当なリクエストのみがウェブアプリケーションと APIs に到達するようにすることができます。特定のビジネスおよびセキュリティのニーズに基づいて、ウェブ ACL ルールをカスタマイズできます。ネットワーク ACLs「ネットワークトラフィックの制御」を参照してください。
重要
WAF ウェブ ACLsルールは、IP ベースのルールに準拠していません。これは、現在、リクエストソース IP データの WAF に関連付けられた App Runner プライベートサービスへの転送をサポートしていないためです。App Runner アプリケーションにソース IP/CIDR 受信トラフィックコントロールルールが必要な場合は、WAF ウェブ ACLs の代わりにプライベートエンドポイントのセキュリティグループルールを使用する必要があります。
受信ウェブリクエストフロー
AWS WAF ウェブ ACL が App Runner サービスに関連付けられている場合、受信ウェブリクエストは次のプロセスを実行します。
-
App Runner はオリジンリクエストの内容を に転送します AWS WAF。
-
AWS WAF はリクエストを検査し、その内容をウェブ ACL で指定したルールと比較します。
-
その検査に基づいて、 は 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 サービスに関連付ける大まかなプロセスを次に示します。
-
AWS WAF コンソールでウェブ ACL を作成します。詳細については、「 デベロッパーガイド」の「ウェブ ACL の作成」を参照してください。 AWS WAF
-
の AWS Identity and Access Management (IAM) アクセス許可を更新します AWS WAF。詳細については、「 アクセス許可」を参照してください。
-
次のいずれかの方法を使用して、ウェブ 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 パブリック APIs「 API AWS WAF リファレンスガイド」のAssociateWebACL」を参照してください。
-
考慮事項
-
WAF ウェブ ACLsルールは、IP ベースのルールに準拠していません。これは、現在、リクエストソース IP データの WAF に関連付けられた App Runner プライベートサービスへの転送をサポートしていないためです。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 オペレーションには対応していません。