Controllo dell'accesso alle risorse Kinesis Video Streams tramite IAM - Flusso di video Amazon Kinesis

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Controllo dell'accesso alle risorse Kinesis Video Streams tramite IAM

Puoi usare AWS Identity and Access Management (IAM) con Amazon Kinesis Video Streams per controllare se gli utenti dell'organizzazione possono eseguire un'attività utilizzando operazioni API Kinesis Video Streams specifiche e se possono utilizzare risorse specifiche. AWS

Per ulteriori informazioni suIAM, consulta quanto segue:

Sintassi delle policy

Una IAM politica è un JSON documento composto da una o più dichiarazioni. Ogni dichiarazione è strutturata come segue:

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

Una dichiarazione è costituita da diversi elementi:

  • Effetto: l'effetto può essere Allow oDeny. Per impostazione predefinita, gli utenti non sono autorizzati a utilizzare risorse e API azioni, quindi tutte le richieste vengono rifiutate. Un permesso esplicito sostituisce l'impostazione predefinita. Un rifiuto esplicito sovrascrive tutti i consensi.

  • Azione: l'azione è l'APIazione specifica per la quale si concede o si nega l'autorizzazione.

  • Risorsa: la risorsa interessata dall'azione. Per specificare una risorsa nell'istruzione, devi utilizzare il relativo Amazon Resource Name (ARN).

  • Condizione: le condizioni sono facoltative. Possono essere utilizzate per controllare quando è in vigore una policy.

Durante la creazione e la gestione IAM delle politiche, si consiglia di utilizzare il IAMPolicy Generator e il IAMPolicy Simulator.

Azioni per Kinesis Video Streams

In una dichiarazione IAM politica, puoi specificare qualsiasi API azione da qualsiasi servizio che supporta. IAM Per Kinesis Video Streams, usa il seguente prefisso con il nome API dell'azione:. kinesisvideo: For example: kinesisvideo:CreateStream, kinesisvideo:ListStreams e kinesisvideo:DescribeStream.

Per specificare più azioni in una sola istruzione, separa ciascuna di esse con una virgola come mostrato di seguito:

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

Puoi anche specificare più operazioni tramite caratteri jolly. Ad esempio, puoi specificare tutte le operazioni il cui nome inizia con la parola "Get" come segue:

"Action": "kinesisvideo:Get*"

Per specificare tutte le operazioni di Kinesis Video Streams, usa il carattere jolly asterisco (*) come segue:

"Action": "kinesisvideo:*"

Per l'elenco completo delle azioni di Kinesis API Video Streams, consulta il riferimento Kinesis Video API Streams.

Nomi di risorse Amazon (ARNs) per Kinesis Video Streams

Ogni dichiarazione di IAM policy si applica alle risorse specificate utilizzando le loro. ARNs

Utilizza il seguente formato di ARN risorse per Kinesis Video Streams:

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

Per esempio:

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

Puoi ottenere lo ARN stream usando. DescribeStream

Concedere ad altri IAM account l'accesso a un flusso video Kinesis

