

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-kplkcl-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 un producer e un consumer del flusso di dati Kinesis.


**Producer**  

| Azioni | Risorsa | Scopo | 
| --- | --- | --- | 
| DescribeStream, DescribeStreamSummary, DescribeStreamConsumer | Flusso di dati Kinesis | Prima di tentare di scrivere record, il producer controlla se il flusso esiste ed è attivo, se i frammenti sono contenuti nel flusso e se il flusso ha un consumer. | 
| SubscribeToShard, RegisterStreamConsumer | Flusso di dati Kinesis | Sottoscrive e registra un consumer a uno shard flusso di dati Kinesis. | 
| PutRecord, PutRecords | Flusso di dati Kinesis | Scrivi i dati 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 esiste, è attivo e contiene shard. | 
| GetRecords, GetShardIterator  | Flusso di dati Kinesis | Leggi i record da una partizione del flusso di dati Kinesis. | 
| CreateTable, DescribeTable, GetItem, PutItem, Scan, UpdateItem | Tabella Amazon DynamoDB | Se il consumer viene sviluppato utilizzando la Kinesis Client Library (KCL), avrà bisogno delle autorizzazioni a una tabella DynamoDB per monitorare lo stato di elaborazione dell'applicazione. Il primo consumer avviato crea la tabella.  | 
| 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 questa applicazione, devi creare una singola policy IAM che conceda tutte le autorizzazioni precedenti. In pratica, potresti voler creare due policy, una per i producer e una per i consumer.

**Per creare una policy IAM**

1. Individuare l'Amazon Resource Name (ARN) per il nuovo flusso. 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 regione, ad esempio, `us-west-2`. 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 in Impostazioni account.](https://console.aws.amazon.com/billing/home?#/account)  
*nome*  
Il nome del flusso dal [Crea un flusso di dati](tutorial-stock-data-kplkcl-create-stream.md), ovvero `StockTradeStream`.

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

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

   La regione e l'account sono gli stessi della fase precedente, ma questa volta il *nome* è quello della tabella creata e utilizzata dall'applicazione consumer. La KCL utilizzata dal consumer usa il nome dell'applicazione come nome della tabella. Utilizzare `StockTradesProcessor`, che è il nome dell'applicazione utilizzato successivamente.

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 creato alla fase 1.

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-kplkcl-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 quello seguente:

------
#### [ 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. Cercare la policy creata per nome. 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-kplkcl-iam-next"></a>

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