IAMpermisos necesarios para las aplicaciones de consumo KCL - Amazon Kinesis Data Streams

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

IAMpermisos necesarios para las aplicaciones de consumo KCL

Debe agregar los siguientes permisos al IAM rol o usuario asociado a su aplicación de KCL consumidor.

Las mejores prácticas de seguridad para AWS dictar el uso de permisos detallados para controlar el acceso a los diferentes recursos. AWS Identity and Access Management (IAM) le permite administrar los usuarios y los permisos de los usuarios. AWS Una IAM política enumera explícitamente las acciones que están permitidas y los recursos a los que se aplican las acciones.

En la siguiente tabla se muestran los IAM permisos mínimos que generalmente se requieren para las aplicaciones de KCL consumo:

IAMPermisos mínimos para aplicaciones KCL de consumo
Servicio Acciones Recursos (ARNs) Finalidad
Amazon Kinesis Data Streams

DescribeStream

DescribeStreamSummary

RegisterStreamConsumer

Transmisión de datos de Kinesis desde la que KCL la aplicación procesará los datos.

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

Antes de intentar leer registros, el consumidor comprueba si la secuencia de datos existe y si está activa, y si los fragmentos se encuentran en la secuencia de datos.

Registra a los consumidores en un fragmento.

Amazon Kinesis Data Streams

GetRecords

GetShardIterator

ListShards

Transmisión de datos de Kinesis desde la que KCL la aplicación procesará los datos.

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

Lee registros de un fragmento.

Amazon Kinesis Data Streams

SubscribeToShard

DescribeStreamConsumer

Transmisión de datos de Kinesis desde la que KCL la aplicación procesará los datos. Añada esta acción solo si utiliza consumidores con distribución mejorada (EFO).

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

Se suscribe a un fragmento para los consumidores con mayor capacidad de distribución (). EFO

Amazon DynamoDB

CreateTable

DescribeTable

UpdateTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

Tabla de arrendamiento (tabla de metadatos en DynamoDB creada por. KCL

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

Estas acciones son necesarias KCL para administrar la tabla de arrendamientos creada en DynamoDB.

Amazon DynamoDB

CreateTable

DescribeTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

Tabla de métricas de los trabajadores y estado del coordinador (tablas de metadatos en DynamoDB) creada por. KCL

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

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

Estas acciones son necesarias para KCL administrar las métricas de los trabajadores y las tablas de metadatos del estado del coordinador en DynamoDB.

Amazon DynamoDB

Query

Índice secundario global en la tabla de arrendamientos.

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

Esta acción es necesaria KCL para leer el índice secundario global de la tabla de arrendamiento creada en DynamoDB.

Amazon CloudWatch

PutMetricData

*

Sube métricas CloudWatch que sean útiles para monitorear la aplicación. El asterisco (*) se utiliza porque no hay ningún recurso específico CloudWatch en el que se invoque la PutMetricData acción.

nota

Sustituya «región», «cuenta» StreamName y «» por su propio Cuenta de AWS número Región de AWS, nombre de la ARNs transmisión de datos de Kinesis y nombre de la KCL aplicación, respectivamente. KCLApplicationName KCL3.x crea dos tablas de metadatos más en DynamoDB. Para obtener más información sobre las tablas de metadatos de DynamoDB creadas KCL por, consulte. Tablas de metadatos de DynamoDB y equilibrio de carga en KCL Si utiliza configuraciones para personalizar los nombres de las tablas de metadatos creadas porKCL, utilice los nombres de tabla especificados en lugar del nombre de la KCL aplicación.

El siguiente es un ejemplo de documento de política para una aplicación de KCL consumo.

{ "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 este ejemplo de política, compruebe lo siguiente:

  • REGIONReemplácelo por su Región de AWS (por ejemplo, us-east-1).

  • Sustituya ACCOUNT _ID por su ID. Cuenta de AWS

  • Sustituya STREAM _ NAME por el nombre de la transmisión de datos de Kinesis.

  • Sustituya CONSUMER _ NAME por el nombre de su consumidor, normalmente el nombre de la aplicación cuando la utiliceKCL.

  • Sustituya KCL APPLICATION _ _ NAME por el nombre de KCL la aplicación.