

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.

# Sécurité dans Amazon Kinesis Video Streams
<a name="security"></a>

La sécurité du cloud AWS est la priorité absolue. En tant que AWS client, vous bénéficierez d'un centre de données et d'une architecture réseau conçus pour répondre aux exigences des entreprises les plus sensibles en matière de sécurité.

La sécurité est une responsabilité partagée entre vous AWS et vous. Le [modèle de responsabilité partagée](https://aws.amazon.com/compliance/shared-responsibility-model/) décrit cette notion par les termes sécurité *du* cloud et sécurité *dans* le cloud :
+ **Sécurité du cloud** : AWS est chargée de protéger l'infrastructure qui exécute les AWS services dans le AWS cloud. AWS vous fournit également des services que vous pouvez utiliser en toute sécurité. L’efficacité de notre sécurité est régulièrement testée et vérifiée par des auditeurs tiers dans le cadre des [programmes de conformitéAWS](https://aws.amazon.com/compliance/programs/). Pour en savoir plus sur les programmes de conformité qui s'appliquent à Kinesis Video Streams, [AWS consultez la section Services concernés par programme de conformité](https://aws.amazon.com/compliance/services-in-scope/).
+ **Sécurité dans le cloud** — Votre responsabilité est déterminée par le AWS service que vous utilisez. Vous êtes également responsable d’autres facteurs, y compris la sensibilité de vos données, les exigences de votre organisation, et la législation et la réglementation applicables. 

Cette documentation vous aide à comprendre comment appliquer le modèle de responsabilité partagée lors de l'utilisation de Kinesis Video Streams. Les rubriques suivantes expliquent comment configurer Kinesis Video Streams pour atteindre vos objectifs de sécurité et de conformité. Vous apprendrez également à utiliser d'autres AWS services qui peuvent vous aider à surveiller et à sécuriser vos ressources Kinesis Video Streams. 

**Topics**
+ [Protection des données dans Kinesis Video Streams](how-kms.md)
+ [Contrôle de l'accès aux ressources Kinesis Video Streams à l'aide d'IAM](how-iam.md)
+ [Contrôle de l'accès aux ressources Kinesis Video Streams à l'aide de AWS IoT](how-iot.md)
+ [Validation de conformité pour Amazon Kinesis Video Streams](akda-java-compliance.md)
+ [Résilience dans Amazon Kinesis Video Streams](disaster-recovery-resiliency.md)
+ [Sécurité de l'infrastructure dans Kinesis Video Streams](infrastructure-security.md)
+ [Bonnes pratiques en matière de sécurité pour Kinesis Video Streams](security-best-practices.md)

# Protection des données dans Kinesis Video Streams
<a name="how-kms"></a>

Vous pouvez utiliser le chiffrement côté serveur (SSE) à l'aide de clés AWS Key Management Service (AWS KMS) pour répondre à des exigences strictes en matière de gestion des données en chiffrant vos données au repos dans Amazon Kinesis Video Streams.

**Topics**
+ [Qu'est-ce que le chiffrement côté serveur pour Kinesis Video Streams ?](#what-is-sse-akvs)
+ [Considérations relatives aux coûts, aux régions et aux performances](#costs-performance-akvs)
+ [Comment démarrer avec le chiffrement côté serveur ?](#getting-started-with-sse-akvs)
+ [Création et utilisation d'une clé gérée par le client](#creating-using-sse-master-keys-akvs)
+ [Autorisations d'utilisation d'une clé gérée par le client](#permissions-user-key-KMS-akvs)

## Qu'est-ce que le chiffrement côté serveur pour Kinesis Video Streams ?
<a name="what-is-sse-akvs"></a>

Le chiffrement côté serveur est une fonctionnalité de Kinesis Video Streams qui chiffre automatiquement les données avant qu'elles ne soient stockées au repos à l'aide d'une AWS KMS clé que vous spécifiez. Les données sont chiffrées avant leur écriture sur la couche de stockage du flux Kinesis Video Streams et déchiffrées après leur extraction de l’espace de stockage. Par conséquent, vos données sont toujours chiffrées au repos dans le service Kinesis Data Streams.

Grâce au chiffrement côté serveur, les producteurs et les consommateurs de vos flux vidéo Kinesis n'ont pas besoin de gérer les clés KMS ou les opérations cryptographiques. Si la conservation des données est activée, vos données sont automatiquement cryptées lorsqu'elles entrent dans Kinesis Video Streams et en sortent. Vos données inactives sont donc cryptées. AWS KMS fournit toutes les clés utilisées par la fonction de chiffrement côté serveur. AWS KMS rationalise l'utilisation d'une clé KMS pour Kinesis Video Streams gérée AWS par une clé AWS KMS spécifiée par l'utilisateur importée dans le service. AWS KMS 

## Considérations relatives aux coûts, aux régions et aux performances
<a name="costs-performance-akvs"></a>

Lorsque vous appliquez le chiffrement côté serveur, vous êtes soumis à l'utilisation de AWS KMS l'API et au coût des clés. Contrairement aux AWS KMS clés personnalisées, la clé `aws/kinesisvideo` KMS par défaut est proposée gratuitement. Toutefois, vous devez toujours payer les frais d'utilisation de l'API engagés par Kinesis Video Streams en votre nom.

Les coûts d'utilisation de l'API s'appliquent à chaque clé KMS, y compris les clés personnalisées. Les AWS KMS coûts varient en fonction du nombre d'informations d'identification utilisateur que vous utilisez pour vos producteurs et consommateurs de données, car chaque identifiant d'utilisateur nécessite un appel d' AWS KMS API unique. 

Voici une description des coûts par ressource :

**Clés**
+ La clé KMS pour Kinesis Video Streams gérée AWS par (alias `aws/kinesisvideo` =) est gratuite.
+ Les clés KMS générées par l'utilisateur sont soumises à des AWS KMS key frais. Pour plus d’informations, consultez [Tarification d’AWS Key Management Service](https://aws.amazon.com/kms/pricing/#Keys).

### AWS KMS Utilisation de l'API
<a name="api-usage"></a>

Les demandes d'API pour générer de nouvelles clés de chiffrement de données ou pour récupérer des clés de chiffrement existantes augmentent à mesure que le trafic augmente, et sont soumises à des coûts AWS KMS d'utilisation. Pour plus d'informations, voir [AWS Key Management Service Tarification : utilisation](https://aws.amazon.com/kms/pricing/#Usage).

Kinesis Video Streams génère des demandes clés même lorsque la rétention est définie sur 0 (aucune rétention).

### Disponibilité du chiffrement côté serveur par région
<a name="sse-regions-akvs"></a>

Le chiffrement des flux vidéo Kinesis côté serveur est disponible partout où Kinesis Régions AWS Video Streams est disponible.

## Comment démarrer avec le chiffrement côté serveur ?
<a name="getting-started-with-sse-akvs"></a>

Le chiffrement côté serveur est toujours activé sur Kinesis Video Streams. Si aucune clé fournie par l'utilisateur n'est spécifiée lors de la création du flux, la Clé gérée par AWS (fournie par Kinesis Video Streams) est utilisée.

Une clé KMS fournie par l'utilisateur doit être attribuée à un flux vidéo Kinesis lors de sa création. Vous ne pourrez pas attribuer une clé différente à un flux à l'aide de l'[UpdateStream](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_UpdateStream.html)API ultérieurement.

Vous pouvez attribuer une clé KMS fournie par l'utilisateur à un flux vidéo Kinesis de deux manières :
+ Lorsque vous créez un flux vidéo Kinesis dans le AWS Management Console, spécifiez la clé KMS dans l'onglet **Chiffrement** de la page **Créer un nouveau flux vidéo**.
+ Lorsque vous créez un flux vidéo Kinesis à l'aide de l'[CreateStream](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_CreateStream.html)API, spécifiez l'ID de clé dans le `KmsKeyId` paramètre.

## Création et utilisation d'une clé gérée par le client
<a name="creating-using-sse-master-keys-akvs"></a>

Cette section explique comment créer et utiliser vos propres clés KMS au lieu d'utiliser la clé administrée par Amazon Kinesis Video Streams.

### Création d'une clé gérée par le client
<a name="creating-sse-master-keys-akvs"></a>

Pour plus d'informations sur la création de vos propres clés, consultez la section [Création de clés](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) dans le *guide du AWS Key Management Service développeur*. Après avoir créé les clés de votre compte, le service Kinesis Video Streams les renvoie dans **la liste des clés gérées par le client**.

### Utilisation d'une clé gérée par le client
<a name="using-sse-master-keys-akvs"></a>

Une fois que les autorisations appropriées ont été appliquées à vos consommateurs, producteurs et administrateurs, vous pouvez utiliser des clés KMS personnalisées, que ce Compte AWS soit vous-même ou une autre Compte AWS. Toutes les clés KMS de votre compte apparaissent dans la liste des **clés gérées par le client** sur la console.

Pour utiliser des clés KMS personnalisées situées dans un autre compte, vous devez être autorisé à utiliser ces clés. Vous devez également créer le flux à l'aide de l'API `CreateStream`. Vous ne pouvez pas utiliser les clés KMS de différents comptes dans les flux créés dans la console.

**Note**  
La clé KMS n'est pas accessible tant que l'`GetMedia`opération `PutMedia` or n'est pas effectuée. Ceci génère les résultats suivants :  
Si la clé que vous spécifiez n'existe pas, l'`CreateStream`opération réussit, mais `PutMedia` les `GetMedia` opérations sur le flux échouent.
Si vous utilisez la clé fournie (`aws/kinesisvideo`), elle n'est pas présente dans votre compte tant que la première `PutMedia` `GetMedia` opération n'est pas effectuée.

## Autorisations d'utilisation d'une clé gérée par le client
<a name="permissions-user-key-KMS-akvs"></a>

Avant de pouvoir utiliser le chiffrement côté serveur avec une clé gérée par le client, vous devez configurer les politiques relatives aux clés KMS pour autoriser le chiffrement des flux ainsi que le chiffrement et le déchiffrement des enregistrements des flux. Pour des exemples et plus d'informations sur AWS KMS les autorisations, voir [Permissions AWS KMS d'API : référence sur les actions et les ressources](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html). 

**Note**  
L'utilisation de la clé de service par défaut pour le chiffrement ne nécessite pas l'application d'autorisations IAM personnalisées.

Avant d'utiliser une clé gérée par le client, vérifiez que les producteurs et les consommateurs de vos flux vidéo Kinesis (principaux IAM) sont des utilisateurs conformément à la AWS KMS politique de clé par défaut. Si ce n'est pas le cas, les écritures et les lectures à partir d'un flux échoueront, ce qui pourrait entraîner la perte de données, des retards de traitement ou la suspension d'applications. Vous pouvez gérer les autorisations pour les clés KMS à l'aide de politiques IAM. Pour plus d'informations, consultez la section [Utilisation des politiques IAM avec AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html).

### Exemple d'autorisations pour les producteurs
<a name="example-producer-permissions-akvs"></a>

Les producteurs de vos flux vidéo Kinesis doivent être autorisés à : `kms:GenerateDataKey`

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "kms:GenerateDataKey"
        ],
        "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }, 
    {
        "Effect": "Allow",
        "Action": [
            "kinesisvideo:PutMedia"
        ],
        "Resource": "arn:aws:kinesisvideo:*:123456789012:stream/MyStream/*"
    }
  ]
}
```

------

### Exemples d'autorisations accordées aux consommateurs
<a name="example-consumer-permissions-akvs"></a>

Les utilisateurs de votre flux vidéo Kinesis doivent être autorisés à : `kms:Decrypt`

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "kms:Decrypt"
        ],
        "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }, 
    {
        "Effect": "Allow",
        "Action": [
            "kinesisvideo:GetMedia"
        ],
        "Resource": "arn:aws:kinesisvideo:*:123456789012:stream/MyStream/*"
    }
  ]
}
```

------

# Contrôle de l'accès aux ressources Kinesis Video Streams à l'aide d'IAM
<a name="how-iam"></a>

Vous pouvez utiliser Gestion des identités et des accès AWS (IAM) avec Amazon Kinesis Video Streams pour contrôler si les utilisateurs de votre organisation peuvent effectuer une tâche à l'aide d'opérations spécifiques de l'API Kinesis Video Streams et s'ils peuvent utiliser des ressources spécifiques. AWS 

Pour plus d’informations sur IAM, consultez les ressources suivantes :
+ [Gestion des identités et des accès AWS (JE SUIS)](https://aws.amazon.com/iam/)
+ [Commencer à utiliser IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html)
+ [Guide de l’utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/)

**Topics**
+ [Syntaxe d’une politique](#policy-syntax)
+ [Actions relatives à Kinesis Video Streams](#kinesis-using-iam-actions)
+ [Amazon Resource Names (ARNs) pour Kinesis Video Streams](#kinesis-using-iam-arn-format)
+ [Autoriser d'autres comptes IAM à accéder à un flux vidéo Kinesis](#how-iam-crossaccount)
+ [Exemples de politiques pour Kinesis Video Streams](#how-iam-policies)

## Syntaxe d’une politique
<a name="policy-syntax"></a>

Une politique IAM est un document JSON qui se compose d’une ou de plusieurs déclarations. Chaque déclaration est structurée comme suit :

```
{
  "Statement":[{
    "Effect":"effect",
    "Action":"action",
    "Resource":"arn",
    "Condition":{
      "condition":{
        "key":"value"
        }
      }
    }
  ]
}
```

Une déclaration se compose de différents éléments :
+ **Effet** — L'*effet* peut être `Allow` ou`Deny`. Comme, par défaut, les utilisateurs n’ont pas la permission d’utiliser les ressources et les actions d’API, toutes les demandes sont refusées. Une autorisation explicite remplace l’autorisation par défaut. Un refus explicite remplace toute autorisation.
+ **Action** *: il s'agit de l'action d'API spécifique pour laquelle vous accordez ou refusez l'autorisation.*
+ **Ressource** : ressource affectée par l'action. Pour spécifier une ressource dans la déclaration, vous devez utiliser son Amazon Resource Name (ARN).
+ **État** — Les conditions sont facultatives. Elles permettent de contrôler à quel moment votre politique est effective.

Lorsque vous créez et gérez des politiques IAM, nous vous recommandons d'utiliser le [générateur de politiques IAM et le simulateur de politiques](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-generator) [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html).

## Actions relatives à Kinesis Video Streams
<a name="kinesis-using-iam-actions"></a>

Dans une déclaration de politique IAM, vous pouvez spécifier une action d’API à partir de n’importe quel service prenant en charge IAM. Pour Kinesis Video Streams, utilisez le préfixe suivant avec le nom de l'action d'API : `kinesisvideo:` Par exemple : `kinesisvideo:CreateStream`, `kinesisvideo:ListStreams` et `kinesisvideo:DescribeStream`.

Pour spécifier plusieurs actions dans une seule déclaration, séparez-les par des virgules comme suit :

```
"Action": ["kinesisvideo:action1", "kinesisvideo:action2"]
```

Vous pouvez aussi spécifier plusieurs actions à l’aide de caractères génériques. Par exemple, vous pouvez spécifier toutes les actions dont le nom commence par le mot « Get » comme suit :

```
"Action": "kinesisvideo:Get*"
```

Pour spécifier toutes les opérations Kinesis Video Streams, utilisez le caractère générique astérisque (\$1) comme suit :

```
"Action": "kinesisvideo:*"
```

Pour obtenir la liste complète des actions de l'API Kinesis Video Streams, consultez [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_Reference.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_Reference.html) Streams.

## Amazon Resource Names (ARNs) pour Kinesis Video Streams
<a name="kinesis-using-iam-arn-format"></a>

Chaque déclaration de politique IAM s'applique aux ressources que vous spécifiez à l'aide de leur. ARNs

Utilisez le format de ressource ARN suivant pour Kinesis Video Streams :

```
arn:aws:kinesisvideo:region:account-id:stream/stream-name/code
```

Par exemple :

```
"Resource": arn:aws:kinesisvideo:*:111122223333:stream/my-stream/0123456789012
```

Vous pouvez obtenir l'ARN d'un flux en utilisant [DescribeStream](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DescribeStream.html).

## Autoriser d'autres comptes IAM à accéder à un flux vidéo Kinesis
<a name="how-iam-crossaccount"></a>

Vous devrez peut-être autoriser d'autres comptes IAM à effectuer des opérations sur des flux dans Kinesis Video Streams. La présentation suivante décrit les étapes générales pour accorder l'accès à des flux vidéo parmi les comptes :

1. Obtenez l'identifiant de compte à 12 chiffres du compte auquel vous souhaitez accorder l'autorisation d'effectuer des opérations sur la ressource de streaming créée dans votre compte. 

   **Exemple :** Dans les étapes suivantes, nous utiliserons 111111111111 comme identifiant de compte pour le compte auquel vous souhaitez accorder l'autorisation, et 999999999999 comme identifiant pour vos Kinesis Video Streams

1. Créez une politique gérée par IAM dans le compte propriétaire du flux (999999999999) qui autorise le niveau d'accès que vous souhaitez accorder. 

   **Exemple de politique :**

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "kinesisvideo:GetDataEndpoint",
                   "kinesisvideo:DescribeStream",
                   "kinesisvideo:PutMedia"
               ],
               "Resource": "arn:aws:kinesisvideo:us-west-2:999999999999:stream/custom-stream-name/1613732218179"
           }
       ]
   }
   ```

------

   Pour d'autres exemples de politiques relatives aux ressources Kinesis Video Streams, [Exemples de stratégies](#how-iam-policies) reportez-vous à la section suivante.

1. Créez un rôle dans le compte propriétaire du flux (999999999999) et spécifiez le compte pour lequel vous souhaitez accorder des autorisations (111111111111). Cela ajoutera une entité de confiance au rôle. 

   **Exemple de politique fiable :**

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111111111111:root"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

   Associez à ce rôle la politique que vous avez créée à l'étape précédente.

   Vous avez maintenant créé un rôle dans le compte 999999999999 qui est autorisé à effectuer des opérations telles que `DescribeStream``GetDataEndpoint`, et sur `PutMedia` un ARN de ressource de flux dans la politique gérée. Ce nouveau rôle fait également confiance à l'autre compte, 111111111111, pour assumer ce rôle. 
**Important**  
Notez l'ARN du rôle, vous en aurez besoin à l'étape suivante.

1. Créez une politique gérée dans l'autre compte, 111111111111, qui autorise l'`AssumeRole`action sur le rôle que vous avez créé dans le compte 999999999999 à l'étape précédente. Vous devrez mentionner l'ARN du rôle indiqué à l'étape précédente. 

   **Exemple de politique :**

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Action": "sts:AssumeRole",
           "Resource": "arn:aws:iam::999999999999:role/CustomRoleName"
       }
   }
   ```

------

1. Associez la politique créée à l'étape précédente à une entité IAM, telle qu'un rôle ou un utilisateur dans le compte 111111111111. Cet utilisateur est désormais autorisé à assumer le rôle `CustomRoleName` dans le compte 999999999999. 

   Les informations d'identification de cet utilisateur appellent l' AWS STS `AssumeRole`API pour obtenir les informations d'identification de session, qui sont ensuite utilisées pour appeler Kinesis Video Streams sur le stream créé dans le compte APIs 99999999999999.

   ```
   aws sts assume-role --role-arn "arn:aws:iam::999999999999:role/CustomRoleName" --role-session-name "kvs-cross-account-assume-role"
   {
       "Credentials": {
           "AccessKeyId": "",
           "SecretAccessKey": "",
           "SessionToken": "",
           "Expiration": ""
       },
       "AssumedRoleUser": {
           "AssumedRoleId": "",
           "Arn": ""
       }
   }
   ```

1. Définissez la clé d'accès, la clé secrète et les informations d'identification de session en fonction de la configuration précédente dans l'environnement.

   ```
   set AWS_ACCESS_KEY_ID=
   set AWS_SECRET_ACCESS_KEY=
   set AWS_SESSION_TOKEN=
   ```

1. Exécutez Kinesis Video APIs Streams pour décrire et obtenir le point de terminaison de données du flux dans le compte 999999999999.

   ```
   aws kinesisvideo describe-stream --stream-arn "arn:aws:kinesisvideo:us-west-2:999999999999:stream/custom-stream-name/1613732218179"
   {
       "StreamInfo": {
           "StreamName": "custom-stream-name",
           "StreamARN": "arn:aws:kinesisvideo:us-west-2:999999999999:stream/custom-stream-name/1613732218179",
           "KmsKeyId": "arn:aws:kms:us-west-2:999999999999:alias/aws/kinesisvideo",
           "Version": "abcd",
           "Status": "ACTIVE",
           "CreationTime": "2018-02-19T10:56:58.179000+00:00",
           "DataRetentionInHours": 24
       }
   }
   
   aws kinesisvideo get-data-endpoint --stream-arn "arn:aws:kinesisvideo:us-west-2:999999999999:stream/custom-stream-name/1613732218179" --api-name "PUT_MEDIA"
   {
       "DataEndpoint": "https://s-b12345.kinesisvideo.us-west-2.amazonaws.com"
   }
   ```

Pour step-by-step obtenir des instructions générales sur l'octroi d'un accès entre comptes, consultez la section [Accès délégué à Comptes AWS l'aide de rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html).

## Exemples de politiques pour Kinesis Video Streams
<a name="how-iam-policies"></a>

Les exemples de règles suivants montrent comment contrôler l'accès des utilisateurs à vos Kinesis Video Streams

**Example 1 : Autoriser les utilisateurs à obtenir des données à partir de n'importe quel flux vidéo Kinesis**  
Cette politique permet à un utilisateur ou à un groupe d'effectuer les `ListTagsForStream` opérations `DescribeStream``GetDataEndpoint`,`GetMedia`,`ListStreams`, et sur n'importe quel flux vidéo Kinesis. Cette stratégie est adaptée aux utilisateurs qui peuvent obtenir des données depuis n'importe quel flux vidéo.     
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kinesisvideo:Describe*",
                "kinesisvideo:Get*",
                "kinesisvideo:List*"
            ],
            "Resource": "*"
        }
    ]
}
```

**Example 2 : Autoriser un utilisateur à créer un flux vidéo Kinesis et à y écrire des données**  
Cette stratégie permet à un utilisateur ou groupe d'effectuer les opérations `CreateStream` et `PutMedia`. Cette stratégie est adaptée à une caméra de sécurité pouvant créer un flux vidéo et y envoyer des données.  

```
{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kinesisvideo:CreateStream",
                "kinesisvideo:PutMedia"            
            ],
            "Resource": "*"
        }
    ]
}
```

**Example 3 : Autoriser un utilisateur à accéder pleinement à toutes les ressources Kinesis Video Streams**  
Cette politique permet à un utilisateur ou à un groupe d'effectuer n'importe quelle opération Kinesis Video Streams sur n'importe quelle ressource. Cette stratégie est adaptée aux administrateurs.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "kinesisvideo:*",
            "Resource": "*"
        }
    ]
}
```

**Example 4 : Autoriser un utilisateur à écrire des données dans un flux vidéo Kinesis spécifique**  
Cette stratégie permet à un utilisateur ou groupe d'écrire des données sur un flux vidéo spécifique. Cette stratégie est adaptée à un appareil pouvant envoyer des données vers un même flux.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "kinesisvideo:PutMedia",
            "Resource": "arn:aws:kinesisvideo:us-west-2:123456789012:stream/your_stream/0123456789012"
        }
    ]
}
```

# Contrôle de l'accès aux ressources Kinesis Video Streams à l'aide de AWS IoT
<a name="how-iot"></a>

Cette section explique comment permettre à un appareil (par exemple, une caméra) d'envoyer des données audio et vidéo à un seul flux vidéo Kinesis en particulier. Vous pouvez le faire en utilisant le fournisseur AWS IoT d'informations d'identification et un rôle Gestion des identités et des accès AWS (IAM).

Les appareils peuvent utiliser des certificats X.509 pour se connecter à AWS IoT l'aide des protocoles d'authentification mutuelle TLS. D'autres Services AWS (par exemple, Kinesis Video Streams) ne prennent pas en charge l'authentification basée sur des certificats, mais peuvent être appelés à l' AWS aide d'informations d'identification AWS au format Signature Version 4. L'algorithme Signature Version 4 exige généralement que l'appelant dispose d'un identifiant de clé d'accès et d'une clé d'accès secrète. AWS IoT dispose d'un fournisseur d'informations d'identification qui vous permet d'utiliser le certificat X.509 intégré comme identité unique de l'appareil pour authentifier les AWS demandes (par exemple, les demandes adressées à Kinesis Video Streams). Il n'est donc plus nécessaire de stocker un identifiant de clé d'accès et une clé d'accès secrète sur votre appareil. 

Le fournisseur d'informations d'identification authentifie un client (dans ce cas, un SDK Kinesis Video Streams exécuté sur la caméra à laquelle vous souhaitez envoyer des données vers un flux vidéo) à l'aide d'un certificat X.509 et émet un jeton de sécurité temporaire à privilèges limités. Vous pouvez utiliser le jeton pour signer et authentifier n'importe quelle AWS demande (dans ce cas, un appel aux Kinesis Video Streams). Pour plus d'informations, consultez la section [Autorisation des appels directs vers les AWS services](https://docs.aws.amazon.com//iot/latest/developerguide/authorizing-direct-aws.html).

Pour authentifier les demandes de votre caméra adressées à Kinesis Video Streams, vous devez créer et configurer un rôle IAM et associer les politiques IAM appropriées au rôle afin que le fournisseur d'informations d'identification puisse assumer AWS IoT le rôle en votre nom. 

Pour plus d'informations à ce sujet AWS IoT, consultez [AWS IoT Core la documentation](https://docs.aws.amazon.com/iot/?id=docs_gateway). Pour plus d'informations sur (IAM), consultez [Gestion des identités et des accès AWS (IAM)](https://aws.amazon.com/iam/).

**Topics**
+ [AWS IoT ThingName en tant que nom de flux](#how-iot-thingnamestreamname)
+ [AWS IoT CertificateId en tant que nom de flux](#how-iot-iotcertstreamname)
+ [Utiliser les AWS IoT informations d'identification pour diffuser vers un nom de flux codé en dur](#how-iot-hard-coded-stream)

## AWS IoT ThingName en tant que nom de flux
<a name="how-iot-thingnamestreamname"></a>

**Topics**
+ [Étape 1 : Création d'un type d' AWS IoT objet et d'un AWS IoT objet](#how-iot-create-thing-type)
+ [Étape 2 : Création d'un rôle IAM à assumer par AWS IoT](#how-iot-add-iot-policy)
+ [Étape 3 : créer et configurer le certificat X.509](#how-iot-create-cert-keys)
+ [Étape 4 : testez les AWS IoT informations d'identification avec votre flux vidéo Kinesis](#how-iot-test-it)
+ [Étape 5 : Déploiement de AWS IoT certificats et d'informations d'identification sur le système de fichiers de votre caméra et diffusion de données sur votre flux vidéo](#how-iot-deploy)

### Étape 1 : Création d'un type d' AWS IoT objet et d'un AWS IoT objet
<a name="how-iot-create-thing-type"></a>

Dans AWS IoT, un objet est la représentation d'un périphérique ou d'une entité logique spécifique. Dans ce cas, un AWS IoT objet représente le flux vidéo Kinesis pour lequel vous souhaitez configurer le contrôle d'accès au niveau des ressources. Pour créer un objet, vous devez d'abord créer un type d' AWS IoT objet. Vous pouvez utiliser des types d' AWS IoT objet pour stocker des informations de description et de configuration communes à tous les éléments associés au même type d'objet.

1. L'exemple de commande suivant crée un type d'objet `kvs_example_camera` :

   ```
   aws --profile default iot create-thing-type --thing-type-name kvs_example_camera > iot-thing-type.json
   ```

1. Cet exemple de commande crée l'`kvs_example_camera_stream`objet du type d'`kvs_example_camera`objet :

   ```
   aws --profile default  iot create-thing --thing-name kvs_example_camera_stream --thing-type-name kvs_example_camera > iot-thing.json
   ```

### Étape 2 : Création d'un rôle IAM à assumer par AWS IoT
<a name="how-iot-add-iot-policy"></a>

Les rôles IAM sont similaires aux utilisateurs, dans la mesure où un rôle est une AWS identité dotée de politiques d'autorisation qui déterminent ce que l'identité peut et ne peut pas faire. AWS Un rôle peut être assumé par toute personne qui en a besoin. Lorsque vous assumez un rôle, il vous fournit des informations d'identification de sécurité temporaires pour votre session de rôle.

Le rôle que vous créez au cours de cette étape peut être assumé AWS IoT pour obtenir des informations d'identification temporaires auprès du service de jetons de sécurité (STS) lors de l'exécution de demandes d'autorisation d'informations d'identification auprès du client. Dans ce cas, le client est le SDK Kinesis Video Streams qui s'exécute sur votre caméra. 

Effectuez les étapes suivantes pour créer et configurer ce rôle IAM :

1. Créez un rôle IAM.

   L'exemple de commande suivant crée un rôle IAM `KVSCameraCertificateBasedIAMRole` :

   ```
   aws --profile default iam create-role --role-name KVSCameraCertificateBasedIAMRole --assume-role-policy-document 'file://iam-policy-document.json' > iam-role.json
   ```

   Vous pouvez utiliser le fichier JSON de stratégie d'approbation suivant pour `iam-policy-document.json` :

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "credentials.iot.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. Ensuite, associez une politique d'autorisation au rôle IAM que vous avez créé précédemment. Cette politique d'autorisation permet un contrôle d'accès sélectif (un sous-ensemble des opérations prises en charge) pour une AWS ressource. Dans ce cas, la AWS ressource est le flux vidéo auquel vous souhaitez que votre caméra envoie des données. En d'autres termes, une fois toutes les étapes de configuration terminées, cette caméra sera en mesure d'envoyer des données uniquement à ce flux vidéo.

   ```
   aws --profile default iam put-role-policy --role-name KVSCameraCertificateBasedIAMRole --policy-name KVSCameraIAMPolicy --policy-document 'file://iam-permission-document.json' 
   ```

   Vous pouvez utiliser le JSON de politique IAM suivant pour : `iam-permission-document.json`

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "kinesisvideo:DescribeStream",
                   "kinesisvideo:PutMedia",
                   "kinesisvideo:TagStream",
                   "kinesisvideo:GetDataEndpoint"
               ],
               "Resource": "arn:aws:kinesisvideo:*:*:stream/${credentials-iot:ThingName}/*"
           }
       ]
   }
   ```

