如何将日志数据从 CloudWatch Logs 流式传输到跨区域和跨账户的 Kinesis 数据流?

1 分钟阅读
0

我需要将日志数据从 Amazon CloudWatch Logs 发送到其他 AWS 区域内的另一个 AWS 账户的 Amazon Kinesis 数据流。我该如何操作?

解决方法

如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请确保您运行的是最新版本的 AWS CLI

**重要提示:**要将 CloudWatch 日志事件传送到其他 AWS 账户和区域中的 Kinesis 数据流,请设置与订阅的跨账户日志数据共享,同时指定 AWS 区域,如下所示。

在此示例中,us-east-1 区域中的 CloudWatch 日志将传送到 us-west-2 中的另一个 AWS 用户的 Kinesis 数据流。

1.    使用 AWS Identity and Access Management (IAM) 角色和信任策略在数据接收者账户的 Kinesis 中创建目标数据流

使用 create-stream 命令创建数据流时,请指定 --region。例如,以下命令将在 us-west-2 中创建数据流 YourStreamName

>aws kinesis create-stream --stream-name "YourStreamName" --shard-count 1 --region us-west-2

使用 describe-stream 命令检查 StreamDescription.StreamStatus 属性时,请指定 --region。例如,以下命令将在 us-west-2 中检查流 YourStreamName

>aws kinesis describe-stream --stream-name "YourStreamName" --region us-west-2

使用 put-destination 命令创建 CloudWatch Logs 目标时,请将 --role-arn--region 设置为与源 CloudWatch Logs 相同的 AWS 区域。例如,以下命令将在 us-east-1 中的接收者账户 (222222222222) 中创建日志目标:

>aws logs put-destination \
    --destination-name "testDestination" \
    --target-arn "arn:aws:kinesis:us-west-2:222222222222:stream/YourStreamName" \  
    --role-arn "arn:aws:iam::222222222222:role/YourIAMRoleName" --region us-east-1

2.    在您的账户中创建订阅筛选器

3.    (可选)通过验证日志事件流来检查数据流是否正常工作。


相关信息

角色术语和概念 (IAM)

AWS 官方
AWS 官方已更新 2 年前