IAMpermissões necessárias para aplicativos de KCL consumo - Amazon Kinesis Data Streams

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

IAMpermissões necessárias para aplicativos de KCL consumo

Você deve adicionar as seguintes permissões à IAM função ou ao usuário associado ao seu aplicativo KCL consumidor.

Práticas recomendadas de segurança para AWS ditar o uso de permissões refinadas para controlar o acesso a diferentes recursos. AWS Identity and Access Management (IAM) permite gerenciar usuários e permissões de usuário no AWS. Uma IAM política lista explicitamente as ações que são permitidas e os recursos aos quais as ações são aplicáveis.

A tabela a seguir mostra as IAM permissões mínimas geralmente necessárias para aplicativos de KCL consumo:

IAMPermissões mínimas para aplicativos de KCL consumo
Serviço Ações Recursos (ARNs) Finalidade
Amazon Kinesis Data Streams

DescribeStream

DescribeStreamSummary

RegisterStreamConsumer

Stream de dados do Kinesis a partir do qual seu KCL aplicativo processará os dados.

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

Antes de tentar ler registros, o consumidor verifica se o fluxo de dados existe, se está ativo e se os fragmentos estão contidos no fluxo de dados.

Registra os consumidores em um fragmento.

Amazon Kinesis Data Streams

GetRecords

GetShardIterator

ListShards

Stream de dados do Kinesis a partir do qual seu KCL aplicativo processará os dados.

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

Lê registros de um fragmento.

Amazon Kinesis Data Streams

SubscribeToShard

DescribeStreamConsumer

Stream de dados do Kinesis a partir do qual seu KCL aplicativo processará os dados. Adicione essa ação somente se você usar consumidores aprimorados de fan-out (EFO).

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

Assina um fragmento para consumidores aprimorados de fan-out (). EFO

Amazon DynamoDB

CreateTable

DescribeTable

UpdateTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

Tabela de lease (tabela de metadados no DynamoDB criada por. KCL

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

Essas ações são necessárias para gerenciar KCL a tabela de leasing criada no DynamoDB.

Amazon DynamoDB

CreateTable

DescribeTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

Métricas do trabalhador e tabela de estados do coordenador (tabelas de metadados no DynamoDB) criada por. KCL

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

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

Essas ações são necessárias KCL para gerenciar as métricas do trabalhador e as tabelas de metadados do estado do coordenador no DynamoDB.

Amazon DynamoDB

Query

Índice secundário global na tabela de locação.

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

Essa ação é necessária KCL para ler o índice secundário global da tabela de leasing criada no DynamoDB.

Amazon CloudWatch

PutMetricData

*

Faça upload de métricas CloudWatch que sejam úteis para monitorar o aplicativo. O asterisco (*) é usado porque não há nenhum recurso específico CloudWatch no qual a PutMetricData ação seja invocada.

nota

Substitua “região”, “conta”StreamName, "” e "KCLApplicationName" no pelo ARNs seu próprio Conta da AWS número Região da AWS, nome do stream de dados do Kinesis e nome do KCL aplicativo, respectivamente. KCL3.x cria mais duas tabelas de metadados no DynamoDB. Para obter detalhes sobre as tabelas de metadados do DynamoDB criadas por, consulte. KCL Tabelas de metadados do DynamoDB e balanceamento de carga no KCL Se você usar configurações para personalizar os nomes das tabelas de metadados criadas peloKCL, use esses nomes de tabela especificados em vez do nome do KCL aplicativo.

Veja a seguir um exemplo de documento de política para um aplicativo de KCL consumidor.

{ "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": "*" } ] }

Antes de usar esse exemplo de política, verifique os seguintes itens:

  • REGIONSubstitua pelo seu Região da AWS (por exemplo, us-east-1).

  • Substitua ACCOUNT _ID pelo seu Conta da AWS ID.

  • Substitua STREAM _ NAME pelo nome do seu stream de dados do Kinesis.

  • Substitua CONSUMER _ NAME pelo nome do seu consumidor, normalmente o nome do seu aplicativo ao usarKCL.

  • Substitua KCL APPLICATION _ _ NAME pelo nome do seu KCL aplicativo.