------

   Notez que cette règle autorise les actions spécifiées uniquement sur un flux vidéo (AWS ressource) spécifié par l'espace réservé`(${credentials-iot:ThingName})`. Cet espace réservé prend la valeur de l'attribut AWS IoT thing `ThingName` lorsque le fournisseur AWS IoT d'informations d'identification envoie le nom du flux vidéo dans la demande. 

1. Créez ensuite un alias de rôle pour votre rôle IAM. L'alias de rôle est un autre modèle de données qui pointe vers le rôle IAM. Une demande de fournisseur AWS IoT d'informations d'identification doit inclure un alias de rôle indiquant le rôle IAM à assumer pour obtenir les informations d'identification temporaires auprès du STS.

   L'exemple de commande suivant crée un alias de rôle appelé `KvsCameraIoTRoleAlias`,

   ```
   aws --profile default iot create-role-alias --role-alias KvsCameraIoTRoleAlias --role-arn $(jq --raw-output '.Role.Arn' iam-role.json) --credential-duration-seconds 3600 > iot-role-alias.json
   ```

1. Vous pouvez maintenant créer la politique qui permettra AWS IoT de jouer un rôle avec le certificat (une fois qu'il est attaché) en utilisant l'alias de rôle. 

   L'exemple de commande suivant crée une politique pour AWS IoT called`KvsCameraIoTPolicy`.

   ```
   aws --profile default iot create-policy --policy-name KvsCameraIoTPolicy --policy-document 'file://iot-policy-document.json'
   ```

   Vous pouvez utiliser la commande suivante pour créer le `iot-policy-document.json` document JSON :

   ```
   cat > iot-policy-document.json <<EOF
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "iot:AssumeRoleWithCertificate"
               ],
               "Resource": "$(jq --raw-output '.roleAliasArn' iot-role-alias.json)"
           }
       ]
   }
   EOF
   ```

### Étape 3 : créer et configurer le certificat X.509
<a name="how-iot-create-cert-keys"></a>

La communication entre un appareil (votre flux vidéo) AWS IoT est protégée par l'utilisation de certificats X.509. 

1. Créez le certificat auquel vous devez joindre la politique AWS IoT que vous avez créée précédemment.

   ```
   aws --profile default iot create-keys-and-certificate --set-as-active --certificate-pem-outfile certificate.pem --public-key-outfile public.pem.key --private-key-outfile private.pem.key > certificate
   ```

1. Joignez la politique pour AWS IoT (`KvsCameraIoTPolicy`créée précédemment) à ce certificat.

   ```
   aws --profile default iot attach-policy --policy-name KvsCameraIoTPolicy --target $(jq --raw-output '.certificateArn' certificate)
   ```

1. Joignez votre AWS IoT objet (`kvs_example_camera_stream`) au certificat que vous venez de créer : 

   ```
   aws --profile default iot attach-thing-principal --thing-name kvs_example_camera_stream --principal $(jq --raw-output '.certificateArn' certificate)
   ```

1. Pour autoriser les demandes via le fournisseur AWS IoT d'informations d'identification, vous avez besoin du point de terminaison des AWS IoT informations d'identification, qui est unique à votre Compte AWS identifiant. Vous pouvez utiliser la commande suivante pour obtenir le point de terminaison des AWS IoT informations d'identification.

   ```
   aws --profile default iot describe-endpoint --endpoint-type iot:CredentialProvider --output text > iot-credential-provider.txt
   ```

1. Outre le certificat X.509 créé précédemment, vous devez également disposer d'un certificat CA pour établir la confiance avec le service principal via TLS. Vous pouvez obtenir le certificat CA à l'aide de la commande suivante :

   ```
   curl --silent 'https://www.amazontrust.com/repository/SFSRootCAG2.pem' --output cacert.pem
   ```

### Étape 4 : testez les AWS IoT informations d'identification avec votre flux vidéo Kinesis
<a name="how-iot-test-it"></a>

Vous pouvez maintenant tester les AWS IoT informations d'identification que vous avez configurées jusqu'à présent. 

1. Tout d'abord, créez un flux vidéo Kinesis avec lequel vous souhaitez tester cette configuration.
**Important**  
Créez un flux vidéo avec un nom identique à celui AWS IoT que vous avez créé à l'étape précédente (`kvs_example_camera_stream`).

   ```
   aws kinesisvideo create-stream --data-retention-in-hours 24 --stream-name kvs_example_camera_stream
   ```

1. Appelez ensuite le fournisseur AWS IoT d'informations d'identification pour obtenir les informations d'identification temporaires :

   ```
   curl --silent -H "x-amzn-iot-thingname:kvs_example_camera_stream" --cert certificate.pem --key private.pem.key https://IOT_GET_CREDENTIAL_ENDPOINT/role-aliases/KvsCameraIoTRoleAlias/credentials --cacert ./cacert.pem > token.json
   ```
**Note**  
Vous pouvez utiliser la commande suivante pour obtenir `IOT_GET_CREDENTIAL_ENDPOINT` :  

   ```
   IOT_GET_CREDENTIAL_ENDPOINT=`cat iot-credential-provider.txt`
   ```

   Le JSON de sortie contient le `accessKey``secretKey`, et le`sessionToken`, que vous pouvez utiliser pour accéder aux Kinesis Video Streams.

1. Pour votre test, vous pouvez utiliser ces informations d'identification pour appeler l'API Kinesis Video `DescribeStream` Streams pour l'`kvs_example_camera_stream`exemple de flux vidéo.

   ```
   AWS_ACCESS_KEY_ID=$(jq --raw-output '.credentials.accessKeyId' token.json) AWS_SECRET_ACCESS_KEY=$(jq --raw-output '.credentials.secretAccessKey' token.json) AWS_SESSION_TOKEN=$(jq --raw-output '.credentials.sessionToken' token.json) aws kinesisvideo describe-stream --stream-name kvs_example_camera_stream
   ```

### Étape 5 : Déploiement de AWS IoT certificats et d'informations d'identification sur le système de fichiers de votre caméra et diffusion de données sur votre flux vidéo
<a name="how-iot-deploy"></a>

**Note**  
Les étapes décrites dans cette section décrivent l'envoi de contenu multimédia vers un flux vidéo Kinesis à partir d'une caméra utilisant le. [Utiliser la bibliothèque de production C\$1\$1](producer-sdk-cpp.md)

1. Copiez le certificat X.509, la clé privée et le certificat CA générés lors des étapes précédentes dans le système de fichiers de votre caméra. Spécifiez les chemins où ces fichiers sont stockés, le nom de l'alias du rôle et le point de terminaison des AWS IoT informations d'identification pour exécuter la `gst-launch-1.0` commande ou votre exemple d'application. 

1. L'exemple de commande suivant utilise l'autorisation de AWS IoT certificat pour envoyer une vidéo à Kinesis Video Streams : 

   ```
   gst-launch-1.0 rtspsrc location=rtsp://YourCameraRtspUrl short-header=TRUE ! rtph264depay ! video/x-h264,format=avc,alignment=au ! h264parse ! kvssink stream-name="kvs_example_camera_stream" aws-region="YourAWSRegion" iot-certificate="iot-certificate,endpoint=credential-account-specific-prefix.credentials.iot.aws-region.amazonaws.com,cert-path=/path/to/certificate.pem,key-path=/path/to/private.pem.key,ca-path=/path/to/cacert.pem,role-aliases=KvsCameraIoTRoleAlias"
   ```

## AWS IoT CertificateId en tant que nom de flux
<a name="how-iot-iotcertstreamname"></a>

Pour représenter votre appareil (par exemple, votre caméra) par le biais d'un AWS IoT objet, mais autoriser un autre nom de flux, vous pouvez utiliser l' AWS IoT `certificateId`attribut comme nom de votre flux et fournir des autorisations Kinesis Video Streams sur le flux AWS IoT en utilisant. Les étapes pour y parvenir sont similaires à celles décrites précédemment, avec quelques modifications.
+ Modifiez la politique d'autorisations pour votre rôle IAM (`iam-permission-document.json`) comme suit :

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "kinesisvideo:DescribeStream",
                  "kinesisvideo:PutMedia",
                  "kinesisvideo:TagStream",
                  "kinesisvideo:GetDataEndpoint"
              ],
              "Resource": "arn:aws:kinesisvideo:*:*:stream/${credentials-iot:AwsCertificateId}/*" 
          }
      ]
  }
  ```

------
**Note**  
L'ARN de ressource utilise l'ID de certificat comme espace réservé pour le nom de flux. L'autorisation IAM fonctionne lorsque vous utilisez l'ID du certificat comme nom de flux. Obtenez l'ID du certificat à partir du certificat afin de pouvoir l'utiliser comme nom de flux dans l'appel d'API de description du flux suivant.  

  ```
  export CERTIFICATE_ID=`cat certificate | jq --raw-output '.certificateId'`
  ```
+ Vérifiez cette modification à l'aide de la commande CLI Kinesis Video Streams describe-stream :

  ```
  AWS_ACCESS_KEY_ID=$(jq --raw-output '.credentials.accessKeyId' token.json) AWS_SECRET_ACCESS_KEY=$(jq --raw-output '.credentials.secretAccessKey' token.json) AWS_SESSION_TOKEN=$(jq --raw-output '.credentials.sessionToken' token.json) aws kinesisvideo describe-stream --stream-name ${CERTIFICATE_ID}
  ```
+ Transmettez le CertificateID au fournisseur d'informations d'identification dans AWS IoT l'[exemple d'application du SDK](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/samples/kvs_gstreamer_sample.cpp) Kinesis Video Streams C\$1\$1 : 

  ```
  credential_provider = make_unique<IotCertCredentialProvider>(iot_get_credential_endpoint,
          cert_path,
          private_key_path,
          role_alias,
          ca_cert_path,
          certificateId);
  ```
**Note**  
Notez que vous transmettez le `thingname` au fournisseur AWS IoT d'informations d'identification. Vous pouvez l'utiliser `getenv` pour transmettre le nom de l'objet à l'application de démonstration de la même manière que pour les autres AWS IoT attributs. Utilisez l'ID de certificat comme nom de flux dans les paramètres de ligne de commande lorsque vous exécutez l'exemple d'application.

## Utiliser les AWS IoT informations d'identification pour diffuser vers un nom de flux codé en dur
<a name="how-iot-hard-coded-stream"></a>

Pour représenter votre appareil (par exemple, votre caméra) à travers un AWS IoT objet, mais autoriser le streaming vers un flux vidéo Amazon Kinesis spécifique, accordez des autorisations Amazon Kinesis Video Streams sur le flux à l'aide de. AWS IoT Le processus est similaire aux sections précédentes, avec quelques modifications.

Modifiez la politique d'autorisations pour votre rôle IAM (`iam-permission-document.json`) comme suit :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kinesisvideo:DescribeStream",
                "kinesisvideo:PutMedia",
                "kinesisvideo:TagStream",
                "kinesisvideo:GetDataEndpoint"
            ],
            "Resource": "arn:aws:kinesisvideo:*:*:stream/YourStreamName/*" 
        }
    ]
}
```

