微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AWS WAFv2 put-logging-configuration命令中的多个RedactedFields

如何解决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 举报,一经查实,本站将立刻删除。