将 CloudWatch Logs 与接口 VPC 终端节点结合使用 - Amazon CloudWatch 日志
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将 CloudWatch Logs 与接口 VPC 终端节点结合使用

如果您使用 Amazon Virtual Private Cloud (Amazon VPC) 托管Amazon资源,则可以在您的 VPC 和 CloudWatch Logs 之间建立私有连接。您可以使用此连接将日志发送到 CloudWatch Logs,而无需通过 Internet 发送它们。

Amazon VPC 是一项Amazon服务,可用来启动在虚拟网络中定义的Amazon资源。借助 VPC,您可以控制您的网络设置,如 IP 地址范围、子网、路由表和网络网关。要将 VPC 连接到 CloudWatch Logs,请为 CloudWatch Logs 定义一个接口 VPC 终端节点。这种类型的端点使您能够将 VPC 连接到Amazon服务。该端点提供了到 CloudWatch Logs 的可靠、可扩展的连接,无需互联网网关、网络地址转换 (NAT) 实例或 VPN 连接。有关更多信息,请参阅 Amazon VPC 用户指南中的什么是 Amazon VPC

接口 VPC 终端节点由 Amazon PrivateLink 提供支持,后者是一种Amazon技术,可将弹性网络接口与私有 IP 地址结合使用来支持Amazon服务之间的私有通信。有关更多信息,请参阅新功能 – Amazon服务的 Amazon PrivateLink

以下步骤适用于 Amazon VPC 的用户。有关更多信息,请参阅 Amazon VPC 用户指南中的入门

可用性

CloudWatch Logs 当前在所有 Amazon 区域支持 VPC 端点,包括 Amazon GovCloud (US) 区域。

为 CloudWatch Logs 创建 VPC 终端节点

要开始使用 CloudWatch Logs 与 VPC,请为 CloudWatch Logs 创建一个接口 VPC 终端节点。要选择的服务是 com.amazonaws.Region.logs。您无需更改 CloudWatch Logs 的任何设置。有关更多信息,请参阅 Amazon VPC 用户指南中的创建接口端点

测试 VPC 和 CloudWatch Logs 之间的连接

创建端点后,您可以测试连接。

测试 VPC 和 CloudWatch Logs 端点之间的连接
  1. 连接到位于您 VPC 中的 Amazon EC2 实例。有关连接的信息,请参阅 Amazon EC2 文档中的连接到您的 Linux 实例连接到您的 Windows 实例

  2. 在实例中,使用 Amazon CLI 在您的一个现有日志组中创建日志条目。

    首先,创建一个包含日志事件的 JSON 文件。必须将时间戳指定为自 1970 年 1 月 1 日 00:00:00 UTC 之后的毫秒数。

    [ { "timestamp": 1533854071310, "message": "VPC Connection Test" } ]

    然后使用 put-log-events 命令创建日志条目:

    aws logs put-log-events --log-group-name LogGroupName --log-stream-name LogStreamName --log-events file://JSONFileName

    如果对该命令的响应包含 nextSequenceToken,则该命令已成功执行,并且您的 VPC 终端节点正常运行。

控制对 CloudWatch Logs VPC 终端节点的访问

VPC 终端节点策略是一种 IAM 资源策略,您在创建或修改端点时可将它附加到端点。如果在创建端点时未附加策略,我们将为您附加默认策略以允许对服务进行完全访问。端点策略不会覆盖或替换 IAM 策略或服务特定的策略。这是一个单独的策略,用于控制从端点中对指定服务进行的访问。

端点策略必须采用 JSON 格式编写。

有关更多信息,请参阅《Amazon VPC 用户指南》中的使用 VPC 端点控制对服务的访问权限

下面是用于 CloudWatch Logs 的端点策略示例。该策略允许通过 VPC 连接到 CloudWatch Logs 的用户创建日志流并将日志发送到 CloudWatch Logs,并禁止他们执行其他 CloudWatch Logs 操作。

{ "Statement": [ { "Sid": "PutOnly", "Principal": "*", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Effect": "Allow", "Resource": "*" } ] }
修改 CloudWatch Logs 的 VPC 终端节点策略
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Endpoints(端点)

  3. 如果还没有为 CloudWatch Logs 创建端点,请选择 Create Endpoint(创建端点)。接下来,选择 com.amazonaws.Region.logs,然后选择 Create endpoint(创建端点)

  4. 选择 com.amazonaws.Region.logs 端点,然后在屏幕下半部分中选择 Policy(策略)选项卡。

  5. 选择 Edit Policy(编辑策略)并对策略进行更改。

对 VPC 上下文键的支持

CloudWatch Logs 支持可用于限制对特定 VPC 或特定 VPC 终端节点进行访问的 aws:SourceVpcaws:SourceVpce 上下文键。这些键仅当用户使用 VPC 终端节点时才起作用。有关更多信息,请参阅 IAM 用户指南中的可用于部分服务的键