启用某些日志记录Amazon服务 - Amazon CloudWatch Logs
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

启用某些日志记录Amazon服务

虽然许多服务仅将日志发布到 CloudWatch Logs,但有些Amazon服务可以将日志直接发布到 Amazon Streaming Streaming 服务或 Amazon Kinesis Data Firehose。如果日志主要是存储或处理这些服务中的某种服务,可以让生成日志的服务直接将其发送到 Amazon S3 或 Kinesis Data Firehose,无需额外设置。

即使日志直接发布到 Amazon S3 或 Kinesis Data Firehose,仍会产生费用。有关更多信息,请参阅 。存放日志日志选项卡位于Amazon CloudWatch 定价.

权限

其中一些Amazon服务使用通用基础设施将其日志发送到 CloudWatch Logs、Amazon S3 或 Kinesis Data Firehose。要启用 ,请执行以下操作:Amazon服务将其日志发送到这些目标,您必须以具有特定权限的用户身份登录。

此外,必须将权限授予Amazon以启用发送日志。Amazon可以在设置日志时自动创建这些权限,也可以在设置日志记录之前先自己创建这些权限。

如果您选择Amazon当您或组织中的某人首次设置日志发送时,会自动设置必要的权限和资源策略,然后设置日志发送的用户必须具有特定的权限,如本节后面所述。或者,您可以自己创建资源策略,然后设置日志发送的用户不需要尽可能多的权限。

下表汇总了本节中的信息适用于哪些类型的日志以及哪些日志目标。

以下部分提供了有关这些目标的更多详细信息。

发送到 CloudWatch Logs 的日志

重要

当您将以下列表中的日志类型设置为发送到 CloudWatch Logs 时,Amazon创建或更改与接收日志的日志组关联的资源策略(如果需要)。继续阅读本节以查看详细信息。

当以下类型的日志被发送到 CloudWatch Logs 日志时,本部分适用:

  • Amazon API Gateway 访问日志

  • Amazon Storage Gateway审核日志和运行状况日志

  • Amazon Chime 媒体质量指标日志和 SIP 消息日志

  • 用于 Redis 日志的亚马逊弹性缓存

  • Amazon Managed Streaming for Apache Kafka 代理日志

  • AmazonNetwork Firewall 日志

  • Amazon Route 53 Resolver 查询日志

  • Amazon SageMaker 工作人员事件

  • Amazon Step Functions快速工作流程历史记录和标准工作流

用户权限

为了能够设置首次将任何类型的日志发送到 CloudWatch Logs,您必须登录到具有以下权限的帐户。

  • logs:CreateLogDelivery

  • logs:PutResourcePolicy

  • logs:DescribeResourcePolicies

  • logs:DescribeLogGroups

如果这些类型的日志中的任何一种已被发送到 CloudWatch Logs 中的日志组,则要设置将其中一种日志发送到同一日志组,您只需要logs:CreateLogDelivery权限。

日志组资源策略

发送日志的日志组必须具有包含特定权限的资源策略。如果日志组当前没有资源策略,并且设置日志记录的用户具有logs:PutResourcePolicylogs:DescribeResourcePolicies, 和logs:DescribeLogGroups权限,然后Amazon当您开始将日志发送到 CloudWatch Logs 日志时,会自动为其创建以下策略。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:0123456789:log-group:my-log-group:log-stream:*" ] } ] }

如果日志组确实具有资源策略,但该策略不包含上一个策略中显示的语句,并且设置日志记录的用户具有logs:PutResourcePolicylogs:DescribeResourcePolicies, 和logs:DescribeLogGroups权限,则该语句将附加到日志组的资源策略中。

日志组资源策略大小限制注意事项

这些服务必须在资源策略中列出它们发送日志的每个日志组,并且 CloudWatch Logs 资源策略不得超过 5120 个字符。将日志发送到大量日志组的服务可能会达到此限制。

