Permissões do IAM necessárias para aplicativos de consumo da KCL - 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á.

Permissões do IAM necessárias para aplicativos de consumo da KCL

Você deve adicionar as permissões a seguir para o perfil do IAM ou o usuário associado à aplicação de consumo da KCL.

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ários no AWS. Uma Política do IAM lista explicitamente as ações permitidas e os recursos aos quais as ações são aplicáveis.

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

Permissões do IAM mínimas para aplicações de consumo da KCL
Serviço Ações Recursos (ARNs) Finalidade
Amazon Kinesis Data Streams

DescribeStream

DescribeStreamSummary

RegisterStreamConsumer

Fluxo de dados do Kinesis a partir do qual sua aplicação da KCL 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

Fluxo de dados do Kinesis a partir do qual sua aplicação da KCL processará os dados.

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

Lê registros de um fragmento.

Amazon Kinesis Data Streams

SubscribeToShard

DescribeStreamConsumer

Fluxo de dados do Kinesis a partir do qual sua aplicação da KCL processará os dados. Adicione essa ação somente se você usar consumidores de distribuição avançada (EFO).

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

Assina um fragmento para consumidores de distribuição avançada (EFO).

Amazon DynamoDB

CreateTable

DescribeTable

UpdateTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

Tabela de concessão (tabela de metadados no DynamoDB criada pela KCL).

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

Essas ações são necessárias para que a KCL gerencie a tabela de concessões criada no DynamoDB.

Amazon DynamoDB

CreateTable

DescribeTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

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

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

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

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

Amazon DynamoDB

Query

Índice secundário global na tabela de concessões.

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

Essa ação é necessária para que a KCL leia o índice secundário global da tabela de concessão 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" KCLApplication Nome” no por seu próprio Conta da AWS número Região da AWS, nome do ARNs stream de dados do Kinesis e nome do aplicativo KCL, respectivamente. A KCL 3.x cria mais duas tabelas de metadados no DynamoDB. Para obter detalhes sobre as tabelas de metadados do DynamoDB criadas pela KCL, consulte Tabelas de metadados do DynamoDB e balanceamento de carga na KCL. Se você usar as configurações para personalizar os nomes das tabelas de metadados criadas pela KCL, use esses nomes de tabela especificados em vez do nome da aplicação da KCL.

Um exemplo de documento de política para um aplicação de consumo da KCL é mostrado a seguir.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:RegisterStreamConsumer", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/STREAM_NAME" }, { "Effect": "Allow", "Action": [ "kinesis:SubscribeToShard", "kinesis:DescribeStreamConsumer" ], "Resource": "arn:aws:kinesis:us-east-1:123456789012: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:us-east-1:123456789012: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:us-east-1:123456789012:table/KCL_APPLICATION_NAME-WorkerMetricStats", "arn:aws:dynamodb:us-east-1:123456789012:table/KCL_APPLICATION_NAME-CoordinatorState" ] }, { "Effect": "Allow", "Action": [ "dynamodb:Query" ], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/KCL_APPLICATION_NAME/index/*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*" } ] }

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

  • Substitua REGION pela sua 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 fluxo de dados do Kinesis.

  • Substitua CONSUMER_NAME pelo nome do seu consumidor, normalmente o nome da sua aplicação ao usar a KCL.

  • Substitua KCL_APPLICATION_NAME pelo nome da aplicação da KCL.