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 sur IAM, consultez les ressources suivantes :
Table des matières
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 qui le prend en chargeIAM. 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 :
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
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.
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
DescribeStream
GetDataEndpoint
, etPutMedia
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.
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 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" } }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": "" } }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=
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 depuis 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": "*" } ] }
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" } ] }