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 utilizzare AWS Identity and Access Management (IAM) con Amazon Kinesis Video Streams per controllare se gli utenti della tua organizzazione possono eseguire un'attività utilizzando operazioni specifiche dell'API Kinesis Video Streams e se possono utilizzare risorse specifiche. AWS

Per ulteriori informazioni su IAM, consulta:

Sintassi delle policy

Una policy IAM è un documento JSON costituito 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 dispongono dell'autorizzazione per l'utilizzo di risorse e operazioni API, pertanto tutte le richieste vengono rifiutate. Un permesso esplicito sostituisce l'impostazione predefinita. Un rifiuto esplicito sovrascrive tutti i consensi.

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

  • Risorsa: la risorsa interessata dall'azione. Per specificare una risorsa nella dichiarazione, devi utilizzare il suo ARN (Amazon Resource Name).

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

Durante la creazione e la gestione delle policy IAM, ti consigliamo di utilizzare IAM Policy Generator e IAM Policy Simulator.

Azioni per Kinesis Video Streams

In una dichiarazione di policy IAM, è possibile specificare qualsiasi operazione API per qualsiasi servizio che supporta IAM. Per Kinesis Video Streams, usa il seguente prefisso con il nome dell'azione API:. 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 dell'API Kinesis Video Streams, consulta il riferimento all'API Kinesis Video Streams.

Amazon Resource Names (ARN) per Kinesis Video Streams

Ogni dichiarazione di policy IAM si applica alle risorse specificate utilizzando i relativi ARN.

Utilizza il seguente formato di risorse ARN 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 l'ARN di uno stream usando. DescribeStream

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

Potrebbe essere necessario concedere l'autorizzazione ad altri account IAM 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 policy gestita da IAM nell'account proprietario dello stream (△ 9999) 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 ha l'autorizzazione per operazioni come DescribeStreamGetDataEndpoint, e PutMedia su una risorsa di flusso ARN nella policy gestita. Questo nuovo ruolo si fida anche che l'altro account, 1111, assuma questo ruolo.

    Importante

    Prendi nota del ruolo ARN, ti servirà nella fase successiva.

  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 ARN del 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 policy creata nel passaggio precedente a un'entità IAM, 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 l' AWS STS AssumeRoleAPI per ottenere le credenziali della sessione, che vengono successivamente utilizzate per chiamare le API Kinesis Video 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 le API Kinesis 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 sulla concessione dell'accesso a più account, consulta Delegate Access Access Across Using IAM Roles. Account AWS

Criteri di esempio per Kinesis Video Streams

I seguenti criteri di esempio mostrano come controllare l'accesso degli utenti a 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" } ] }