

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à.

# Sicurezza in Amazon Kinesis Video Streams
<a name="security"></a>

La sicurezza del cloud AWS è la massima priorità. In qualità di AWS cliente, trarrai vantaggio da un data center e da un'architettura di rete progettati per soddisfare i requisiti delle organizzazioni più sensibili alla sicurezza.

La sicurezza è una responsabilità condivisa tra AWS te e te. Il [modello di responsabilità condivisa](https://aws.amazon.com/compliance/shared-responsibility-model/) descrive questo come sicurezza *del* cloud e sicurezza *nel* cloud:
+ **Sicurezza del cloud**: AWS è responsabile della protezione dell'infrastruttura che gestisce AWS i servizi nel AWS cloud. AWS ti fornisce anche servizi che puoi utilizzare in modo sicuro. L'efficacia della nostra sicurezza è regolarmente testata e verificata da revisori di terze parti come parte dei [programmi di conformitàAWS](https://aws.amazon.com/compliance/programs/). Per maggiori informazioni sui programmi di conformità che si applicano a Kinesis Video Streams [AWS , consulta la sezione Servizi rientranti nell'ambito](https://aws.amazon.com/compliance/services-in-scope/) del programma di conformità.
+ **Sicurezza nel cloud**: la tua responsabilità è determinata dal AWS servizio che utilizzi. L'utente è anche responsabile per altri fattori, tra cui la riservatezza dei dati, i requisiti dell'azienda e leggi e normative applicabili. 

Questa documentazione aiuta a capire come applicare il modello di responsabilità condivisa quando si utilizza Kinesis Video Streams. I seguenti argomenti mostrano come configurare Kinesis Video Streams per soddisfare i tuoi obiettivi di sicurezza e conformità. Imparerai anche come utilizzare altri AWS servizi che possono aiutarti a monitorare e proteggere le tue risorse Kinesis Video Streams. 

**Topics**
+ [Protezione dei dati in Kinesis Video Streams](how-kms.md)
+ [Controllo dell'accesso alle risorse Kinesis Video Streams tramite IAM](how-iam.md)
+ [Controllo dell'accesso alle risorse Kinesis Video Streams tramite AWS IoT](how-iot.md)
+ [Convalida della conformità per Amazon Kinesis Video Streams](akda-java-compliance.md)
+ [Resilienza in Amazon Kinesis Video Streams](disaster-recovery-resiliency.md)
+ [Sicurezza dell'infrastruttura in Kinesis Video Streams](infrastructure-security.md)
+ [Le migliori pratiche di sicurezza per Kinesis Video Streams](security-best-practices.md)

# Protezione dei dati in Kinesis Video Streams
<a name="how-kms"></a>

Puoi utilizzare la crittografia lato server (SSE) utilizzando le chiavi AWS Key Management Service (AWS KMS) per soddisfare severi requisiti di gestione dei dati crittografando i dati inattivi in Amazon Kinesis Video Streams.

**Topics**
+ [Cos'è la crittografia lato server per Kinesis Video Streams?](#what-is-sse-akvs)
+ [Considerazioni su costi, regioni e prestazioni](#costs-performance-akvs)
+ [Come posso iniziare a usare la crittografia lato server?](#getting-started-with-sse-akvs)
+ [Creazione e utilizzo di una chiave gestita dal cliente](#creating-using-sse-master-keys-akvs)
+ [Autorizzazioni per l'utilizzo di una chiave gestita dal cliente](#permissions-user-key-KMS-akvs)

## Cos'è la crittografia lato server per Kinesis Video Streams?
<a name="what-is-sse-akvs"></a>

La crittografia lato server è una funzionalità di Kinesis Video Streams che crittografa automaticamente i dati prima che vengano archiviati a riposo utilizzando una chiave specificata dall'utente. AWS KMS I dati vengono crittografati prima della scrittura nel livello di archiviazione di Kinesis Video Streams e vengono decrittografati dopo essere stati recuperati dall’archiviazione. Di conseguenza, i dati vengono sempre crittografati a riposo all’interno del servizio Kinesis Video Streams.

Con la crittografia lato server, i produttori e i consumatori di streaming video Kinesis non devono gestire le chiavi KMS o le operazioni crittografiche. Se la conservazione dei dati è abilitata, i dati vengono automaticamente crittografati quando entrano ed escono da Kinesis Video Streams, quindi i dati inattivi vengono crittografati. AWS KMS fornisce tutte le chiavi utilizzate dalla funzionalità di crittografia lato server. AWS KMS semplifica l'uso di una chiave KMS per Kinesis Video Streams gestita AWS da, una chiave specificata dall' AWS KMS utente importata nel servizio. AWS KMS 

## Considerazioni su costi, regioni e prestazioni
<a name="costs-performance-akvs"></a>

Quando si applica la crittografia lato server, si è soggetti all'utilizzo delle AWS KMS API e ai costi delle chiavi. A differenza delle AWS KMS chiavi personalizzate, la chiave `aws/kinesisvideo` KMS predefinita viene offerta gratuitamente. Tuttavia, devi comunque pagare i costi di utilizzo dell'API sostenuti da Kinesis Video Streams per tuo conto.

I costi di utilizzo delle API si applicano a ogni chiave KMS, incluse quelle personalizzate. I AWS KMS costi variano in base al numero di credenziali utente utilizzate dai produttori e dai consumatori di dati, poiché ogni credenziale utente richiede una chiamata API unica a. AWS KMS

Di seguito vengono descritti i costi per risorsa:

**Chiavi**
+ La chiave KMS per Kinesis Video Streams gestita AWS da (alias `aws/kinesisvideo` =) è gratuita.
+ Le chiavi KMS generate dall'utente sono soggette a costi. AWS KMS key Per ulteriori informazioni, consultare [AWS Key Management Service Prezzi](https://aws.amazon.com/kms/pricing/#Keys).

### AWS KMS Utilizzo delle API
<a name="api-usage"></a>

Le richieste API per generare nuove chiavi di crittografia dei dati o per recuperare chiavi di crittografia esistenti aumentano all'aumentare del traffico e sono soggette ai costi di AWS KMS utilizzo. Per ulteriori informazioni, consulta [AWS Key Management Service Prezzi: utilizzo](https://aws.amazon.com/kms/pricing/#Usage).

Kinesis Video Streams genera richieste chiave anche quando la conservazione è impostata su 0 (nessuna conservazione).

### Disponibilità della crittografia lato server per regione
<a name="sse-regions-akvs"></a>

La crittografia lato server dei flussi video Kinesis è disponibile in tutti i paesi in cui è disponibile Kinesis Regioni AWS Video Streams.

## Come posso iniziare a usare la crittografia lato server?
<a name="getting-started-with-sse-akvs"></a>

La crittografia lato server è sempre abilitata su Kinesis Video Streams. Se al momento della creazione dello stream non viene specificata una chiave fornita dall'utente, viene utilizzata la Chiave gestita da AWS (fornita da Kinesis Video Streams).

Una chiave KMS fornita dall'utente deve essere assegnata a un flusso video Kinesis al momento della creazione. Non puoi assegnare una chiave diversa a uno stream utilizzando l'API in un secondo momento. [UpdateStream](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_UpdateStream.html)

Puoi assegnare una chiave KMS fornita dall'utente a un flusso video Kinesis in due modi:
+ Quando crei un flusso video Kinesis in Console di gestione AWS, specifica la chiave KMS nella scheda **Crittografia** della pagina **Crea un nuovo flusso video**.
+ Quando crei uno stream video Kinesis utilizzando l'[CreateStream](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_CreateStream.html)API, specifica l'ID della chiave nel `KmsKeyId` parametro.

## Creazione e utilizzo di una chiave gestita dal cliente
<a name="creating-using-sse-master-keys-akvs"></a>

Questa sezione descrive come creare e utilizzare le proprie chiavi KMS anziché utilizzare la chiave amministrata da Amazon Kinesis Video Streams.

### Creazione di una chiave gestita dal cliente
<a name="creating-sse-master-keys-akvs"></a>

Per informazioni su come creare chiavi personalizzate, consulta [Creating Keys](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) nella *AWS Key Management Service Developer Guide*. Dopo aver creato le chiavi per l'account, il servizio Kinesis Video Streams restituisce queste chiavi **nell'elenco delle chiavi gestite dal cliente**.

### Utilizzo di una chiave gestita dal cliente
<a name="using-sse-master-keys-akvs"></a>

Dopo aver applicato le autorizzazioni corrette ai consumatori, ai produttori e agli amministratori, puoi utilizzare chiavi KMS personalizzate per conto Account AWS tuo o altrui. Account AWS Tutte le chiavi KMS del tuo account vengono visualizzate nell'elenco delle **chiavi gestite dal cliente** sulla console.

Per utilizzare le chiavi KMS personalizzate che si trovano in un altro account, devi disporre delle autorizzazioni per utilizzare tali chiavi. Inoltre, occorre creare il flusso tramite l'API `CreateStream`. Non puoi utilizzare le chiavi KMS di account diversi negli stream creati nella console.

**Nota**  
Non si accede alla chiave KMS finché non viene `GetMedia` eseguita l'operazione `PutMedia` o. Tali operazioni producono i risultati seguenti:  
Se la chiave specificata non esiste, l'`CreateStream`operazione ha esito positivo, ma `PutMedia` `GetMedia` le operazioni sullo stream hanno esito negativo.
Se utilizzi la chiave fornita (`aws/kinesisvideo`), la chiave non è presente nel tuo account finché non viene eseguita la prima `PutMedia` `GetMedia` operazione.

## Autorizzazioni per l'utilizzo di una chiave gestita dal cliente
<a name="permissions-user-key-KMS-akvs"></a>

Prima di poter utilizzare la crittografia lato server con una chiave gestita dal cliente, è necessario configurare le politiche delle chiavi KMS per consentire la crittografia degli stream e la crittografia e la decrittografia dei record di flusso. Per esempi e ulteriori informazioni sulle AWS KMS autorizzazioni, consulta Autorizzazioni [AWS KMS API](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html): Actions and Resources Reference. 

**Nota**  
L'uso della chiave di servizio predefinita per la crittografia non richiede l'applicazione di autorizzazioni IAM personalizzate.

Prima di utilizzare una chiave gestita dal cliente, verifica che i produttori e i consumatori di streaming video Kinesis (responsabili IAM) siano utenti nella policy di chiave AWS KMS predefinita. In caso contrario, le operazioni di lettura e scrittura dai flussi non riusciranno, causando perdite di dati, ritardi delle elaborazioni o blocchi delle applicazioni. Puoi gestire le autorizzazioni relative alle chiavi KMS tramite le policy IAM. Per ulteriori informazioni, consulta [Using IAM Policies](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) with. AWS KMS

### Esempio di autorizzazioni di produttore
<a name="example-producer-permissions-akvs"></a>

I produttori di streaming video Kinesis devono avere l'`kms:GenerateDataKey`autorizzazione:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "kms:GenerateDataKey"
        ],
        "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }, 
    {
        "Effect": "Allow",
        "Action": [
            "kinesisvideo:PutMedia"
        ],
        "Resource": "arn:aws:kinesisvideo:*:123456789012:stream/MyStream/*"
    }
  ]
}
```

------

### Esempio di autorizzazioni per i consumatori
<a name="example-consumer-permissions-akvs"></a>

Gli utenti che utilizzano lo streaming video Kinesis devono avere l'`kms:Decrypt`autorizzazione:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "kms:Decrypt"
        ],
        "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }, 
    {
        "Effect": "Allow",
        "Action": [
            "kinesisvideo:GetMedia"
        ],
        "Resource": "arn:aws:kinesisvideo:*:123456789012:stream/MyStream/*"
    }
  ]
}
```

------

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

# Controllo dell'accesso alle risorse Kinesis Video Streams tramite AWS IoT
<a name="how-iot"></a>

Questa sezione descrive come consentire a un dispositivo (ad esempio una videocamera) di inviare dati audio e video solo a un particolare flusso video Kinesis. Puoi farlo utilizzando il provider di AWS IoT credenziali e un ruolo AWS Identity and Access Management (IAM).

I dispositivi possono utilizzare i certificati X.509 a cui connettersi AWS IoT utilizzando i protocolli di autenticazione reciproca TLS. Altri Servizi AWS (ad esempio, Kinesis Video Streams) non supportano l'autenticazione basata su certificati, ma possono essere AWS richiamati utilizzando AWS credenziali in formato Signature Version 4. L'algoritmo Signature Version 4 richiede in genere che il chiamante disponga di un ID di chiave di accesso e di una chiave di accesso segreta. AWS IoT dispone di un provider di credenziali che consente di utilizzare il certificato X.509 integrato come identità univoca del dispositivo per autenticare AWS le richieste (ad esempio, le richieste a Kinesis Video Streams). Ciò elimina la necessità di memorizzare un ID della chiave di accesso e una chiave di accesso segreta sul dispositivo. 

Il provider di credenziali autentica un client (in questo caso, un Kinesis Video Streams SDK in esecuzione sulla videocamera a cui desideri inviare i dati a un flusso video) utilizzando un certificato X.509 ed emette un token di sicurezza temporaneo con privilegi limitati. Puoi utilizzare il token per firmare e autenticare qualsiasi AWS richiesta (in questo caso, una chiamata a Kinesis Video Streams). Per ulteriori informazioni, consulta [Autorizzazione delle chiamate dirette](https://docs.aws.amazon.com//iot/latest/developerguide/authorizing-direct-aws.html) ai servizi. AWS 

Questo modo di autenticare le richieste della videocamera a Kinesis Video Streams richiede la creazione e la configurazione di un ruolo IAM e l'associazione di policy IAM appropriate al ruolo in modo che il fornitore di credenziali possa assumere AWS IoT il ruolo per tuo conto. 

[Per ulteriori informazioni in merito, consulta la Documentazione. AWS IoTAWS IoT Core](https://docs.aws.amazon.com/iot/?id=docs_gateway) Per ulteriori informazioni su IAM, consulta [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/).

**Topics**
+ [AWS IoT ThingName come nome dello stream](#how-iot-thingnamestreamname)
+ [AWS IoT CertificateId come nome dello stream](#how-iot-iotcertstreamname)
+ [Usa AWS IoT le credenziali per eseguire lo streaming su un nome di stream codificato](#how-iot-hard-coded-stream)

## AWS IoT ThingName come nome dello stream
<a name="how-iot-thingnamestreamname"></a>

**Topics**
+ [Fase 1: Creare qualsiasi tipo di AWS IoT oggetto e qualsiasi AWS IoT cosa](#how-iot-create-thing-type)
+ [Fase 2: Creare un ruolo IAM che venga assunto da AWS IoT](#how-iot-add-iot-policy)
+ [Fase 3: Creare e configurare il certificato X.509](#how-iot-create-cert-keys)
+ [Fase 4: Verifica le AWS IoT credenziali con il tuo stream video Kinesis](#how-iot-test-it)
+ [Fase 5: Implementazione di AWS IoT certificati e credenziali sul file system della videocamera e streaming dei dati nel flusso video](#how-iot-deploy)

### Fase 1: Creare qualsiasi tipo di AWS IoT oggetto e qualsiasi AWS IoT cosa
<a name="how-iot-create-thing-type"></a>

In AWS IoT, una cosa è una rappresentazione di un dispositivo o di un'entità logica specifici. In questo caso, qualsiasi AWS IoT elemento rappresenta il flusso video Kinesis per cui desideri configurare il controllo degli accessi a livello di risorsa. Per creare un oggetto, devi innanzitutto creare un tipo di oggetto. AWS IoT È possibile utilizzare i tipi di AWS IoT oggetto per memorizzare informazioni di descrizione e configurazione comuni a tutti gli elementi associati allo stesso tipo di oggetto.

1. Il comando di esempio seguente crea un tipo di oggetto `kvs_example_camera`:

   ```
   aws --profile default iot create-thing-type --thing-type-name kvs_example_camera > iot-thing-type.json
   ```

1. Questo comando di esempio crea l'`kvs_example_camera_stream`oggetto del tipo di `kvs_example_camera` oggetto:

   ```
   aws --profile default  iot create-thing --thing-name kvs_example_camera_stream --thing-type-name kvs_example_camera > iot-thing.json
   ```

### Fase 2: Creare un ruolo IAM che venga assunto da AWS IoT
<a name="how-iot-add-iot-policy"></a>

I ruoli IAM sono simili agli utenti, in quanto un ruolo è un' AWS identità con politiche di autorizzazione che determinano ciò che l'identità può e non può fare. AWS Un ruolo può essere assunto da chiunque ne abbia bisogno. Tuttavia, quando assumi un ruolo, vengono fornite le credenziali di sicurezza provvisorie per la sessione del ruolo.

Il ruolo creato in questa fase può essere assunto AWS IoT per ottenere credenziali temporanee dal servizio di token di sicurezza (STS) quando si eseguono richieste di autorizzazione delle credenziali dal client. In questo caso, il client è l'SDK Kinesis Video Streams in esecuzione sulla videocamera. 

Eseguire la procedura seguente per creare e configurare questo ruolo IAM:

1. Crea un ruolo IAM.

   Il comando di esempio seguente crea un ruolo IAM denominato `KVSCameraCertificateBasedIAMRole`:

   ```
   aws --profile default iam create-role --role-name KVSCameraCertificateBasedIAMRole --assume-role-policy-document 'file://iam-policy-document.json' > iam-role.json
   ```

   Puoi utilizzare il seguente JSON della policy di attendibilità per `iam-policy-document.json`:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "credentials.iot.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. Successivamente, allega una politica di autorizzazioni al ruolo IAM che hai creato in precedenza. Questa politica di autorizzazioni consente il controllo selettivo dell'accesso (un sottoinsieme di operazioni supportate) per una risorsa. AWS In questo caso, la AWS risorsa è il flusso video a cui desideri che la videocamera invii i dati. In altre parole, una volta completate tutte le fasi di configurazione, questa telecamera sarà in grado di inviare dati solo a questo flusso video.

   ```
   aws --profile default iam put-role-policy --role-name KVSCameraCertificateBasedIAMRole --policy-name KVSCameraIAMPolicy --policy-document 'file://iam-permission-document.json' 
   ```

   Puoi utilizzare la seguente policy IAM JSON per: `iam-permission-document.json`

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "kinesisvideo:DescribeStream",
                   "kinesisvideo:PutMedia",
                   "kinesisvideo:TagStream",
                   "kinesisvideo:GetDataEndpoint"
               ],
               "Resource": "arn:aws:kinesisvideo:*:*:stream/${credentials-iot:ThingName}/*"
           }
       ]
   }
   ```

------

   Tieni presente che questa politica autorizza le azioni specificate solo su un flusso video (AWS risorsa) specificato dal segnaposto. `(${credentials-iot:ThingName})` Questo segnaposto assume il valore dell'attributo AWS IoT thing `ThingName` quando il provider di AWS IoT credenziali invia il nome del flusso video nella richiesta. 

1. Successivamente, crea un Role Alias per il tuo ruolo IAM. L'alias del ruolo è un modello di dati alternativo che punta al ruolo IAM. Una richiesta del fornitore di AWS IoT credenziali deve includere un alias di ruolo per indicare quale ruolo IAM assumere per ottenere le credenziali temporanee dall'STS.

   Il comando di esempio seguente crea un alias del ruolo denominato `KvsCameraIoTRoleAlias`.

   ```
   aws --profile default iot create-role-alias --role-alias KvsCameraIoTRoleAlias --role-arn $(jq --raw-output '.Role.Arn' iam-role.json) --credential-duration-seconds 3600 > iot-role-alias.json
   ```

1. Ora puoi creare la politica che consentirà di AWS IoT assumere un ruolo con il certificato (una volta allegato) utilizzando l'alias del ruolo. 

   Il seguente comando di esempio crea una politica per AWS IoT called`KvsCameraIoTPolicy`.

   ```
   aws --profile default iot create-policy --policy-name KvsCameraIoTPolicy --policy-document 'file://iot-policy-document.json'
   ```

   È possibile utilizzare il seguente comando per creare il `iot-policy-document.json` documento JSON:

   ```
   cat > iot-policy-document.json <<EOF
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "iot:AssumeRoleWithCertificate"
               ],
               "Resource": "$(jq --raw-output '.roleAliasArn' iot-role-alias.json)"
           }
       ]
   }
   EOF
   ```

### Fase 3: Creare e configurare il certificato X.509
<a name="how-iot-create-cert-keys"></a>

La comunicazione tra un dispositivo (il tuo flusso video) AWS IoT è protetta tramite l'uso di certificati X.509. 

1. Create il certificato a cui allegare la politica creata AWS IoT in precedenza.

   ```
   aws --profile default iot create-keys-and-certificate --set-as-active --certificate-pem-outfile certificate.pem --public-key-outfile public.pem.key --private-key-outfile private.pem.key > certificate
   ```

1. Allega la politica per AWS IoT (`KvsCameraIoTPolicy`creata in precedenza) a questo certificato.

   ```
   aws --profile default iot attach-policy --policy-name KvsCameraIoTPolicy --target $(jq --raw-output '.certificateArn' certificate)
   ```

1. Allega AWS IoT thing (`kvs_example_camera_stream`) al certificato che hai appena creato: 

   ```
   aws --profile default iot attach-thing-principal --thing-name kvs_example_camera_stream --principal $(jq --raw-output '.certificateArn' certificate)
   ```

1. Per autorizzare le richieste tramite il provider di AWS IoT credenziali, è necessario l'endpoint delle AWS IoT credenziali, che è univoco per il proprio ID. Account AWS È possibile utilizzare il seguente comando per ottenere l'endpoint delle credenziali. AWS IoT 

   ```
   aws --profile default iot describe-endpoint --endpoint-type iot:CredentialProvider --output text > iot-credential-provider.txt
   ```

1. Oltre al certificato X.509 creato in precedenza, è necessario disporre anche di un certificato CA per stabilire la fiducia con il servizio di backend tramite TLS. Puoi ottenere il certificato CA utilizzando il comando seguente:

   ```
   curl --silent 'https://www.amazontrust.com/repository/SFSRootCAG2.pem' --output cacert.pem
   ```

### Fase 4: Verifica le AWS IoT credenziali con il tuo stream video Kinesis
<a name="how-iot-test-it"></a>

Ora puoi testare le AWS IoT credenziali che hai configurato finora. 

1. In primo luogo, creare un Kinesis Video Stream con cui testare questa configurazione.
**Importante**  
Create uno stream video con un nome identico al nome dell' AWS IoT oggetto creato nel passaggio precedente (`kvs_example_camera_stream`).

   ```
   aws kinesisvideo create-stream --data-retention-in-hours 24 --stream-name kvs_example_camera_stream
   ```

1. Quindi, chiamate il provider delle AWS IoT credenziali per ottenere le credenziali temporanee:

   ```
   curl --silent -H "x-amzn-iot-thingname:kvs_example_camera_stream" --cert certificate.pem --key private.pem.key https://IOT_GET_CREDENTIAL_ENDPOINT/role-aliases/KvsCameraIoTRoleAlias/credentials --cacert ./cacert.pem > token.json
   ```
**Nota**  
È possibile utilizzare il seguente comando per ottenere: `IOT_GET_CREDENTIAL_ENDPOINT`  

   ```
   IOT_GET_CREDENTIAL_ENDPOINT=`cat iot-credential-provider.txt`
   ```

   L'output JSON contiene il`accessKey`, e il `secretKey``sessionToken`, che è possibile utilizzare per accedere a Kinesis Video Streams.

1. Per il test, puoi utilizzare queste credenziali per richiamare l'API Kinesis Video `DescribeStream` Streams per il flusso video di esempio. `kvs_example_camera_stream`

   ```
   AWS_ACCESS_KEY_ID=$(jq --raw-output '.credentials.accessKeyId' token.json) AWS_SECRET_ACCESS_KEY=$(jq --raw-output '.credentials.secretAccessKey' token.json) AWS_SESSION_TOKEN=$(jq --raw-output '.credentials.sessionToken' token.json) aws kinesisvideo describe-stream --stream-name kvs_example_camera_stream
   ```

### Fase 5: Implementazione di AWS IoT certificati e credenziali sul file system della videocamera e streaming dei dati nel flusso video
<a name="how-iot-deploy"></a>

**Nota**  
I passaggi di questa sezione descrivono l'invio di file multimediali a un flusso video Kinesis da una videocamera che utilizza il. [Usa la libreria Producer C\$1\$1](producer-sdk-cpp.md)

1. Copia il certificato X.509, la chiave privata e il certificato CA generati nei passaggi precedenti nel file system della videocamera. Specificate i percorsi in cui sono archiviati questi file, il nome dell'alias del ruolo e l'endpoint delle AWS IoT credenziali per l'esecuzione del `gst-launch-1.0` comando o dell'applicazione di esempio. 

1. Il seguente comando di esempio utilizza l'autorizzazione AWS IoT del certificato per inviare video a Kinesis Video Streams: 

   ```
   gst-launch-1.0 rtspsrc location=rtsp://YourCameraRtspUrl short-header=TRUE ! rtph264depay ! video/x-h264,format=avc,alignment=au ! h264parse ! kvssink stream-name="kvs_example_camera_stream" aws-region="YourAWSRegion" iot-certificate="iot-certificate,endpoint=credential-account-specific-prefix.credentials.iot.aws-region.amazonaws.com,cert-path=/path/to/certificate.pem,key-path=/path/to/private.pem.key,ca-path=/path/to/cacert.pem,role-aliases=KvsCameraIoTRoleAlias"
   ```

## AWS IoT CertificateId come nome dello stream
<a name="how-iot-iotcertstreamname"></a>

Per rappresentare il tuo dispositivo (ad esempio, la tua videocamera) attraverso un AWS IoT oggetto, ma autorizzare un nome di stream diverso, puoi utilizzare l' AWS IoT `certificateId`attributo come nome dello stream e fornire le autorizzazioni Kinesis Video Streams sullo streaming che utilizza. AWS IoT I passaggi per eseguire questa operazione sono simili a quelli descritti in precedenza, con alcune modifiche.
+ Modifica la politica delle autorizzazioni in base al tuo ruolo IAM (`iam-permission-document.json`) come segue:

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "kinesisvideo:DescribeStream",
                  "kinesisvideo:PutMedia",
                  "kinesisvideo:TagStream",
                  "kinesisvideo:GetDataEndpoint"
              ],
              "Resource": "arn:aws:kinesisvideo:*:*:stream/${credentials-iot:AwsCertificateId}/*" 
          }
      ]
  }
  ```

------
**Nota**  
L'ARN risorsa utilizza l'ID certificato come segnaposto per il nome del flusso. L'autorizzazione IAM funzionerà quando utilizzi l'ID del certificato come nome dello stream. Ottieni l'ID del certificato dal certificato in modo da poterlo utilizzare come nome dello stream nella seguente descrizione della chiamata API stream.  

  ```
  export CERTIFICATE_ID=`cat certificate | jq --raw-output '.certificateId'`
  ```
+ Verificare questa modifica utilizzando il comando CLI describe-stream di Kinesis Video Streams:

  ```
  AWS_ACCESS_KEY_ID=$(jq --raw-output '.credentials.accessKeyId' token.json) AWS_SECRET_ACCESS_KEY=$(jq --raw-output '.credentials.secretAccessKey' token.json) AWS_SESSION_TOKEN=$(jq --raw-output '.credentials.sessionToken' token.json) aws kinesisvideo describe-stream --stream-name ${CERTIFICATE_ID}
  ```
+ Passa il CertificateID al provider di credenziali AWS IoT nell'applicazione di [esempio nell'SDK Kinesis](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/samples/kvs_gstreamer_sample.cpp) Video Streams C\$1\$1: 

  ```
  credential_provider = make_unique<IotCertCredentialProvider>(iot_get_credential_endpoint,
          cert_path,
          private_key_path,
          role_alias,
          ca_cert_path,
          certificateId);
  ```
**Nota**  
Tieni presente che lo stai passando al fornitore delle credenziali. `thingname` AWS IoT È possibile utilizzare `getenv` per passare il nome del oggetto all'applicazione demo in modo simile al passaggio degli altri AWS IoT attributi. Utilizzare l'ID certificato come nome del flusso nei parametri della riga di comando quando si esegue l'applicazione di esempio.

## Usa AWS IoT le credenziali per eseguire lo streaming su un nome di stream codificato
<a name="how-iot-hard-coded-stream"></a>

Per rappresentare il tuo dispositivo (ad esempio, la tua videocamera) attraverso un AWS IoT oggetto, ma autorizzare lo streaming verso uno specifico flusso video di Amazon Kinesis, fornisci le autorizzazioni di Amazon Kinesis Video Streams sullo streaming che utilizza. AWS IoT Il processo è simile alle sezioni precedenti, con alcune modifiche.

Modifica la politica delle autorizzazioni in base al tuo ruolo IAM (`iam-permission-document.json`) come segue:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kinesisvideo:DescribeStream",
                "kinesisvideo:PutMedia",
                "kinesisvideo:TagStream",
                "kinesisvideo:GetDataEndpoint"
            ],
            "Resource": "arn:aws:kinesisvideo:*:*:stream/YourStreamName/*" 
        }
    ]
}
```

------

Copia il certificato X.509, la chiave privata e il certificato CA generati nei passaggi precedenti nel file system della fotocamera. 

Specificate i percorsi in cui sono archiviati questi file, il nome dell'alias del ruolo, il nome dell' AWS IoT oggetto e l'endpoint delle AWS IoT credenziali per l'esecuzione del `gst-launch-1.0` comando o dell'applicazione di esempio.

Il seguente comando di esempio utilizza l'autorizzazione del AWS IoT certificato per inviare video ad Amazon Kinesis Video Streams:

```
gst-launch-1.0 rtspsrc location=rtsp://YourCameraRtspUrl short-header=TRUE ! rtph264depay ! video/x-h264,format=avc,alignment=au ! h264parse ! kvssink stream-name="YourStreamName" aws-region="YourAWSRegion" iot-certificate="iot-certificate,endpoint=credential-account-specific-prefix.credentials.iot.aws-region.amazonaws.com,cert-path=/path/to/certificate.pem,key-path=/path/to/private.pem.key,ca-path=/path/to/cacert.pem,role-aliases=KvsCameraIoTRoleAlias,iot-thing-name=YourThingName"
```

# Convalida della conformità per Amazon Kinesis Video Streams
<a name="akda-java-compliance"></a>

Per sapere se un Servizio AWS programma rientra nell'ambito di specifici programmi di conformità, consulta Servizi AWS la sezione [Ambito per programma di conformitàServizi AWS](https://aws.amazon.com/compliance/services-in-scope/) e scegli il programma di conformità che ti interessa. Per informazioni generali, consulta Programmi di [AWS conformità Programmi](https://aws.amazon.com/compliance/programs/) di di .

È possibile scaricare report di audit di terze parti utilizzando AWS Artifact. Per ulteriori informazioni, consulta [Scaricamento dei report in AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

La vostra responsabilità di conformità durante l'utilizzo Servizi AWS è determinata dalla sensibilità dei dati, dagli obiettivi di conformità dell'azienda e dalle leggi e dai regolamenti applicabili. Per ulteriori informazioni sulla responsabilità di conformità durante l'utilizzo Servizi AWS, consulta la [Documentazione AWS sulla sicurezza](https://docs.aws.amazon.com/security/).

# Resilienza in Amazon Kinesis Video Streams
<a name="disaster-recovery-resiliency"></a>

L'infrastruttura AWS globale è costruita attorno AWS a regioni e zone di disponibilità. AWS Le regioni forniscono più zone di disponibilità fisicamente separate e isolate, collegate con reti a bassa latenza, ad alto throughput e altamente ridondanti. Con le zone di disponibilità, è possibile progettare e gestire applicazioni e database che eseguono il failover automatico tra zone di disponibilità senza interruzioni. Le zone di disponibilità sono più disponibili, tolleranti ai guasti e scalabili rispetto alle infrastrutture tradizionali a data center singolo o multiplo. 

[Per ulteriori informazioni su AWS regioni e zone di disponibilità, consulta Global Infrastructure.AWS](https://aws.amazon.com/about-aws/global-infrastructure/)

# Sicurezza dell'infrastruttura in Kinesis Video Streams
<a name="infrastructure-security"></a>

In quanto servizio gestito, Amazon Kinesis Video Streams è protetto AWS dalle procedure di sicurezza di rete globali descritte [nel white paper Amazon Web Services: Overview of](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf) Security Processes.

Utilizzi chiamate API AWS pubblicate per accedere a Kinesis Video Streams attraverso la rete. I client devono supportare Transport Layer Security (TLS) 1.2 o versioni successive. I client devono, inoltre, supportare le suite di crittografia con PFS (Perfect Forward Secrecy), ad esempio Ephemeral Diffie-Hellman (DHE) o Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). La maggior parte dei sistemi moderni come Java 7 e versioni successive, supporta tali modalità. 

Inoltre, le richieste devono essere firmate utilizzando un ID di chiave di accesso e una chiave di accesso segreta associata a un principale IAM. In alternativa è possibile utilizzare [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) per generare credenziali di sicurezza temporanee per sottoscrivere le richieste.

# Le migliori pratiche di sicurezza per Kinesis Video Streams
<a name="security-best-practices"></a>

Amazon Kinesis Video Streams offre una serie di funzionalità di sicurezza da prendere in considerazione durante lo sviluppo e l'implementazione delle proprie politiche di sicurezza. Le seguenti best practice sono linee guida generali e non rappresentano una soluzione di sicurezza completa. Poiché queste best practice potrebbero non essere appropriate o sufficienti per l’ambiente, sono da considerare come considerazioni utili anziché prescrizioni. 

Per le best practice di sicurezza per i tuoi dispositivi remoti, consulta [Best practice per la sicurezza degli agenti dei dispositivi](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-DetectMetricsMessagesBestPract.html).

## Implementazione dell'accesso con privilegi minimi
<a name="security-best-practices-privileges"></a>

Quando concedi le autorizzazioni, sei tu a decidere chi ottiene quali autorizzazioni per quali risorse Kinesis Video Streams. È possibile abilitare operazioni specifiche che si desidera consentire su tali risorse. Pertanto è necessario concedere solo le autorizzazioni necessarie per eseguire un'attività. L'implementazione dell'accesso con privilegi minimi è fondamentale per ridurre i rischi di sicurezza e l'impatto risultante da errori o intenzioni dannose. 

Ad esempio, un produttore che invia dati a Kinesis Video Streams `PutMedia` richiede `GetStreamingEndpoint` solo, e. `DescribeStream` Non concedere autorizzazioni delle applicazioni del producer per tutte le operazioni (`*`) o per altre operazioni, ad esempio `GetMedia`.

Per ulteriori informazioni, consulta l'argomento che descrive [qual è il privilegio minimo e perché è necessario](https://www.beyondtrust.com/blog/entry/what-is-least-privilege).

## Uso di ruoli IAM
<a name="security-best-practices-roles"></a>

Le applicazioni Producer e Client devono disporre di credenziali valide per accedere a Kinesis Video Streams. Non devi archiviare credenziali AWS direttamente in un'applicazione client o in un bucket Amazon S3. Si tratta di credenziali a lungo termine che non vengono ruotate automaticamente e potrebbero avere un impatto aziendale significativo se vengono compromesse. 

Dovresti invece utilizzare un ruolo IAM per gestire le credenziali temporanee per le tue applicazioni di produzione e client per accedere a Kinesis Video Streams. Quando utilizzi un ruolo, non devi usare credenziali a lungo termine (come nome utente e password o chiavi di accesso) per accedere ad altre risorse.

Per ulteriori informazioni, consulta gli argomenti seguenti nella *Guida per l'utente IAM*:
+ [Ruoli IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
+ [Scenari comuni per ruoli: utenti, applicazioni e servizi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios.html)

## Utilizzalo CloudTrail per monitorare le chiamate API
<a name="security-best-practices-cloudtrail"></a>

Kinesis Video Streams AWS CloudTrail funziona con un servizio che fornisce una registrazione delle azioni intraprese da un utente, da un ruolo Servizio AWS o da un utente in Kinesis Video Streams.

È possibile utilizzare le informazioni raccolte CloudTrail per determinare la richiesta effettuata a Kinesis Video Streams, l'indirizzo IP da cui è stata effettuata la richiesta, chi ha effettuato la richiesta, quando è stata effettuata e ulteriori dettagli.

Per ulteriori informazioni, consulta [Registra le chiamate all'API Amazon Kinesis Video Streams con AWS CloudTrail](monitoring-cloudtrail.md).