View a markdown version of this page

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 grand public KCL.

Les meilleures pratiques de sécurité pour AWS dicter l'utilisation d'autorisations précises pour contrôler l'accès aux différentes ressources. Gestion des identités et des accès AWS (IAM) vous permet de gérer les utilisateurs et leurs autorisations 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 sur un fragment.

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 partage pour les consommateurs qui utilisent Enhanced Fan-out (EFO).

Amazon DynamoDB

CreateTable

DescribeTable

UpdateTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

Tableau des baux (table de métadonnées) dans DynamoDB créé par KCL.

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

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

Amazon DynamoDB

CreateTable

DescribeTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

ConditionCheckItem

Métriques des travailleurs et table d'état des coordinateurs (tables de métadonnées dans DynamoDB) créées par KCL.

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

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

Ces actions sont requises pour que KCL puisse gérer les métriques des travailleurs et les tables de métadonnées d'état des coordinateurs dans DynamoDB. La CoordinatorState table nécessite l'ConditionCheckItemaction pour prendre en charge les écritures conditionnelles utilisées lors de la migration d'une seule table.

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

*

Téléchargez des métriques CloudWatch qui sont utiles pour surveiller l'application. L'astérisque (*) est utilisé car il n'existe aucune ressource spécifique dans laquelle l'PutMetricDataaction est CloudWatch invoquée.

Note

Remplacez « région », « compte » et « StreamName KCLApplicationName » dans les ARN par votre propre Compte AWS numéro Région AWS, le 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 d'informations sur les tables de métadonnées DynamoDB créées par KCL, consultez. Tableaux 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 ces noms de table spécifiés au lieu du nom de l'application KCL.

Note

Une fois la migration des tables uniques vers KCL 3.5 terminée, les métriques de travail héritées et les tables d'état des coordinateurs doivent être supprimées manuellement.

Voici un exemple de document de politique pour une application grand public KCL.

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

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.