

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

# Crea una policy e un utente IAM
<a name="tutorial-stock-data-kplkcl2-iam"></a>

Le migliori pratiche di sicurezza per AWS imporre l'uso di autorizzazioni granulari per controllare l'accesso a diverse risorse. AWS Identity and Access Management (IAM) consente di gestire gli utenti e le autorizzazioni degli utenti in. AWS Una [policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html) elenca in modo esplicito le operazioni consentite e le risorse per le quali sono applicabili le operazioni.

Di seguito sono elencate le autorizzazioni minime generali richieste per i producer e i consumer del flusso di dati Kinesis.


**Producer**  

| Azioni | Risorsa | Scopo | 
| --- | --- | --- | 
| DescribeStream, DescribeStreamSummary, DescribeStreamConsumer | Flusso di dati Kinesis | Prima di leggere i record, il consumer verifica se il flusso di dati esiste, è attivo e contiene il flusso di dati. | 
| SubscribeToShard, RegisterStreamConsumer | Flusso di dati Kinesis | Sottoscrive e registra i consumer in un frammento. | 
| PutRecord, PutRecords | Flusso di dati Kinesis | Scrivi i record in un flusso di dati Kinesis. | 


**Consumer**  

| **Azioni** | **Risorsa** | **Scopo** | 
| --- | --- | --- | 
| DescribeStream | Flusso di dati Kinesis | Prima di leggere i record, il consumer verifica se il flusso di dati esiste, è attivo e contiene il flusso di dati. | 
| GetRecords, GetShardIterator  | Flusso di dati Kinesis | Legge record da uno shard. | 
| CreateTable, DescribeTable, GetItem, PutItem, Scan, UpdateItem | Tabella Amazon DynamoDB | Se il consumer viene sviluppato utilizzando la Kinesis Client Library (KCL) (versione 1.x o 2.x), deve disporre delle autorizzazioni a una tabella DynamoDB per monitorare lo stato di elaborazione dell'applicazione. | 
| DeleteItem | Tabella Amazon DynamoDB | Per quando il consumatore esegue split/merge operazioni sugli shard Kinesis Data Streams. | 
| PutMetricData |  CloudWatch Registro Amazon | KCL carica anche le metriche su CloudWatch, utili per monitorare l'applicazione. | 

Per questo tutorial, creerai un'unica policy IAM che concede tutte le autorizzazioni precedenti. In produzione, si consiglia di creare due policy, una per i producer e una per i consumer.

**Per creare una policy IAM**

1. Individua l'Amazon Resource Name (ARN) per il nuovo flusso di dati creato nel passaggio precedente. Questo ARN è elencato come **Stream ARN (ARN flusso)** nella parte superiore della scheda **Details (Dettagli)**. Di seguito è riportato il formato ARN:

   ```
   arn:aws:kinesis:region:account:stream/name
   ```  
