Création d'une politique et d'un utilisateur IAM - 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.

Création d'une politique et d'un utilisateur IAM

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.

Voici les autorisations minimales généralement requises pour une application producteur et une application consommateur Kinesis Data Streams.

Producer
Actions Ressource Objectif
DescribeStream, DescribeStreamSummary, DescribeStreamConsumer Flux de données Kinesis Avant d'essayer d'écrire des enregistrements, le producteur vérifie que le flux existe et est actif, les fragments sont contenus dans le flux et le flux a un consommateur.
SubscribeToShard, RegisterStreamConsumer Flux de données Kinesis Abonner et enregistrer un consommateur à une partition de flux de données Kinesis.
PutRecord, PutRecords Flux de données Kinesis Écrire des enregistrements dans Kinesis Data Streams.
Consommateur
Actions Ressource Objectif
DescribeStream Flux de données Kinesis Avant d'essayer de lire les enregistrements, l'application consommateur vérifie si le flux existe et est actif et si les partitions sont contenues dans le flux.
GetRecords, GetShardIterator Flux de données Kinesis Lire les enregistrements à partir d'une partition Kinesis Data Streams.
CreateTable, DescribeTable, GetItem, PutItem, Scan, UpdateItem Table Amazon DynamoDB Si l'application consommateur est développée à l'aide de Kinesis Client Library (KCL), elle a besoin d'autorisations d'accès à une table DynamoDB pour suivre l'état de traitement de l'application. La première application producteur démarrée crée la table.
DeleteItem Table Amazon DynamoDB Pour les moments où le consommateur effectue des opérations de fractionnement/fusion sur les partitions Kinesis Data Streams.
PutMetricData CloudWatch Journal Amazon La KCL télécharge également des métriques vers CloudWatch, ce qui est utile pour surveiller l'application.

Pour cette application, vous créez une politique IAM ponctuelle qui accorde toutes les autorisations précédentes. En pratique, vous pouvez envisager de créer deux stratégies, une pour les applications producteur et une pour les applications consommateur.

Pour créer une stratégie IAM
  1. Recherchez l'Amazon Resource Name (ARN) pour le nouveau flux. Vous pouvez trouver cet ARN répertorié comme ARN du flux en haut de l'onglet Détails. Le format ARN est le suivant :

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

    Le code de la région, par exemple, us-west-2. Pour de plus amples informations, veuillez consulter Concepts de régions et de zones de disponibilité.

    compte

    L'identifiant du AWS compte, comme indiqué dans les paramètres du compte.

    name

    Le nom du flux indiqué dans Création d'un flux de données, qui est StockTradeStream.

  2. Déterminez l'ARN de la table DynamoDB à utiliser par l'application consommateur (et créée par la première instance de l'application consommateur). Il doit être au format suivant :

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

    La région et le compte proviennent du même endroit qu'à l'étape précédente, mais cette fois le nom est le nom de la table créée et utilisée par l'application consommateur. La KCL utilisée par l'application consommateur utilise le nom de l'application comme nom de table. Utilisez StockTradesProcessor, qui est le nom d'application utilisé plus tard.

  3. Dans la console IAM, dans Policies (https://console.aws.amazon.com/iam/home #policies), choisissez Create policy. Si c'est la première fois que vous utilisez des politiques IAM, choisissez Mise en route, Création d'une politique.

  4. Choisissez Sélectionner à côté de Policy Generator (Générateur de stratégies).

  5. Choisissez Amazon Kinesis comme service. AWS

  6. Sélectionnez DescribeStream, GetShardIterator, GetRecords, PutRecord et PutRecords comme actions autorisées.

  7. Indiquez l'ARN que vous avez créé à l'étape 1.

  8. Utilisez Ajouter une instruction pour chacune des propositions suivantes :

    AWS Service Actions ARN
    Amazon DynamoDB CreateTable, DeleteItem, DescribeTable, GetItem, PutItem, Scan, UpdateItem L'ARN que vous avez créé à l'étape 2
    Amazon CloudWatch PutMetricData *

    L'astérisque (*) est utilisé pour spécifier que l'ARN n'est pas obligatoire. Dans ce cas, c'est parce qu'il n'existe aucune ressource spécifique CloudWatch sur laquelle l'PutMetricDataaction est invoquée.

  9. Choisissez Étape suivante.

  10. Remplacez le Nom de la stratégie par StockTradeStreamPolicy, vérifiez le code et choisissez Create Policy (Créer stratégie).

Le document de stratégie obtenu doit ressembler à ce qui suit :

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt123", "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:PutRecord", "kinesis:PutRecords", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards", "kinesis:DescribeStreamSummary", "kinesis:RegisterStreamConsumer" ], "Resource": [ "arn:aws:kinesis:us-west-2:123:stream/StockTradeStream" ] }, { "Sid": "Stmt234", "Effect": "Allow", "Action": [ "kinesis:SubscribeToShard", "kinesis:DescribeStreamConsumer" ], "Resource": [ "arn:aws:kinesis:us-west-2:123:stream/StockTradeStream/*" ] }, { "Sid": "Stmt456", "Effect": "Allow", "Action": [ "dynamodb:*" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123:table/StockTradesProcessor" ] }, { "Sid": "Stmt789", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": [ "*" ] } ] }
Pour créer un utilisateur IAM
  1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Sur la page Users (Utilisateurs), choisissez Add user (Ajouter un utilisateur).

  3. Pour Nom d’utilisateur, saisissez StockTradeStreamUser.

  4. Pour Access type (Type d'accès), choisissez Programmatic access (Accès programmatique), puis Next: Permissions (Suivant : permissions).

  5. Choisissez Attach existing policies directly (Attacher directement les politiques existantes).

  6. Recherchez par nom la stratégie que vous avez créée. Cochez la case à gauche du nom de la stratégie, puis choisissez Next: Review (Suivant : réviser).

  7. Vérifiez les détails et le récapitulatif, puis choisissez Create user (Créer utilisateur).

  8. Copiez l'ID de clé d'accès et enregistrez-le en privé. Sous Clé d'accès secrète, choisissez Afficher et enregistrez également cette clé en privé.

  9. Collez les clés d'accès et secrètes dans un fichier local dans un emplacement sûr auquel vous êtes le seul à pouvoir accéder. Pour cette application, créez un fichier nommé ~/.aws/credentials (avec des autorisations strictes). Le fichier doit être au format suivant :

    [default] aws_access_key_id=access key aws_secret_access_key=secret access key
Attribution d'une politique IAM à un utilisateur
  1. Dans la console IAM, ouvrez Politiques et choisissez Actions de politique.

  2. Choisissez StockTradeStreamPolicy et Attacher.

  3. Choisissez StockTradeStreamUser et Attacher la stratégie.

Étapes suivantes

Téléchargez et compilez le code d'implémentation