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

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 IAMpolitique répertorie explicitement les actions autorisées et les ressources auxquelles ces actions sont applicables.

Les éléments suivants sont les autorisations minimales généralement nécessaires 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 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.
SubscribeToShard, RegisterStreamConsumer Flux de données Kinesis Abonne et enregistre les applications consommateurs dans une partition.
PutRecord, PutRecords Flux de données Kinesis Écrit 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, s’il est actif et si les partitions sont contenues dans le flux de données.
GetRecords, GetShardIterator Flux de données Kinesis Lit les enregistrements d'une partition.
CreateTable, DescribeTable, GetItem, PutItem, Scan, UpdateItem Table Amazon DynamoDB Si le client est développé à l'aide de la bibliothèque cliente Kinesis (KCL) (version 1.x ou 2.x), il doit avoir accès à une table DynamoDB pour suivre l'état de traitement de l'application.
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 KCLIl télécharge également les métriques vers CloudWatch, ce qui est utile pour surveiller l'application.

Dans le cadre de ce didacticiel, vous allez créer une IAM politique unique qui accorde toutes les autorisations précédentes. En production, vous pouvez créer deux stratégies, l'une pour les applications producteurs et l'autre pour les consommateurs.

Pour créer une stratégie IAM
  1. Recherchez le nom de ressource Amazon (ARN) pour le nouveau flux de données que vous avez créé à l'étape précédente. Vous pouvez le trouver ARN répertorié sous le nom Stream ARN en haut de l'onglet Détails. Le ARN format est le suivant :

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

    Le code de AWS 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 de données que vous avez créé à l'étape précédente, qui estStockTradeStream.

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

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

    La région et l'ID de compte sont identiques aux valeurs du flux ARN de données que vous utilisez pour ce didacticiel, mais le nom est le nom de la table DynamoDB créée et utilisée par l'application client. KCLutilise le nom de l'application comme nom de table. Lors de cette étape, utilisez StockTradesProcessor comme nom de table DynamoDB, car il s'agit du nom d'application utilisé dans les étapes ultérieures de ce tutoriel.

  3. Dans la IAM console, dans Policies (https://console.aws.amazon.com/iam/home #policies), choisissez Create policy. Si c'est la première fois que vous travaillez avec des IAM politiques, choisissez Get Started, Create Policy.

  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. Entrez le flux ARN de données que vous utilisez dans ce didacticiel.

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

    AWS Service Actions ARN
    Amazon DynamoDB CreateTable, DeleteItem, DescribeTable, GetItem, PutItem, Scan, UpdateItem Le ARN de la table DynamoDB que vous avez créée à l'étape 2 de cette procédure.
    Amazon CloudWatch PutMetricData *

    L'astérisque (*) utilisé pour spécifier un n'ARNest 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 qui en résulte doit ressembler à ceci :

{ "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 IAM console à l'adresse https://console.aws.amazon.com/iam/.

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

  3. Pour User name (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 politique que vous avez créée dans la procédure précédente (StockTradeStreamPolicy. 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
Pour associer une IAM politique à un utilisateur
  1. Dans la IAM console, ouvrez Policies et choisissez Policy Actions.

  2. Choisissez StockTradeStreamPolicy et Attacher.

  3. Choisissez StockTradeStreamUser et Attacher la stratégie.

Étapes suivantes

Téléchargez et compilez le code