Contrôle de l'accès aux ressources Kinesis Video Streams à l'aide de IAM - Amazon Kinesis Video 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.

Contrôle de l'accès aux ressources Kinesis Video Streams à l'aide de IAM

Vous pouvez utiliser AWS Identity and Access Management (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 Kinesis Video API Streams spécifiques et s'ils peuvent utiliser des ressources spécifiques. AWS

Pour plus d'informations surIAM, consultez les rubriques suivantes :

Syntaxe d’une politique

Une IAM politique est un JSON document composé 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 ouDeny. Par défaut, les utilisateurs ne sont pas autorisés à utiliser les ressources et les API actions. Toutes les demandes sont donc refusées. Une autorisation explicite remplace l’autorisation par défaut. Un refus explicite remplace toute autorisation.

  • Action — L'action est l'APIaction 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 IAM politiques, nous vous recommandons d'utiliser le générateur de IAM politiques et le simulateur IAM de politiques.

Actions relatives à Kinesis Video Streams

Dans une déclaration IAM de politique, vous pouvez spécifier n'importe quelle API action à partir de n'importe quel service compatibleIAM. Pour Kinesis Video Streams, utilisez le préfixe suivant pour le nom de API l'action :. 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 (*) comme suit :

"Action": "kinesisvideo:*"

Pour obtenir la liste complète des actions Kinesis Video API Streams, consultez la référence Kinesis Video Streams. API

Amazon Resource Names (ARNs) pour Kinesis Video Streams

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

Utilisez le format de ARN ressource 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 ARN le flux en utilisant DescribeStream.

Autoriser d'autres IAM comptes à accéder à un flux vidéo Kinesis

Vous devrez peut-être autoriser d'autres IAM comptes à 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

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

    Exemple de politique :

    { "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 reportez-vous à la section suivante.

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

    { "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 DescribeStreamGetDataEndpoint, et PutMedia sur une ressource ARN 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 le rôleARN, vous en aurez besoin à l'étape suivante.

  4. Créez une politique gérée dans l'autre compte, 111111111111, qui autorise l'AssumeRoleaction sur le rôle que vous avez créé dans le compte 999999999999 à l'étape précédente. Vous devrez mentionner le rôle ARN de l'étape précédente.

    Exemple de politique :

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::999999999999:role/CustomRoleName" } }
  5. Attachez la politique créée à l'étape précédente à une IAM entité, comme 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 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": "" } }
  6. 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=
  7. 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 obtenir des step-by-step instructions générales sur l'octroi d'un accès entre comptes, consultez la section Déléguer l'accès à Comptes AWS l'aide de IAM rôles.

Exemples de politiques pour Kinesis Video Streams

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

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