

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
<a name="how-iam"></a>

Puoi utilizzare AWS Identity and Access Management (IAM) con Amazon Kinesis Video Streams per controllare se gli utenti dell'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:
+ [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/)
+ [Guida introduttiva a IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html)
+ [Guida per l'utente di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/)

**Topics**
+ [Sintassi delle policy](#policy-syntax)
+ [Azioni per Kinesis Video Streams](#kinesis-using-iam-actions)
+ [Nomi di risorse Amazon (ARNs) per Kinesis Video Streams](#kinesis-using-iam-arn-format)
+ [Concedere ad altri account IAM l'accesso a un flusso video Kinesis](#how-iam-crossaccount)
+ [Criteri di esempio per Kinesis Video Streams](#how-iam-policies)

## Sintassi delle policy
<a name="policy-syntax"></a>

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` o`Deny`. 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-generator) e [IAM Policy Simulator](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html).

## Azioni per Kinesis Video Streams
<a name="kinesis-using-iam-actions"></a>

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 (\$1) come segue:

```
"Action": "kinesisvideo:*"
```

Per l'elenco completo delle azioni dell'API Kinesis Video Streams, [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_Reference.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_Reference.html).

## Nomi di risorse Amazon (ARNs) per Kinesis Video Streams
<a name="kinesis-using-iam-arn-format"></a>

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

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

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

Esempio:

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

Puoi ottenere l'ARN di uno stream usando. [DescribeStream](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DescribeStream.html)

## Concedere ad altri account IAM l'accesso a un flusso video Kinesis
<a name="how-iam-crossaccount"></a>

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

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

   **Politica di esempio:**

------
#### [ 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](#how-iam-policies), consulta la sezione successiva.

1. 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:**

------
#### [ JSON ]

****  

   ```
   {
       "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 `DescribeStream``GetDataEndpoint`, 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.

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

   **Politica di esempio:**

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Action": "sts:AssumeRole",
           "Resource": "arn:aws:iam::999999999999:role/CustomRoleName"
       }
   }
   ```

------

1. 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 `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": ""
       }
   }
   ```

1. 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=
   ```

1. 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 sulla concessione dell'accesso a più account, consulta [Delegate](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html) Access Access Across Using IAM Roles. Account AWS 

## Criteri di esempio per Kinesis Video Streams
<a name="how-iam-policies"></a>

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

**Example 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` `GetMedia``ListStreams`,, 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": "*"
        }
    ]
}
```

**Example 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": "*"
        }
    ]
}
```

**Example 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": "*"
        }
    ]
}
```

**Example 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"
        }
    ]
}
```