为了缓解这种情况,CloudWatch Logs 监视发送日志的服务使用的资源策略的大小,并且在检测到某个策略接近 5120 个字符的大小限制时,CloudWatch Logs 将自动启用/aws/vendedlogs/*在该服务的资源策略中。然后,您可以开始使用名称以/aws/vendedlogs/作为来自这些服务的日志的目标。

发送到 Amazon S3 的日志

重要

当您将以下列表中的日志类型设置为发送到 Amazon S3 时,Amazon创建或更改与接收日志的 S3 存储桶关联的资源策略(如果需要)。继续阅读本节以查看详细信息。

当向 Amazon S3 发送以下类型的日志时,本部分适用:

  • CloudFront 访问日志和流式访问日志。CloudFront 使用与此列表中的其他服务不同的权限模型。有关更多信息,请参阅 。配置标准日志记录和访问您的日志文件所需的权限.

  • Amazon EC2 Spot 实例数据源

  • Amazon Global Accelerator 流日志

  • Amazon Managed Streaming for Apache Kafka 代理日志

  • Network Load Balancer 访问日志

  • AmazonNetwork Firewall 日志

  • Amazon Virtual Private Cloud 流日志

直接发布到 Amazon S3 的日志将发布到您指定的现有存储桶。每 5 分钟将在指定的存储桶中创建一个或多个日志文件。

当您首次向 Amazon S3 存储桶传送日志时,提供日志的服务会记录存储桶的所有者,以确保日志仅传送到属于此账户的存储桶。因此,要更改 Amazon S3 存储桶所有者,您必须在原始服务中重新创建或更新日志订阅。

用户权限

为了能够设置首次向 Amazon S3 发送这些类型的日志,您必须使用以下权限登录到账户。

  • logs:CreateLogDelivery

  • S3:GetBucketPolicy

  • S3:PutBucketPolicy

如果这些类型的日志中的任何一种已被发送到 Amazon S3 存储桶,则要设置将另一种类型的日志发送到同一存储桶,您只需具有logs:CreateLogDelivery权限。

S3 存储桶资源策略

发送日志的 S3 存储桶必须具有包含特定权限的资源策略。如果存储桶当前没有资源策略,并且设置日志记录的用户具有S3:GetBucketPolicyS3:PutBucketPolicy权限,然后Amazon当您开始向 Amazon S3 发送日志时,会自动为其创建以下策略。

{ "Version": "2012-10-17", "Id": "AWSLogDeliveryWrite20150319", "Statement": [ { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::my-bucket" }, { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-bucket/AWSLogs/account-ID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }

如果存储桶确实具有资源策略,但该策略不包含上一个策略中显示的语句,并且设置日志记录的用户具有S3:GetBucketPolicyS3:PutBucketPolicy权限,则该语句将附加到存储桶的资源策略中。

发送到 Kinesis Data Firehose 的日志

当将以下类型的日志发送到 Kinesis Data Firehose 时,本部分适用:

  • 用于 Redis 日志的亚马逊弹性缓存

  • Amazon Managed Streaming for Apache Kafka 代理日志

  • AmazonNetwork Firewall 日志

  • Amazon Route 53 Resolver 查询日志

用户权限

为了能够设置首次将任何这些类型的日志发送到 Kinesis Data Firehose,您必须登录到具有以下权限的帐户。

  • logs:CreateLogDelivery

  • firehose:TagDeliveryStream

  • iam:CreateServiceLinkedRole

如果这些类型的日志中的任何一种已被发送到 Kinesis Data Firehose,那么要设置将其中一种类型的日志发送到 Kinesis Data Firehose,您只需要有logs:CreateLogDeliveryfirehose:TagDeliveryStream权限。

用于权限的 IAM 角色

由于 Kinesis Data Firehose 不使用资源策略,Amazon在将这些日志设置为发送到 Kinesis Data Firehose 件时使用 IAM 角色。Amazon创建名为的服务相关角色Amazon 服务日志交付. 该服务相关角色包括以下权限。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:ListTagsForDeliveryStream" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/LogDeliveryEnabled": "true" } }, "Effect": "Allow" } ] }

此服务链接的角色授予所有 Kinesis Data Firehose 交付流的权限,这些交付流具有LogDeliveryEnabled标签设置为true.Amazon在设置日志记录时,将此标签提供给目标传递流。

该服务相关角色还具有信任策略,该策略允许delivery.logs.amazonaws.com服务委托人来代入所需的服务相关角色。该信任策略如下所示:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

CloudWatch Logs 更新到Amazon托管策略

查看有关更新的详细信息(Amazon托管策略 CloudWatch Logs 因为该服务开始跟踪这些更改。有关此页面更改的提示,请订阅 CloudWatch Logs 文档历史记录页面上的 RSS 源。

更改 说明 日期

Amazon 服务日志交付服务相关角色策略— 对现有策略的更新

CloudWatch Logs 更改了 IAM 策略中与Amazon 服务日志交付服务相关角色。进行了以下更改:

  • 这些区域有:firehose:ResourceTag/LogDeliveryEnabled": "true"条件键已更改为aws:ResourceTag/LogDeliveryEnabled": "true".

2021 年 7 月 15 日

CloudWatch Logs 已开启跟踪更改。

CloudWatch Logs 开始跟踪其Amazon托管策略。

2021 年 6 月 10 日