通过 Amazon Data Firehose 控制台管理 IAM 角色 - Amazon Data Firehose
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

亚马逊 Data Firehose 以前被称为亚马逊 Kinesis Data Firehose

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

通过 Amazon Data Firehose 控制台管理 IAM 角色

Amazon Data Firehose 是一项完全托管的服务,可将实时流数据传输到目的地。您还可以将 Firehose 配置为在交付数据之前转换和转换数据的格式。要使用这些功能,您必须先提供 IAM 角色,以便在创建或编辑 Firehose 直播时向 Firehose 授予权限。Firehose 使用此 IAM 角色获取 Firehose 直播所需的所有权限。

例如,假设您创建了一个向 Amazon S3 传输数据的 Firehose 流,而此 Firehose 流在启用功能的情况下启用了 “转换源记录”。 Amazon Lambda 在这种情况下,您必须提供 IAM 角色才能向 Firehose 授予访问 S3 存储桶和调用 Lambda 函数的权限,如下所示。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "lambdaProcessing", "Effect": "Allow", "Action": ["lambda:InvokeFunction", "lambda:GetFunctionConfiguration"], "Resource": "arn:aws:lambda:us-east-1:<account id>:function:<lambda function name>:<lambda function version>" }, { "Sid": "s3Permissions", "Effect": "Allow", "Action": ["s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject"], "Resource": ["arn:aws:s3:::<bucket name>", "arn:aws:s3:::<bucket name>/*"] }] }

Firehose 控制台允许您选择如何提供这些角色。您可以从以下选项中进行选择。

选择现有的 IAM 角色

您可以从现有 IAM 角色中进行选择。使用此选项,请确保您选择的 IAM 角色具有适当的信任策略以及源和目标所需的权限。有关更多信息,请参阅 使用 Amazon Data Firehose 控制访问权限

从控制台创建新的 IAM 角色

或者,您也可以使用 Firehose 控制台代表您创建新角色。

当 Firehose 代表您创建 IAM 角色时,该角色会自动包含根据 Firehose 直播配置授予所需权限的所有权限和信任策略。

例如,如果您没有启用 “转换源记录” Amazon Lambda功能,则控制台会在权限策略中生成以下语句。

{ "Sid": "lambdaProcessing", "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": "arn:aws:lambda:us-east-1:<account id>:function:%FIREHOSE_POLICY_TEMPLATE_PLACEHOLDER%" }
注意

可以放心地忽略包含的策略声明,%FIREHOSE_POLICY_TEMPLATE_PLACEHOLDER%因为它们不授予对任何资源的权限。

控制台创建和编辑 Firehose 直播工作流程还会创建信任策略并将其附加到 IAM 角色。信任策略允许 Firehose 担任 IAM 角色。以下是信任策略的示例。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "firehoseAssume", "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole" }] }
重要
  • 您应避免为多个 Firehose 直播使用相同的控制台托管的 IAM 角色。否则,IAM 角色可能会变得过于宽松或导致错误。

  • 要在控制台托管的 IAM 角色的权限策略中使用不同的策略声明,您可以创建自己的 IAM 角色,并将策略声明复制到附加到新角色的权限策略中。要将角色附加到 Firehose 流,请在服务访问权限中选择选择现有 IAM 角色选项。

  • 控制台管理任何 ARN 中包含字符串服务角色的 IAM 角色。选择现有 IAM 角色选项时,请务必选择一个 ARN 中没有服务角色字符串的 IAM 角色,这样控制台就不会对其进行任何更改。

  1. 打开 Firehose 控制台,网址为 https://console.aws.amazon.com/firehose/。

  2. 选择创建 Firehose 直播

  3. 选择来源和目的地。有关更多信息,请参阅 创建 Firehose 直播

  4. 选择目的地设置。有关更多信息,请参阅 目标设置

  5. 高级设置下,对于服务访问权限,选择创建或更新 IAM 角色

    注意

    这是默认选项。要使用现有角色,请选择选择现有 IAM 角色选项。Firehose 主机不会对你自己的角色进行任何更改。

  6. 选择创建 Firehose 直播

从控制台编辑 IAM 角色

当您编辑 Firehose 直播时,Firehose 会相应地更新相应的权限策略以反映配置和权限的更改。

例如,当您编辑 Firehose 流并使用最新版本的 Lambda 函数启用转换源记录 Amazon Lambda功能时exampleLambdaFunction,权限策略中会显示以下策略声明。

{ "Sid": "lambdaProcessing", "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": "arn:aws:lambda:us-east-1:<account id>:function:exampleLambdaFunction:$LATEST" }
重要

控制台管理的 IAM 角色被设计为自主角色。我们不建议您在控制台之外修改权限策略或信任策略。

  1. 打开 Firehose 控制台,网址为 https://console.aws.amazon.com/firehose/。

  2. 选择 Firehose 直播并选择要更新的 Firehose 直播的名称。

  3. 配置选项卡的服务器访问权限部分,选择编辑

  4. 更新 IAM 角色选项。

    注意

    默认情况下,控制台始终更新 ARN 中包含模式服务角色的 IAM 角色。选择现有 IAM 角色选项时,请务必选择一个 ARN 中没有服务角色字符串的 IAM 角色,这样控制台就不会对其进行任何更改。

  5. 选择保存更改