如何解决AWS WAFv2 put-logging-configuration命令中的多个RedactedFields
我正在尝试使用WAFv2在Web ACL上设置日志记录。
我可以使用一个'RedactedField'成功运行put-logging-configuration
命令,但是在第一个标题之后添加更多标头时遇到了问题。
这里是有问题的documentation-我无法完全理解:
您希望AWS WAF检查的Web请求部分。包括要检查的单个FieldToMatch类型,并根据类型根据需要附加规格。您可以在FieldToMatch中为每个需要它的规则语句指定一个请求组件。要检查Web请求的多个组件,请为每个组件创建单独的规则语句。
这是我的有效命令:
aws --region="us-west-2" wafv2 put-logging-configuration \
--logging-configuration ResourceArn=${MY_WEB_ACL_ARN},LogDestinationConfigs=${MY_FIREHOSE_DELIVERY_STREAM_ARN},RedactedFields={SingleHeader={Name="cookie"}}
这将产生以下结果:
{
"LoggingConfiguration": {
"ResourceArn": "{My arn}","LogDestinationConfigs": [
"{My firehose log stream arn}"
],"RedactedFields": [
{
"SingleHeader": {
"Name": "cookie"
}
}
]
}
}
我还希望删除“授权”标头。
我已经尝试将以下内容作为--logging-configuration
的“ RedactedFields”部分的一部分:
1) Two SingleHeader statements within brackets
RedactedFields={SingleHeader={Name="cookie"},SingleHeader={Name="cookie"}}
(Results in 'UnkNown options' error.)
2) Two sets of brackets with comma
RedactedFields={SingleHeader={Name="cookie"}},{SingleHeader={Name="authorization"}}
Error parsing parameter '--logging-configuration': Expected: '=',received: '{' for input:
3) Two sets of brackets,no comma
RedactedFields={SingleHeader={Name="cookie"}}{SingleHeader={Name="authorization"}}
Error parsing parameter '--logging-configuration': Expected: ',',received: '{' for input:
4) Two SingleHeader statements within brackets,no comma
RedactedFields={SingleHeader={Name="cookie"}{SingleHeader={Name="authorization"}}
Error parsing parameter '--logging-configuration': Expected: ',received: '{' for input:
5) One SingleHeader statement,two headers (Isn't really a SingleHeader anymore,is it?)
RedactedFields={SingleHeader={Name="cookie","authorization"}}
UnkNown options: authorization}}
我在这里出了什么问题?我尝试了许多其他方法,包括[]
方括号,“名称”的多个实例,“ RedactedFields”的多个实例,完全没有用。
解决方法
要通过简写语法向RedactedFields添加多个SingleHeader,我必须
- 给每个SingleHeader自己的括号
- 在每个括号之间添加一个逗号
- 用方括号包裹所有组合
- 将所有内容都用单引号引起来。
例如,如果我想要两个SingleHeader,一个用于“ cookie”,一个用于“授权”,则需要在RedactedFields
的{{1}}部分使用以下内容:
--logging-configuration
最后,如果将其添加到put-logging-configuration中,则整个命令将是:
RedactedFields='[{SingleHeader={Name="cookie"}},{SingleHeader={Name="authorization"}}]'
给出以下结果:
aws --region=${MY_REGION} wafv2 put-logging-configuration \
--logging-configuration ResourceArn=${MY_WEB_ACL_ARN},LogDestinationConfigs=${MY_FIREHOSE_DELIVERY_STREAM_ARN},RedactedFields='[{SingleHeader={Name="cookie"}},{SingleHeader={Name="authorization"}}]'
此格式可用于任何其他FieldToMatch,例如SingleQueryArgument,AllQueryArguments,QueryString,UriPath,Body等。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。