我想知道為什麼會收到 "WAFInvalidParameterException" 錯誤。
簡短描述
如果您正在執行的操作具有 AWS WAF 無法辨識的參數,則該操作會失敗。AWS WAF 傳回的錯誤之一是 WAFInvalidParameterException。以下是導致此錯誤的常見原因:
- 您指定的參數名稱或值無效。
- 巢狀陳述式無效。
- Web 存取控制清單 (Web ACL) 已使用不屬於可用類型之一的 DefaultAction 更新。
- 請求中引用的 ARN 來自於無法與 Web ACL 建立關聯的資源。
解決方法
無法辨識參數名稱或值
如果 AWS WAF 無法識別參數值,則您會看到類似下列範例的訊息:
「呼叫 CreateRuleGroup 操作時發生錯誤 (WAFInvalidParameterException): 錯誤原因:
範圍無效,欄位: SCOPE_VALUE,參數: <parameter value>」
例如,不是 REGIONAL 或 CLOUDFRONT 的 Scope 參數值會返回前述錯誤。
若要對此錯誤進行疑難排解,請完成下列步驟:
- 識別 AWS WAF 無法辨識的參數值。
- 將參數修改為 AWS WAF 支援的值。如需詳細資訊,請參閱 AWS WAFV2。
無法辨識資源類型
AWS WAF 可以與 Amazon CloudFront 分佈、Amazon API Gateway REST API、Application Load Balancer 或 AWS AppSync GraphQL API 建立關聯。如果您與其他資源類型建立關聯,則會看到類似下列範例的訊息:
「呼叫 AssociateWebACL 操作時發生錯誤 (WAFInvalidParameterException): 錯誤原因:
ARN 無效。有效的 ARN 以 arn: 開頭,並包括以冒號或斜線分隔的其他資訊,欄位: RESOURCE_ARN,參數:<resource arn」
若要對此錯誤進行疑難排解,請完成下列步驟:
- 識別 AWS WAF 無法辨識的參數值。
- 將參數修改為 AWS WAF 支援的資源。
**注意:**與 Web ACL 相關聯之資源 ARN 必須具有下列其中一種格式:
- Application Load Balancer:arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id
- Amazon API Gateway REST API:arn:aws:apigateway:region::/restapis/api-id/stages/stage-name
- AWS AppSync GraphQL API:arn:aws:appsync:region:account-id:apis/GraphQLApiId
- Amazon Cognito 使用者集區:arn:aws:cognito-idp:region:account-id:userpool/user-pool-id
- AWS App Runner 服務:arn:aws:apprunner:region:account-id:service/apprunner-service-name/apprunner-service-id
無法辨識 DefaultAction 值
您可以將 AWS WAF DefaultAction 欄位設定為允許或封鎖。如果將欄位設定為其他內容,則會收到類似下列範例的錯誤:
「您嘗試使用不屬於 DefaultAction 可用類型之一的 DefaultAction 更新 Web ACL。」
如需有關可接受值的詳細資訊,請參閱請求語法。
參考
決定 Web ACL 的預設動作
WAFInvalidParamterException 類別
WAFInvalidParameterException 命名空間