本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
管理以下项的 Web ACL AWS WAF
使用 AWS 网络安全管理器,您可以跨组织中的账户和资源集中配置和部署 AWS WAF Web 访问控制列表 (Web ACL)。您可以为 AWS WAF 定义 AWS 网络安全管理器规则,将它们分组到保护模板中,然后通过 AWS 网络安全管理器策略和部署大规模实施这些规则。
AWS WAF 的概念
以下概念特定于将 AWS 网络安全管理器与 AWS WAF 配合使用。有关 AWS 网络安全管理器工作原理的更多信息,请参阅操作方法 AWS 网络安全管理器起作用。
AWS WAF 规则类型
对于 AWS WAF,规则是以下两种类型之一:
-
检查-包含使用
PreProcessFirewallManagerRuleGroups(在客户定义的规则之前运行的规则)或PostProcessFirewallManagerRuleGroups(之后运行的规则)的规则组定义。 -
配置-包含单个 Web ACL 配置设置。配置 JSON 必须包含一个与支持的设置(例如、、、、、、、、、
Description、DefaultAction、、VisibilityConfig、LoggingConfiguration、CaptchaConfig、、ChallengeConfig、CustomResponseBodies、DataProtectionConfigAssociationConfigOnSourceDDoSProtectionConfigTokenDomains、或MonetizationConfig)匹配的顶级密钥。
大多数 Web ACL 配置设置与 AWS WAF CreateWebACL 操作的参数相对应。有关这些设置及其定义的更多信息,请参阅 AWS WAF API 参考中的 CreateWebACL。
唯一的例外是LoggingConfiguration,您可以单独配置。有关更多信息,请参阅 记录 Web ACL 流量。
AWS WAF 策略合并
对于 AWS WAF,每个配置设置都使用以下合并策略之一:
- SingleValue
-
只能有一个值的设置。优先级最高的策略获胜。优先级值是唯一的,因此两个策略不能在相同的优先级下定义不同的值。有关 AWS 网络安全管理器如何解析优先级的更多信息,请参阅Priority-based 策略合并。以下设置使用 SingleValue:
DefaultAction、VisibilityConfig、CaptchaConfig、ChallengeConfig、OnSourceDDoSProtectionConfigLoggingConfiguration、MonetizationConfig、和Description。 - 附加(和 AppendAndSort)
-
所有策略中的条目按优先顺序附加到列表中。
TokenDomains并DataProtectionConfig.DataProtections使用追加。PreProcessFirewallManagerRuleGroups和PostProcessFirewallManagerRuleGroupsuse AppendAndSort,它会从所有策略中追加规则组并按优先级对它们进行排序。顺序很重要,因为 AWS WAF 会按顺序评估规则组。 - 合并
-
无论优先级如何,来自所有策略的条目都合并为一个集合。
CustomResponseBodies然后AssociationConfig.RequestBody使用 “合并”。
追加 AppendAndSort、和合并策略会移除重复的条目。当两个策略提供相同的配置时, AWS 网络安全管理器会保留优先级较高的策略中的条目。因此,有效配置包含该条目的一个副本,而不是每个贡献策略的一个副本。
现有 Web ACL 分辨率
使用 AWS WAF 策略的existingCustomerWebACLResolution设置来指定 AWS 网络安全管理器如何处理已有客户管理的 Web ACL 的资源:
-
RETROFIT— 更新现有的 Web ACL 以使其与有效配置保持一致。 -
OVERRIDE_ASSOCIATION— 改为将 AWS 网络安全管理器管理的 Web ACL 与资源相关联。 -
NO_REMEDIATION— 如果您的 Web ACL 存在,请不要进行修复。
记录 Web ACL 流量
您可以使用策略上的LoggingConfiguration设置来控制 Web ACL 日志记录。 AWS 网络安全管理器使用 AWS WAF PutLoggingConfiguration 操作应用此设置。您可以为每个 Web ACL 定义一个日志记录目标。有关更多信息,请参阅 AWS WAF API 参考PutLoggingConfiguration中的。
策略管理的每个范围内 Web ACL 都会将其日志发送到策略指定的目标。这使您可以集中记录组织中的帐户。使用它来获取有关您的 Web ACL 在组织范围内分析的流量的详细信息。
要实现跨多个账户的集中日志记录,您可以将日志发送到 Amazon S3 存储桶或 Amazon Data Firehose 传输流。每种目标类型都需要额外的配置,您必须先完成这些配置,然后 AWS 网络安全管理器才能在您的范围内资源和账户中管理 AWS WAF 日志记录。目标名称必须以开头aws-waf-logs-。
- Amazon Data Firehose
-
创建具有以下特征的传送流:
-
使用您的 AWS 网络安全管理员帐户创建
-
例如,一个以开头
aws-waf-logs-的名字aws-waf-logs-network-security-manager-central -
一个
PUT消息来源 -
在您运营的地区创建,或者如果您为 Amazon 捕获日志,则在美国东部(弗吉尼亚北部)地区创建 CloudFront
在使用传输流之前,请对其进行测试,以确认其吞吐量是否足以容纳组织的日志。有关更多信息,请参阅《亚马逊数据 Firehose 开发者指南》中的创建亚马逊数据 Firehose 传输流。
-
- Amazon S3
-
按照 AWS WAF 开发者指南中的 Amazon S3 指南创建存储桶。您还必须为存储桶配置允许日志传输向其写入的权限。以下存储桶策略授予这些权限。
{ "Version":"2012-10-17", "Id": "AWSLogDeliveryForNetworkSecurityManager", "Statement": [ { "Sid": "AWSLogDeliveryAclCheckNetworkSecurityManager", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::aws-waf-logs-bucket-suffix" }, { "Sid": "AWSLogDeliveryWriteNetworkSecurityManager", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::aws-waf-logs-bucket-suffix/policy-id/AWSLogs/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }bucket-suffix替换为您自己的存储桶名称后缀,并policy-id替换为您的策略的 ID。
CloudWatch 日志仅支持单账号使用
如果您在多个账户中使用 AWS 网络安全管理器,则不能使用 Amazon Log CloudWatch s 日志组作为日志目标。日志组必须与 Web ACL 位于同一个 AWS 账户和相同区域。对于多账户部署,请改用 Amazon S3 存储桶或 Amazon Data Firehose 传输流。