KCL 消费端应用程序所必需的 IAM 权限
必须向与 KCL 消费端应用程序有关的 IAM 角色或用户添加以下权限。
Amazon 的安全最佳实践描述了如何使用精细权限来控制对各种资源的访问。Amazon Identity and Access Management通过 IAM,您可以管理 Amazon 中的用户和用户权限。IAM policy 明确列出了允许的操作以及这些操作适用于的资源。
下表显示了 KCL 消费端应用程序通常需要的最低 IAM 权限:
| 服务 | 操作 | 资源 (ARN) | 用途 |
|---|---|---|---|
| Amazon Kinesis Data Streams |
|
KCL 应用程序从中处理数据的 Kinesis 数据流。
|
在尝试读取记录前,消费端会检查数据流是否存在,数据流是否处于活动状态,以及分片是否包含在数据流中。 将消费端注册到分片。 |
| Amazon Kinesis Data Streams |
|
KCL 应用程序从中处理数据的 Kinesis 数据流。
|
从分片读取记录。 |
| Amazon Kinesis Data Streams |
|
KCL 应用程序从中处理数据的 Kinesis 数据流。只有在使用增强扇出型 (EFO) 消费端时才添加此操作。
|
为增强型扇出 (EFO) 消费端订阅分片。 |
| Amazon DynamoDB |
|
租约表(KCL 创建的 DynamoDB 中的元数据表)。
|
KCL 需要执行这些操作才能管理 DynamoDB 中创建的租约表。 |
| Amazon DynamoDB |
|
KCL 创建的工作程序指标和协调器状态表(DynamoDB 中的元数据表)。
|
KCL 需要这些操作才能管理 DynamoDB 中的工作程序指标和协调器状态元数据表。 |
| Amazon DynamoDB |
|
租约表上的全局二级索引。
|
KCL 需要执行此操作才能读取 DynamoDB 中创建的租约表的全局二级索引。 |
| Amazon CloudWatch |
|
* |
将有益于监控应用程序的指标上传到 CloudWatch。之所以使用星号 (*),是因为 CloudWatch 中没有调用 |
注意
将 ARN 中的“region”、“account”、“StreamName” 和 “kclApplicationName”分别替换为您自己的 Amazon Web Services 区域、Amazon Web Services 账户 编号、Kinesis 数据流名称和 KCL 应用程序的名称。KCL 3.x 在 DynamoDB 中又创建了两个元数据表。有关 KCL 创建的 DynamoDB 元数据表的详细信息,请参阅KCL 中的 DynamoDB 元数据表和负载平衡。如果使用配置来自定义 KCL 创建的元数据表的名称,请使用这些指定的表名称而不是 KCL 应用程序名称。
下面是 KCL 消费端应用程序的策略文档示例。
在使用该策略示例之前,检查以下项:
-
将 REGION 替换为您的 Amazon Web Services 区域(例如,us-east-1)。
-
将 ACCOUNT_ID 替换为您的 Amazon Web Services 账户 ID。
-
将 STREAM_NAME 替换为 Kinesis 数据流的名称。
-
使用 KCL 时,请将 CONSUMER_NAME 替换为消费端的名称,这通常是应用程序的名称。
-
将 KCL_APPLICATION_NAME 替换为 KCL 应用程序的名称。