我需要将来自 Amazon CloudWatch Logs 的日志数据发送到其他 AWS 区域的另一个 AWS 账户的 Amazon Kinesis 数据流。
要向不同 AWS 账户和区域中的 Amazon Kinesis 数据流传输 CloudWatch 日志事件,请设置通过订阅进行跨账户日志数据共享。然后,要指定 AWS 区域,请完成以下步骤:
使用 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
在此示例中,CloudWatch 在 us-east-1 区域登录,AWS 账户 ID 为 111111111111。然后,CloudWatch 在 us-west-2 中登录另一个 AWS 用户的 Kinesis 数据流,AWS 账户 ID 为 999999999999。
要检查 StreamDescription.StreamStatus 属性,请在使用 describe-stream 命令时指定 --region。以下命令示例会检查 us-west-2 中的流 YourStreamName:
$ kinesis describe-stream --stream-name "YourStreamName" --region us-west-2
要创建 CloudWatch Logs 目标,请使用 put-destination 命令。然后将 --role-arn 的 --region 设置为与源CloudWatch 日志相同的区域。在以下示例中,此命令在 us-east-1 的收件人账户 999999999999 中创建日志目标:
>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
在您的发件人账户中创建订阅筛选器。例如,AWS 账户 ID 为 999999999999。
(可选)要检查数据流是否工作,请验证日志事件流。
注意: 如果在运行 AWS 命令行界面 (AWS CLI) 命令时遇到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
角色术语和概念