説明
AWS WAF を関連付けていない API Gateway REST API ステージには、そのウェブ ACL による要求の検査や遮断が適用されません。ウェブ要求の悪用を抑える制御が必要な場合、API の用途と既存の保護に合う WAF 構成を検討する必要があります。
WAF はルールに従って要求を処理します。呼び出し元の認証、アプリケーションの権限確認、脆弱性の修正の代わりにはならず、ウェブ ACL を関連付けるだけですべての攻撃を防ぐことはできません。
想定される影響
- 必要なフィルタリングがないと、悪意のある入力や繰り返される要求がアプリケーションに届くおそれがあります。
- 不適切な遮断ルールは、正常な顧客の要求を拒否する場合があります。
対処方法
保護が必要な REST API ステージに、同じリージョンの REGIONAL ウェブ ACL を関連付けてください。API に合うマネージドルールやカスタムルールを選び、まず Count 動作などで影響を確認してから必要な遮断を適用してください。実際の関連付け、要求記録、正常なトラフィックを確認し、認証とアプリケーションのセキュリティも維持してください。
例
REST API、デプロイメント、ウェブ ACL は別の入力です。ApiWebAclArn には同じリージョンの REGIONAL ウェブ ACL ARN を指定してください。ルール定義とログ構成は省略しています。
変更前
yaml
Resources:
ProdStage:
Type: AWS::ApiGateway::Stage
Properties:
StageName: Prod
RestApiId: !Ref MyRestApi
DeploymentId: !Ref ApiDeployment
この抜粋にはステージとウェブ ACL の関連付けがありません。別途適用している保護と、実際の関連付け状態を確認してください。
変更後
yaml
Resources:
ProdStage:
Type: AWS::ApiGateway::Stage
Properties:
StageName: Prod
RestApiId: !Ref MyRestApi
DeploymentId: !Ref ApiDeployment
ProdStageWebAclAssociation:
Type: AWS::WAFv2::WebACLAssociation
Properties:
WebACLArn: !Ref ApiWebAclArn
ResourceArn: !Sub arn:${AWS::Partition}:apigateway:${AWS::Region}::/restapis/${MyRestApi}/stages/${ProdStage}
現在のリージョンの MyRestApi と ProdStage を参照してウェブ ACL を関連付けます。ウェブ ACL のルールと動作を構成し、正常な要求と悪意のある要求の結果を確認してください。