如何通过跨账户 Kinesis 流调用 Lambda 函数?

1 分钟阅读
0

我想通过另一个 AWS 账户中的 Amazon Kinesis 流调用 AWS Lambda 函数。

解决方法

Amazon Kinesis Data Streams 支持基于资源的策略。可以在一个账户中使用另一个账户的 AWS Lambda 函数处理采集到流中的数据。

按照以下步骤创建 Lambda 函数,然后将其配置为访问您的 Kinesis Data Stream。

创建 Lambda 执行角色

  1. 访问 IAM 控制台并选择角色选项卡。
  2. 选择创建角色
  3. 对于 AWS 服务,选择可信实体类型。对于服务,选择 Lambda
  4. 权限策略表中,选择已托管的 IAM 策略 AWSLambdaKinesisExecutionRole
  5. 为角色命名,然后选择创建角色

注意: 托管 IAM 策略 AWSLambdaKinesisExecutionRole 具有所需的 Kinesis Data Streams 和 Lambda 调用权限。还会授予所有潜在 Kinesis Data Streams 资源的访问权限。

创建 Lambda 函数

创建 AWS Lambda 函数,用于处理 Amazon Kinesis 数据流中的记录

对于执行角色,选择已创建的角色。

注意: 此策略具有所需的 Kinesis Data Streams 和 Lambda 调用权限。还会授予所有潜在 Kinesis Data Streams 资源的访问权限。
向 Kinesis Data Streams 资源所有者添加执行角色以配置资源策略。

配置 Kinesis Data Stream

  1. 访问 Amazon Kinesis Data Streams 控制台,然后选择您的数据流。
  2. 选择数据流共享选项卡。
  3. 选择创建策略按钮,启动可视化策略编辑器。
  4. 增强型扇出选项卡中选择消费者,在数据流中共享注册消费者。
  5. 选择创建策略。也可以直接编写 JSON 策略。
  6. 对于主体,输入创建的跨账户 Lambda 执行角色。请务必包含 kinesis:DescribeStream 这个操作。
    有关 Kinesis Data Streams 的资源策略示例,请参阅 Kinesis Data Streams 基于资源的策略示例
  7. 选择创建策略。或者,使用 PutResourcePolicy 将策略附加到您的资源。

如果使用带 AWS 托管式密钥的服务器端加密,并希望通过资源策略共享访问权限,则必须使用客户自主管理型密钥(AWS KMS 密钥)。有关更多信息,请参阅什么是 Kinesis Data Streams 服务器端加密?此外,必须允许共享主体实体通过 KMS 跨账户存取访问您的 KMS 密钥。有关详细信息,请参阅允许另一账户的用户使用 KMS 密钥

AWS 官方
AWS 官方已更新 2 个月前