我需要将日志数据从 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)