------

Copiez le certificat X.509, la clé privée et le certificat CA générés lors des étapes précédentes dans le système de fichiers de votre caméra. 

Spécifiez les chemins où ces fichiers sont stockés, le nom de l'alias du rôle, le nom de l' AWS IoT objet et le point de terminaison des AWS IoT informations d'identification pour exécuter la `gst-launch-1.0` commande ou votre exemple d'application.

L'exemple de commande suivant utilise l'autorisation de AWS IoT certificat pour envoyer une vidéo à Amazon Kinesis Video Streams :

```
gst-launch-1.0 rtspsrc location=rtsp://YourCameraRtspUrl short-header=TRUE ! rtph264depay ! video/x-h264,format=avc,alignment=au ! h264parse ! kvssink stream-name="YourStreamName" aws-region="YourAWSRegion" iot-certificate="iot-certificate,endpoint=credential-account-specific-prefix.credentials.iot.aws-region.amazonaws.com,cert-path=/path/to/certificate.pem,key-path=/path/to/private.pem.key,ca-path=/path/to/cacert.pem,role-aliases=KvsCameraIoTRoleAlias,iot-thing-name=YourThingName"
```

# Validation de conformité pour Amazon Kinesis Video Streams
<a name="akda-java-compliance"></a>

Pour savoir si un [programme Services AWS de conformité Service AWS s'inscrit dans le champ d'application de programmes de conformité](https://aws.amazon.com/compliance/services-in-scope/) spécifiques, consultez Services AWS la section de conformité et sélectionnez le programme de conformité qui vous intéresse. Pour des informations générales, voir Programmes de [AWS conformité Programmes AWS](https://aws.amazon.com/compliance/programs/) de .

Vous pouvez télécharger des rapports d'audit tiers à l'aide de AWS Artifact. Pour plus d'informations, voir [Téléchargement de rapports dans AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

Votre responsabilité en matière de conformité lors de l'utilisation Services AWS est déterminée par la sensibilité de vos données, les objectifs de conformité de votre entreprise et les lois et réglementations applicables. Pour plus d'informations sur votre responsabilité en matière de conformité lors de l'utilisation Services AWS, consultez [AWS la documentation de sécurité](https://docs.aws.amazon.com/security/).

# Résilience dans Amazon Kinesis Video Streams
<a name="disaster-recovery-resiliency"></a>

L'infrastructure AWS mondiale est construite autour des AWS régions et des zones de disponibilité. AWS Les régions fournissent plusieurs zones de disponibilité physiquement séparées et isolées, connectées par un réseau à faible latence, à haut débit et hautement redondant. Avec les zones de disponibilité, vous pouvez concevoir et exploiter des applications et des bases de données qui basculent automatiquement d’une zone de disponibilité à l’autre sans interruption. Les zones de disponibilité sont plus hautement disponibles, tolérantes aux pannes et évolutives que les infrastructures traditionnelles à un ou plusieurs centres de données. 

Pour plus d'informations sur AWS les régions et les zones de disponibilité, consultez la section [Infrastructure AWS mondiale](https://aws.amazon.com/about-aws/global-infrastructure/).

# Sécurité de l'infrastructure dans Kinesis Video Streams
<a name="infrastructure-security"></a>

En tant que service géré, Amazon Kinesis Video Streams est protégé par AWS les procédures de sécurité du réseau mondial décrites dans [le livre blanc Amazon Web Services : présentation des processus de sécurité](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf).

Vous utilisez des appels d'API AWS publiés pour accéder à Kinesis Video Streams via le réseau. Les clients doivent prendre en charge le protocole TLS (Transport Layer Security) 1.2 ou version ultérieure. Les clients doivent aussi prendre en charge les suites de chiffrement PFS (Perfect Forward Secrecy) comme Ephemeral Diffie-Hellman (DHE) ou Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). La plupart des systèmes modernes telles que Java 7 et versions ultérieures prennent en charge ces modes. 

En outre, les demandes doivent être signées à l'aide d'un identifiant de clé d'accès et d'une clé d'accès secrète associés à un principal IAM. Vous pouvez également utiliser [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) pour générer des informations d’identification de sécurité temporaires et signer les demandes.

# Bonnes pratiques en matière de sécurité pour Kinesis Video Streams
<a name="security-best-practices"></a>

Amazon Kinesis Video Streams propose un certain nombre de fonctionnalités de sécurité à prendre en compte lors de l'élaboration et de la mise en œuvre de vos propres politiques de sécurité. Les bonnes pratiques suivantes doivent être considérées comme des instructions générales et ne représentent pas une solution de sécurité complète. Étant donné que ces bonnes pratiques peuvent ne pas être appropriées ou suffisantes pour votre environnement, considérez-les comme des remarques utiles plutôt que comme des recommandations. 

Pour découvrir les bonnes pratiques de sécurité applicables à vos appareils à distance, consultez [Bonnes pratiques de sécurité pour les agents d’appareil](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-DetectMetricsMessagesBestPract.html).

## Implémentation d’un accès sur la base du moindre privilège
<a name="security-best-practices-privileges"></a>

Lorsque vous accordez des autorisations, vous décidez qui obtient quelles autorisations à quelles ressources Kinesis Video Streams. Vous activez des actions spécifiques que vous souhaitez autoriser sur ces ressources. Par conséquent, vous devez accorder uniquement les autorisations qui sont requises pour exécuter une tâche. L'implémentation d'un accès sur la base du moindre privilège est fondamentale pour réduire les risques en matière de sécurité et l'impact que pourraient avoir des d'erreurs ou des actes de malveillance. 

Par exemple, un producteur qui envoie des données à Kinesis Video Streams a `PutMedia` uniquement besoin de`GetStreamingEndpoint`, `DescribeStream` et. N’octroyez pas aux applications de type producteur des autorisations pour toutes les actions (`*`), ou pour d'autres actions du type `GetMedia`.

Pour plus d'informations, consultez la section [En quoi consiste le principe de moindre privilège et pourquoi est-il nécessaire ?](https://www.beyondtrust.com/blog/entry/what-is-least-privilege)

## Utilisation des rôles IAM
<a name="security-best-practices-roles"></a>

Les applications productrices et clientes doivent disposer d'informations d'identification valides pour accéder à Kinesis Video Streams. Vous ne devez pas stocker les informations d'identification AWS directement dans une application client ni dans un compartiment Amazon S3. Il s'agit d'informations d'identification à long terme qui ne font pas l'objet d'une rotation automatique et qui pourraient avoir un impact commercial significatif si elles sont compromises. 

Vous devez plutôt utiliser un rôle IAM pour gérer les informations d'identification temporaires permettant à vos applications productrices et clientes d'accéder à Kinesis Video Streams. Lorsque vous utilisez un rôle, vous n'avez pas besoin d'utiliser des informations d'identification à long terme (telles qu'un nom d'utilisateur et un mot de passe ou des clés d'accès) pour accéder à d'autres ressources.

Pour plus d’informations, consultez les rubriques suivantes dans le *Guide de l’utilisateur IAM* :
+ [Rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
+ [Scénarios courants pour les rôles : utilisateurs, applications et services.](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios.html)

## CloudTrail À utiliser pour surveiller les appels d'API
<a name="security-best-practices-cloudtrail"></a>

Kinesis Video Streams fonctionne AWS CloudTrail avec un service qui fournit un enregistrement des actions effectuées par un utilisateur, un rôle ou Service AWS un utilisateur dans Kinesis Video Streams.

Vous pouvez utiliser les informations collectées CloudTrail pour déterminer la demande envoyée à Kinesis Video Streams, l'adresse IP à partir de laquelle la demande a été effectuée, l'auteur de la demande, la date à laquelle elle a été faite, ainsi que des informations supplémentaires.

Pour de plus amples informations, veuillez consulter [Enregistrez les appels d'API Amazon Kinesis Video Streams avec AWS CloudTrail](monitoring-cloudtrail.md).