使用基于资源的策略共享访问权限 - Amazon Kinesis Data Streams
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用基于资源的策略共享访问权限

注意

更新现有基于资源的策略意味着替换现有策略,因此新策略中务必要包含所有必要的信息。

使用跨账户 Amazon Lambda 功能共享访问权限

Lambda 运算符
  1. 前往 IAM 控制台创建一个 IAM 角色,该角色将用作您的 Amazon Lambda 函数的 Lambda 执行角色。添加具有所需的 Kinesis Data Streams 和 Lambda 调用权限的托管 IAM 策略AWSLambdaKinesisExecutionRole。此策略还将授予对您可能有权访问的所有潜在 Kinesis Data Streams 资源的访问权限。

  2. Amazon Lambda 控制台中,创建一个 Amazon Lambda 函数来处理 Kinesis Data Streams 数据流中的记录,并在设置执行角色的过程中,选择您在上一步中创建的角色。

  3. 向 Kinesis Data Streams 资源所有者提供执行角色,以用来配置资源策略。

  4. 完成 Lambda 函数设置。

Kinesis Data Streams 资源所有者
  1. 获取将调用该 Lambda 函数的跨账户 Lambda 执行角色。

  2. 在 Amazon Kinesis Data Streams 控制台上,选择该数据流。选择数据流共享选项卡,然后选择创建共享策略按钮以启动直观的策略编辑器。要共享数据流中的注册使用者,请选择该使用者,然后选择创建共享策略。您也可以直接编写 JSON 策略。

  3. 将跨账户 Lambda 执行角色指定为主体,并指定您要共享访问权限的具体 Kinesis Data Streams 操作。务必要包括 kinesis:DescribeStream 操作。有关 Kinesis Data Streams 资源策略示例的更多信息,请参阅 Kinesis Data Streams 基于资源的策略示例

  4. 选择创建策略或使用将策略附加PutResourcePolicy到您的资源。

与跨账户 KCL 使用者共享访问权限

  • 如果您使用的是 KCL 1.x,请务必使用 KCL 1.15.0 或更高版本。

  • 如果您使用的是 KCL 2.x,请务必使用 KCL 2.5.3 或更高版本。

KCL 运算符
  1. 向资源所有者提供将运行 KCL 应用程序的 IAM 用户或 IAM 角色。

  2. 要求资源所有者提供数据流或使用者 ARN。

  3. KCL 配置中务必要指定所提供的流 ARN。

    • 对于 KCL 1.x:使用KinesisClientLibConfiguration构造函数并提供流 ARN。

    • 对于 KCL 2.x:你可以只提供直播 ARN 或 Kinesis 客户端StreamTracker库。ConfigsBuilder对于 StreamTracker,请提供库生成的 DynamoDB 租赁表中的流 ARN 和创建 Epoch。如果您想从共享注册消费者(如增强型扇出)那里读取数据,请使用 StreamTracker 并提供消费者 ARN。

Kinesis Data Streams 资源所有者
  1. 获取将运行 KCL 应用程序的跨账户 IAM 用户或 IAM 角色。

  2. 在 Amazon Kinesis Data Streams 控制台上,选择该数据流。选择数据流共享选项卡,然后选择创建共享策略按钮以启动直观的策略编辑器。要共享数据流中的注册使用者,请选择该使用者,然后选择创建共享策略。您也可以直接编写 JSON 策略。

  3. 将跨账户 KCL 应用程序的 IAM 用户或 IAM 角色指定为主体,并指定您要共享访问权限的具体 Kinesis Data Streams 操作。有关 Kinesis Data Streams 资源策略示例的更多信息,请参阅 Kinesis Data Streams 基于资源的策略示例

  4. 选择创建策略或使用将策略附加PutResourcePolicy到您的资源。

共享对加密数据的访问权限

如果您已使用 Amazon 托管 KMS 密钥为数据流启用服务器端加密,并希望通过资源策略共享访问权限,则必须切换到使用客户托管密钥 (CMK)。有关更多信息,请参阅什么是 Kinesis Data Streams 的服务器端加密?。此外,您必须允许您的共享主体实体使用 KMS 跨账户共享功能来访问您的 CMK。此外还务必要对共享主体实体的 IAM policy 进行更改。有关更多信息,请参阅允许其他账户中的用户使用 KMS 密钥