IAM使用KCL者应用程序所需的权限 - Amazon Kinesis Data Streams
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

IAM使用KCL者应用程序所需的权限

您必须向与您的KCL使用者应用程序关联的IAM角色或用户添加以下权限。

的安全最佳实践 Amazon 要求使用细粒度的权限来控制对不同资源的访问权限。 Amazon Identity and Access Management (IAM) 允许您在中管理用户和用户权限 Amazon。IAM策略明确列出了允许的操作以及这些操作适用的资源。

下表显示了使用KCL者应用程序通常需要的最低IAM权限:

KCL消费者应用程序的最低IAM权限
服务 操作 资源 (ARNs) 用途
Amazon Kinesis Data Streams

DescribeStream

DescribeStreamSummary

RegisterStreamConsumer

您的KCL应用程序将从中处理数据的 Kinesis 数据流。

arn:aws:kinesis:region:account:stream/StreamName

在尝试读取记录前,消费端会检查数据流是否存在,数据流是否处于活动状态,以及分片是否包含在数据流中。

将消费者注册到分片。

Amazon Kinesis Data Streams

GetRecords

GetShardIterator

ListShards

您的KCL应用程序将从中处理数据的 Kinesis 数据流。

arn:aws:kinesis:region:account:stream/StreamName

从分片读取记录。

Amazon Kinesis Data Streams

SubscribeToShard

DescribeStreamConsumer

您的KCL应用程序将从中处理数据的 Kinesis 数据流。只有在使用增强型扇出 (EFO) 使用者时才添加此操作。

arn:aws:kinesis:region:account:stream/StreamName/consumer/*

为增强型扇出 () 消费者订阅分片。EFO

Amazon DynamoDB

CreateTable

DescribeTable

UpdateTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

租用表(由 DynamoDB 中创建的元数据表)。KCL

arn:aws:dynamodb:region:account:table/KCLApplicationName

这些操作是管理在 Dynam KCL oDB 中创建的租用表所必需的。

Amazon DynamoDB

CreateTable

DescribeTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

由创建的工作器指标和协调器状态表(DynamoDB 中的元数据表)。KCL

arn:aws:dynamodb:region:account:table/KCLApplicationName-WorkerMetricStats

arn:aws:dynamodb:region:account:table/KCLApplicationName-CoordinatorState

这些操作是管理 Dynamo KCL DB 中的工作人员指标和协调器状态元数据表所必需的。

Amazon DynamoDB

Query

租赁表上的全局二级索引。

arn:aws:dynamodb:region:account:table/KCLApplicationName/index/*

读取在 DynamoDB 中创建的租用表的全局二级索引需要执行此操作。KCL

Amazon CloudWatch

PutMetricData

*

上传指标对于监控应用程序非常有用。 CloudWatch 之所以使用星号 (*),是因为没有用于调用PutMetricData操作 CloudWatch 的特定资源。

注意

将中的 “区域”、“账户” StreamName、“” 和 “” KCLApplicationName 分别替换为您自己的 Amazon Web Services 账户 号码 Amazon Web Services 区域、Kinesis 数据流名称和KCL应用程序名称。ARNs KCL3.x 在 DynamoDB 中又创建了两个元数据表。有关由创建KCL的 DynamoDB 元数据表的详细信息,请参阅。DynamoDB 元数据表和中的负载平衡 KCL如果您使用配置来自定义由创建的元数据表的名称KCL,请使用这些指定的表名而不是KCL应用程序名称。

以下是KCL消费者应用程序的策略文档示例。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:RegisterStreamConsumer", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:REGION:ACCOUNT_ID:stream/STREAM_NAME" }, { "Effect": "Allow", "Action": [ "kinesis:SubscribeToShard", "kinesis:DescribeStreamConsumer" ], "Resource": "arn:aws:kinesis:REGION:ACCOUNT_ID:stream/STREAM_NAME/consumer/*" }, { "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable", "dynamodb:GetItem", "dynamodb:UpdateItem", "dynamodb:PutItem", "dynamodb:DeleteItem", "dynamodb:Scan" ], "Resource": [ "arn:aws:dynamodb:REGION:ACCOUNT_ID:table/KCL_APPLICATION_NAME" ] }, { "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:UpdateItem", "dynamodb:PutItem", "dynamodb:DeleteItem", "dynamodb:Scan" ], "Resource": [ "arn:aws:dynamodb:REGION:ACCOUNT_ID:table/KCL_APPLICATION_NAME-WorkerMetricStats", "arn:aws:dynamodb:REGION:ACCOUNT_ID:table/KCL_APPLICATION_NAME-CoordinatorState" ] }, { "Effect": "Allow", "Action": [ "dynamodb:Query" ], "Resource": [ "arn:aws:dynamodb:REGION:ACCOUNT_ID:table/KCL_APPLICATION_NAME/index/*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*" } ] }

在使用此示例策略之前,请检查以下各项:

  • REGION替换为你的 Amazon Web Services 区域 (例如 us-east-1)。

  • 将 ACCOUNT _ID 替换为您的 Amazon Web Services 账户 ID。

  • 将 STREAM _ NAME 替换为您的 Kinesis 数据流的名称。

  • 将 CONSUMER _ NAME 替换为使用者的名称,通常是使用时的应用程序名称KCL。

  • 将 KCL APPLICATION _ NAME 替换为KCL应用程序的名称。