步骤 1:创建 Kinesis Data Firehose 传输流 - Amazon CloudWatch Logs
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

步骤 1:创建 Kinesis Data Firehose 传输流

重要

在完成以下步骤之前,您必须使用访问策略,以便 Kinesis Data Firehose 可以访问您的 Amazon S3 存储桶。有关更多信息,请参阅 Amazon Kinesis Data Firehose 开发人员指南中的控制访问

本部分(步骤 1)中的所有步骤都需要在日志数据接收者账户中完成。

以下示例命令中使用的是美国东部(弗吉尼亚州北部)。请将此区域替换为适用于您的部署的正确区域。

创建将用作目标的 Kinesis Data Firehose 传输流
  1. 创建 Amazon S3 存储桶:

    aws s3api create-bucket --bucket firehose-test-bucket1 --create-bucket-configuration LocationConstraint=us-east-1
  2. 创建 IAM 角色,该角色将授予 Kinesis Data Firehose 将数据放入存储桶所需的权限。

    1. 首先,使用文本编辑器在文件 ~/TrustPolicyForFirehose.json 中创建信任策略。

      { "Statement": { "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId":"222222222222" } } } }
    2. 创建 IAM 角色,并指定您刚创建的信任策略文件。

      aws iam create-role \ --role-name FirehosetoS3Role \ --assume-role-policy-document file://~/TrustPolicyForFirehose.json
    3. 此命令的输出与以下内容类似。记下角色名称和角色 ARN。

      { "Role": { "Path": "/", "RoleName": "FirehosetoS3Role", "RoleId": "AROAR3BXASEKW7K635M53", "Arn": "arn:aws:iam::222222222222:role/FirehosetoS3Role", "CreateDate": "2021-02-02T07:53:10+00:00", "AssumeRolePolicyDocument": { "Statement": { "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "222222222222" } } } } } }
  3. 创建权限策略,以定义 Kinesis Data Firehose 可对您的账户执行的操作。

    1. 首先,使用文本编辑器在名为 ~/PermissionsForFirehose.json 的文件中创建以下权限策略。根据应用场景,您可能需要为此文件添加更多权限。

      { "Statement": [{ "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::firehose-test-bucket1", "arn:aws:s3:::firehose-test-bucket1/*" ] }] }
    2. 输入以下命令,以将刚创建的权限策略与 IAM 角色相关联。

      aws iam put-role-policy --role-name FirehosetoS3Role --policy-name Permissions-Policy-For-Firehose-To-S3 --policy-document file://~/PermissionsForFirehose.json
  4. 输入以下命令以创建 Kinesis Data Firehose 传输流。将 my-role-arnmy-bucket-arn 替换为正确的部署值。

    aws firehose create-delivery-stream \ --delivery-stream-name 'my-delivery-stream' \ --s3-destination-configuration \ '{"RoleARN": "arn:aws:iam::222222222222:role/FirehosetoS3Role", "BucketARN": "arn:aws:s3:::firehose-test-bucket1"}'

    该输出值应该类似于以下内容:

    { "DeliveryStreamARN": "arn:aws:firehose:us-east-1:222222222222:deliverystream/my-delivery-stream" }