

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
<a name="tutorial-stock-data-kplkcl2-iam"></a>

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. Gestion des identités et des accès AWS (IAM) vous permet de gérer les utilisateurs et les autorisations des utilisateurs dans AWS. Une [stratégie IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html) répertorie explicitement les actions autorisées et les ressources sur lesquelles les 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 l'application consommateur est développée à l'aide de Kinesis Client Library (KCL), version 1.x ou 2.x, elle a besoin d'autorisations d'accès à une table DynamoDB pour suivre l'état de traitement de l'application. | 
| DeleteItem | Table Amazon DynamoDB | Lorsque le consommateur effectue des split/merge opérations sur des 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. | 

Dans le cadre de ce didacticiel, vous allez créer une politique IAM 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) du nouveau flux de données que vous avez créé à l'étape précédente. 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 AWS région ; par exemple,`us-west-2`. Pour de plus amples informations, veuillez consulter [Concepts de régions et de zones de disponibilité](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-regions-availability-zones).  
*compte*  
L'identifiant du AWS compte, comme indiqué dans les [paramètres du compte](https://console.aws.amazon.com/billing/home?#/account).  
*name*  
Le nom du flux de données que vous avez créé à l'étape précédente, qui est`StockTradeStream`.

1. 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 l'ID de compte sont identiques aux valeurs de l'ARN du flux 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. KCL utilise 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.

1. Dans la console IAM, dans **Policies** ([https://console.aws.amazon.com/iam/home \#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**.

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

1. Choisissez **Amazon Kinesis** comme service. AWS 

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

1. Entrez l'ARN du flux de données que vous utilisez dans ce didacticiel.

1. Utilisez **Ajouter une instruction** pour chacune des propositions suivantes :    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/streams/latest/dev/tutorial-stock-data-kplkcl2-iam.html)

   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'`PutMetricData`action est invoquée.

1. Choisissez **Étape suivante**.

1. 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 :

------
#### [ JSON ]

****  

```
{
    "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:{{111122223333}}:stream/StockTradeStream"
            ]
        },
        {
            "Sid": "Stmt234",
            "Effect": "Allow",
            "Action": [
                "kinesis:SubscribeToShard",
                "kinesis:DescribeStreamConsumer"
            ],
            "Resource": [
                "arn:aws:kinesis:us-west-2:{{111122223333}}:stream/StockTradeStream/*"
            ]
        },
        {
            "Sid": "Stmt456",
            "Effect": "Allow",
            "Action": [
                "dynamodb:*"
            ],
            "Resource": [
                "arn:aws:dynamodb:us-west-2:{{111122223333}}: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/](https://console.aws.amazon.com/iam/).

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

1. Pour **Nom d’utilisateur**, saisissez `StockTradeStreamUser`.

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

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

1. 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)**.

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

1. 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é.

1. 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](https://console.aws.amazon.com/iam/home?#policies) et choisissez **Actions de politique**. 

1. Choisissez `StockTradeStreamPolicy` et **Attacher**.

1. Choisissez `StockTradeStreamUser` et **Attacher la stratégie**.

## Étapes suivantes
<a name="tutorial-stock-data-kplkcl2-iam-next"></a>

[Téléchargez et compilez le code](tutorial-stock-data-kplkcl2-download.md)