Potrebbe essere necessario concedere l'autorizzazione ad altri IAM account per eseguire operazioni sugli stream in Kinesis Video Streams. La seguente panoramica descrive i passi per concedere l'accesso ai flussi video su tutti gli account:

  1. Ottieni l'ID account a 12 cifre dell'account a cui desideri concedere le autorizzazioni per eseguire operazioni sulla risorsa di streaming creata nel tuo account.

    Esempio: nei seguenti passaggi, utilizzeremo 1111 come ID account per l'account a cui desideri concedere l'autorizzazione e 9999 come ID per Kinesis Video Streams

  2. Crea una politica IAM gestita nell'account proprietario dello stream (ISSIM9999) che consenta il livello di accesso che desideri concedere.

    Politica di esempio:

    { "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" } ] }

    Per altri esempi di policy per le risorse Kinesis Video StreamsPolicy di esempio, consulta la sezione successiva.

  3. Crea un ruolo nell'account proprietario dello stream (9999) e specifica l'account a cui desideri concedere le autorizzazioni (1111). Ciò aggiungerà un'entità attendibile al ruolo.

    Esempio di politica affidabile:

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

    Allega la politica che hai creato nel passaggio precedente a questo ruolo.

    Ora hai creato un ruolo nell'account 9999 che dispone dell'autorizzazione per operazioni come DescribeStreamGetDataEndpoint, e PutMedia su una risorsa di flusso ARN nella politica gestita. Questo nuovo ruolo si fida anche che l'altro account, 1111, assuma questo ruolo.

    Importante

    Prendi nota del ruoloARN, ne avrai bisogno nel passaggio successivo.

  4. Crea una politica gestita nell'altro account, 1111, che consenta l'AssumeRoleazione sul ruolo che hai creato nell'account 9999 nel passaggio precedente. Dovrai menzionare il ruolo del ARN passaggio precedente.

    Politica di esempio:

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::999999999999:role/CustomRoleName" } }
  5. Allega la politica creata nel passaggio precedente a un'IAMentità, ad esempio un ruolo o un utente nell'account 1111. Questo utente ora ha il permesso di assumere un ruolo CustomRoleName nell'account 9999.

    Le credenziali di questo utente chiamano AWS STS AssumeRole API per ottenere le credenziali della sessione, che vengono successivamente utilizzate per chiamare Kinesis Video APIs Streams sullo stream creato nell'account 9999.

    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. Imposta la chiave di accesso, la chiave segreta e le credenziali di sessione in base al set precedente nell'ambiente.

    set AWS_ACCESS_KEY_ID= set AWS_SECRET_ACCESS_KEY= set AWS_SESSION_TOKEN=
  7. Esegui Kinesis APIs Video Streams per descrivere e ottenere l'endpoint di dati per lo stream nell'account 9999.

    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" }

Per step-by-step istruzioni generiche su come concedere l'accesso a più account, consulta Delegare l'accesso tra diversi ruoli. Account AWS IAM

Criteri di esempio per Kinesis Video Streams

I seguenti criteri di esempio mostrano come controllare l'accesso degli utenti ai tuoi Kinesis Video Streams.

Esempio 1: Consenti agli utenti di ottenere dati da qualsiasi flusso video Kinesis

Questa policy consente a un utente o a un gruppo di eseguire le ListTagsForStream operazioni DescribeStream GetDataEndpoint GetMediaListStreams,, e su qualsiasi flusso video Kinesis. Questa policy è appropriata per gli utenti che possono ottenere i dati da qualsiasi flusso di video.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesisvideo:Describe*", "kinesisvideo:Get*", "kinesisvideo:List*" ], "Resource": "*" } ] }
Esempio 2: Consenti a un utente di creare un flusso video Kinesis e di scrivervi dati

Questa policy consente a un utente o a un gruppo di eseguire le operazioni CreateStream e PutMedia. Questa policy è appropriata per una fotocamera di sicurezza su cui è possibile creare un flusso di video e inviare dati.

{ "Statement": [ { "Effect": "Allow", "Action": [ "kinesisvideo:CreateStream", "kinesisvideo:PutMedia" ], "Resource": "*" } ] }
Esempio 3: Consenti a un utente l'accesso completo a tutte le risorse Kinesis Video Streams

Questa policy consente a un utente o a un gruppo di eseguire qualsiasi operazione di Kinesis Video Streams su qualsiasi risorsa. Questa policy è appropriata per gli amministratori.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kinesisvideo:*", "Resource": "*" } ] }
Esempio 4: Consenti a un utente di scrivere dati su un flusso video Kinesis specifico

Questa policy consente a un utente o a un gruppo di scrivere dati su un determinato flusso di video. Questa policy è appropriata per un dispositivo in grado di inviare dati a un solo flusso.

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