引入全新的主机体验 AWS WAF
现在,您可以使用更新的体验访问控制台中任意位置的 AWS WAF 功能。有关更多详细信息,请参阅使用控制台。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Shield 高级攻击流日志
使用流日志,您可以在 Shield Advanced 受保护的资源中捕获有关流向网络接口的流量的信息。流日志数据将发布到 Amazon S3、Amazon Lo CloudWatch gs 或 Amazon Data Firehose,启用流日志后,您可以在那里检索和查看数据。
注意
在美国东部(弗吉尼亚北部)地区的 Shield Advanced 中、控制台和使用时,您必须查看受保护资源的 CloudWatch 指标和日志 AWS CLI。使用时 AWS CLI,请通过包括以下参数为您的命令指定美国东部(弗吉尼亚北部)区域:--region us-east-1
注意
CloudWatch 使用流日志时,即使日志直接发布到 Amazon S3,也会收取日志费用。有关更多信息,请参阅 Amazon Pricing 中 “日志” 选项卡下的 “销售日志” CloudWatch 。
启用将流日志发布到 Amazon S3 的功能
要将流日志发布到 Amazon S3,您必须为日志传输操作和 Shield 服务配置 IAM 权限。
发布流日志的 IAM 权限
IAM 主体(例如,IAM 角色或用户)必须具有足够的权限才能将流日志发布到 Amazon S3 存储桶。IAM 策略必须包含以下权限:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadWriteAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:GetDelivery", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:PutDeliveryDestinationPolicy", "logs:CreateDelivery", "logs:GetDeliveryDestination", "logs:PutDeliverySource", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDelivery", "logs:UpdateDeliveryConfiguration" ], "Resource": [ "arn:aws:logs:us-east-1:accountID:delivery:*", "arn:aws:logs:us-east-1:accountID:delivery-source:*", "arn:aws:logs:us-east-1:accountID:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries", "logs:DescribeConfigurationTemplates" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyS3", "Effect": "Allow", "Action": [ "s3:PutBucketPolicy", "s3:GetBucketPolicy" ], "Resource": "arn:aws:s3:::bucket-name" } ] }
在上述政策中,accountID替换为您的 AWS 账户 ID 和 bucket-name Amazon S3 存储桶的名称。
Shield 服务特定的权限
除了特定于目标的权限外,还 AWS Shield 需要明确授权才能从您的资源发送日志。这提供了额外的安全层。Shield 授权对提供日志的保护资源AllowVendedLogDeliveryForResource执行操作:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ServiceLevelAccessForLogDelivery", "Effect": "Allow", "Action": [ "shield:AllowVendedLogDeliveryForResource" ], "Resource": "arn:aws:shield::accountID:protection/*" } ] }
accountID替换为您的 AWS 账户 ID。
启用流日志传输
工作日志交付由三个元素组成。使用以下步骤使用配置每个元素 AWS CLI。
-
创建一个
DeliverySource,它是一个逻辑对象,代表发送日志的资源。运行如下命令:aws logs put-delivery-source \ --namedelivery-source-name\ --resource-arn "arn:aws:shield::accountID:protection/protectionID" \ --log-type FLOW_LOGS \ --region us-east-1delivery-source-name替换为交付来源的名称、accountID您的 AWS 账户 ID 和 ShprotectionIDield 高级保护 ID。确保发出此命令的用户具有服务级别权限
shield:AllowVendedLogDeliveryForResource。 -
创建一个
DeliveryDestination,它是一个逻辑对象,代表实际的传送目的地。运行如下命令:aws logs put-delivery-destination \ --namedelivery-destination-name\ --output-format json \ --delivery-destination-configuration "destinationResourceArn=arn:aws:s3:::bucket-name" \ --region us-east-1替换
delivery-destination-name为配送目的地的名称和bucket-nameAmazon S3 存储桶的名称。 -
创建
Delivery,用于将传送源与传送目标连接起来。运行如下命令:aws logs create-delivery \ --delivery-source-namedelivery-source-name-from-step1\ --delivery-destination-arn "arn-returned-in-step2" \ --region us-east-1delivery-source-name-from-step1替换为步骤 1 中的交付来源arn-returned-in-step2名称和步骤 2 中返回的 ARN。
流日志文件
在攻击期间,您的 Shield 防护中的流日志每隔 5 分钟就会发布到 Amazon S3 存储桶。日志文件每五分钟写入一次,每个日志文件都包含前五分钟记录的 IP 地址流量的流日志记录。
日志文件的最大文件大小为 75 MB。如果日志文件在 5 分钟期间内达到文件大小限制,流日志会停止向其中添加流日志记录,将其发布到 Amazon S3 存储桶,然后创建一个新的日志文件。
日志文件已压缩。如果使用 Amazon S3 控制台打开文件,Amazon S3 会解压日志记录并显示它们。如果您下载日志文件,则必须对其进行解压才能查看记录。
单个日志文件包含包含多条记录的交错条目。要查看保护的所有日志文件,请查找按保护名称、区域和您的账户 ID 汇总的条目。
流日志记录语法
流日志记录是一个以空格分隔的字符串,包含以下字段。
| 字段 | 说明 |
|---|---|
version |
流日志版本号。 |
protection_arn |
AWS 保护 ARN,用于标识 Shield Advanced 中受保护的资源。 |
srcaddr |
数据包的源 IP 地址。 |
dstaddr |
数据包的目标 IP 地址。 |
srcport |
数据包的源端口。 |
dstport |
数据包的目标端口。 |
protocol |
数据包的协议。 |
packets |
聚合窗口内的数据包数量。 |
bytes |
聚合窗口内的字节数。 |
starttime |
聚合窗口的开始时间。 |
endtime |
聚合窗口结束时间。 |
action |
Shield Advanced 采取的行动。 |
tcp_flags |
数据包中的 TCP 标志字段。 |
sampling_rate |
数据包处理期间使用的采样率。 |
location |
AWS 入口位置。 |
srccountry |
Two-letter 代表入口流量国家/地区的国家/地区代码。 |