*region*  
Il codice AWS regionale, `us-west-2` ad esempio. Per ulteriori informazioni, consulta [Concetti di regione e zona di disponibilità](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-regions-availability-zones).  
*account*  
L'ID AWS dell'account, come mostrato nelle [Impostazioni dell'account](https://console.aws.amazon.com/billing/home?#/account).  
*nome*  
Il nome del flusso di dati creato nel passaggio precedente, ovvero`StockTradeStream`.

1. Determinare l'ARN per la tabella DynamoDB che verrà utilizzata dal consumer (e che verrà creata dalla prima istanza consumer). Deve essere nel seguente formato:

   ```
   arn:aws:dynamodb:region:account:table/name
   ```

   La regione e l'ID account sono identici ai valori nell'ARN del flusso di dati utilizzato per questo tutorial, ma il *nome è il nome* della tabella DynamoDB creata e utilizzata dall'applicazione consumer. KCL utilizza il nome dell'applicazione come nome della tabella. In questo passaggio, utilizzare `StockTradesProcessor` per il nome della tabella DynamoDB, poiché è il nome dell'applicazione utilizzato nelle fasi successive di questo tutorial.

1. **Nella console IAM, in **Policies ([https://console.aws.amazon.com/iam/home \$1policies](https://console.aws.amazon.com/iam/home#policies)), scegli Crea policy**.** Se è la prima volta che si utilizzano le policy IAM, scegli **Inizia**, **Crea policy**.

1. Scegliere **Select (Seleziona)** accanto a **Policy Generator (Generatore di policy)**.

1. Scegli **Amazon Kinesis** come servizio. AWS 

1. Selezionare `DescribeStream`, `GetShardIterator`, `GetRecords`, `PutRecord` e `PutRecords` come operazioni consentite.

1. Inserire l'ARN del flusso di dati che si sta utilizzando in questo tutorial.

1. Utilizzare **Add Statement (Aggiungi istruzione)** per ciascuno dei seguenti elementi:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/streams/latest/dev/tutorial-stock-data-kplkcl2-iam.html)

   L'asterisco (`*`) che viene utilizzato quando si specifica un ARN non è richiesto. In questo caso, è perché non esiste una risorsa specifica CloudWatch su cui viene richiamata l'`PutMetricData`azione.

1. Selezionare **Next Step (Fase successiva)**.

1. Modificare **Policy Name (Nome policy)** in `StockTradeStreamPolicy`, rivedere il codice e scegliere **Create Policy (Crea policy)**.

Il documento della policy risultante dovrebbe essere simile a questo:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Stmt123",
            "Effect": "Allow",
            "Action": [
                "kinesis:DescribeStream",
                "kinesis:PutRecord",
                "kinesis:PutRecords",
                "kinesis:GetShardIterator",
                "kinesis:GetRecords",
                "kinesis:ListShards",
                "kinesis:DescribeStreamSummary",
                "kinesis:RegisterStreamConsumer"
            ],
            "Resource": [
                "arn:aws:kinesis:us-west-2:111122223333:stream/StockTradeStream"
            ]
        },
        {
            "Sid": "Stmt234",
            "Effect": "Allow",
            "Action": [
                "kinesis:SubscribeToShard",
                "kinesis:DescribeStreamConsumer"
            ],
            "Resource": [
                "arn:aws:kinesis:us-west-2:111122223333:stream/StockTradeStream/*"
            ]
        },
        {
            "Sid": "Stmt456",
            "Effect": "Allow",
            "Action": [
                "dynamodb:*"
            ],
            "Resource": [
                "arn:aws:dynamodb:us-west-2:111122223333:table/StockTradesProcessor"
            ]
        },
        {
            "Sid": "Stmt789",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

**Per creare un utente IAM**

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nella pagina **Users (Utenti)**, scegliere **Add user (Aggiungi utente)**.

1. Per **Nome utente**, digita `StockTradeStreamUser`.

1. Per **Access type (Tipo di accesso)**, scegliere **Programmatic access (Accesso programmatico)**, quindi selezionare **Next: Permissions (Successivo: autorizzazioni)**.

1. Scegli **Attach existing policies directly (Collega direttamente le policy esistenti)**.

1. Cerca per nome la politica che hai creato nella procedura precedente (. `StockTradeStreamPolicy` Selezionare la casella a sinistra del nome della policy, quindi scegliere **Next: Review (Successivo: revisione)**.

1. Rivedere i dettagli e il riepilogo, quindi scegliere **Create user (Crea utente)**.

1. Copiare l'**ID chiave di accesso** e salvarlo privatamente. In **Secret access key (Chiave di accesso segreta)**, scegliere **Show (Mostra)** e salvare anche la chiave privatamente.

1. Incollare la chiave segreta e quella di accesso su un file locale in un luogo sicuro non accessibile ad altri. Per questa applicazione, è necessario creare un file denominato ` ~/.aws/credentials` (con autorizzazioni rigorose). Il file deve avere il formato seguente:

   ```
   [default]
   aws_access_key_id=access key
   aws_secret_access_key=secret access key
   ```

**Collegamento di una policy IAM a un utente**

1. Nella console IAM, apri [Policy](https://console.aws.amazon.com/iam/home?#policies) e scegli **Operazioni di policy**. 

1. Scegliere `StockTradeStreamPolicy` e **Attach (Collega)**.

1. Scegliere `StockTradeStreamUser` e **Attach Policy (Collega policy)**.

## Fasi successive
<a name="tutorial-stock-data-kplkcl2-iam-next"></a>

[Scarica e crea il codice](tutorial-stock-data-kplkcl2-download.md)