Autorisations IAM requises pour les applications grand public KCL - Amazon Kinesis Data Streams

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Autorisations IAM requises pour les applications grand public KCL

Vous devez ajouter les autorisations suivantes au rôle ou à l'utilisateur IAM associé à votre application client KCL.

Les meilleures pratiques de sécurité AWS dictent l'utilisation d'autorisations détaillées pour contrôler l'accès aux différentes ressources. AWS Identity and Access Management (IAM) vous permet de gérer les utilisateurs et les autorisations des utilisateurs dans AWS. Une stratégie IAM répertorie explicitement les actions autorisées et les ressources sur lesquelles les actions sont applicables.

Le tableau suivant indique les autorisations IAM minimales généralement requises pour les applications grand public KCL :

Autorisations IAM minimales pour les applications grand public KCL
Service Actions Ressources (ARNs) Objectif
Amazon Kinesis Data Streams

DescribeStream

DescribeStreamSummary

RegisterStreamConsumer

Flux de données Kinesis à partir duquel votre application KCL traitera les données.

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

Avant d'essayer de lire les enregistrements, l'application consommateur vérifie si le flux existe, s’il est actif et si les partitions sont contenues dans le flux de données.

Enregistre les consommateurs dans un shard.

Amazon Kinesis Data Streams

GetRecords

GetShardIterator

ListShards

Flux de données Kinesis à partir duquel votre application KCL traitera les données.

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

Lit les enregistrements d'une partition.

Amazon Kinesis Data Streams

SubscribeToShard

DescribeStreamConsumer

Flux de données Kinesis à partir duquel votre application KCL traitera les données. Ajoutez cette action uniquement si vous utilisez des consommateurs EFO (Enhanced Fan-Out).

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

S'abonne à un shard pour les consommateurs bénéficiant d'un système EFO (Enhanced Fan-Out).

Amazon DynamoDB

CreateTable

DescribeTable

UpdateTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

Table de location (table de métadonnées dans DynamoDB) créée par KCL.

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

Ces actions sont nécessaires pour que KCL puisse gérer la table des baux créée dans DynamoDB.

Amazon DynamoDB

CreateTable

DescribeTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

Indicateurs de travail et table d'état des coordinateurs (tables de métadonnées dans DynamoDB) créés par KCL.

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

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

Ces actions sont nécessaires pour que KCL puisse gérer les métriques de travail et les tables de métadonnées d'état des coordinateurs dans DynamoDB.

Amazon DynamoDB

Query

Indice secondaire mondial sur le tableau des baux.

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

Cette action est requise pour que KCL puisse lire l'index secondaire global de la table des baux créée dans DynamoDB.

Amazon CloudWatch

PutMetricData

*

Vous pouvez y télécharger CloudWatch des métriques utiles pour surveiller l'application. L'astérisque (*) est utilisé car il n'existe aucune ressource spécifique CloudWatch sur laquelle l'PutMetricDataaction est invoquée.

Note

Remplacez « région », « compte »StreamName, » et « KCLApplication nom » par votre propre Compte AWS numéro Région AWS, le ARNs nom du flux de données Kinesis et le nom de l'application KCL respectivement. KCL 3.x crée deux autres tables de métadonnées dans DynamoDB. Pour plus de détails sur les tables de métadonnées DynamoDB créées par KCL, consultez. Tables de métadonnées DynamoDB et équilibrage de charge dans KCL Si vous utilisez des configurations pour personnaliser les noms des tables de métadonnées créées par KCL, utilisez les noms de table spécifiés au lieu du nom de l'application KCL.

Voici un exemple de document de politique pour une application client 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": "*" } ] }

Avant d'utiliser cet exemple de politique, vérifiez les points suivants :

  • Remplacez REGION par votre Région AWS (par exemple, us-east-1).

  • Remplacez ACCOUNT_ID par votre Compte AWS identifiant.

  • Remplacez STREAM_NAME par le nom de votre flux de données Kinesis.

  • Remplacez CONSUMER_NAME par le nom de votre consommateur, généralement le nom de votre application lorsque vous utilisez KCL.

  • Remplacez KCL_APPLICATION_NAME par le nom de votre application KCL.