View a markdown version of this page

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

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 di 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 specifiche operazioni 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 opzionali. Possono essere utilizzate per controllare quando è in vigore una policy.

Quando crei e gestisci le 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, utilizzate il carattere jolly asterisco (*) come segue:

"Action": "kinesisvideo:*"

Per l'elenco completo delle azioni dell'API Kinesis Video Streams, consultate 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

Ad 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 uno streaming 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 di 12 cifre dell'account a cui desideri concedere le autorizzazioni per eseguire operazioni sulla risorsa di streaming creata nel tuo account.

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

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

    Esempio di politica:

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

    Per altri esempi di policy per le risorse Kinesis Video Streams, Policy di esempio consultate la sezione successiva.

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

    Esempio di politica affidabile:

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

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

    Ora hai creato un ruolo nell'account 9999 che dispone dell'autorizzazione per operazioni come DescribeStreamGetDataEndpoint, e PutMedia su un ARN di risorse di streaming nella policy gestita. Questo nuovo ruolo prevede che anche l'altro account, 1111, assuma questo ruolo.

    Importante

    Prendi nota del ruolo ARN, ti servirà nel passaggio successivo.

  4. Crea una policy 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.

    Esempio di politica:

    JSON
    { "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 ha ora il permesso di assumere il ruolo CustomRoleName nell'account 9999.

    Le credenziali di questo utente chiamano l' AWS STS AssumeRoleAPI per ottenere le credenziali di sessione, che vengono successivamente utilizzate per chiamare le API di 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 streaming 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 istruzioni dettagliate generiche sulla concessione dell'accesso tra più account, consulta Delegate Access Across Using IAM Roles. Account AWS

Esempi di politiche per Kinesis Video Streams

Le seguenti politiche di esempio dimostrano come è possibile controllare l'accesso degli utenti ai propri 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 ListTagsForStream operazioni DescribeStream GetDataEndpointGetMedia,ListStreams, e su qualsiasi flusso video Kinesis. Questa policy è appropriata per gli utenti che possono ottenere i dati da qualsiasi flusso di video.

JSON
{ "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 di 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.

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

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.

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