

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

# Gestione delle chiavi Amazon SQS
<a name="sqs-key-management"></a>

Amazon SQS si integra con AWS Key Management Service (KMS) per gestire le [chiavi KMS per la crittografia lato server (SSE](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)). Per informazioni su SSE e definizioni di gestione delle chiavi, consulta la sezione [Crittografia inattiva in Amazon SQS](sqs-server-side-encryption.md). Amazon SQS utilizza le chiavi KMS per convalidare e proteggere le chiavi di dati che crittografano e decrittografano i messaggi. Nelle sezioni seguenti vengono fornite informazioni sull'utilizzo delle chiavi KMS e delle chiavi di dati nel servizio Amazon SQS.

## Configurazione delle autorizzazioni AWS KMS
<a name="sqs-what-permissions-for-sse"></a>

Ogni chiave KMS deve avere una policy delle chiavi. Tieni presente che non puoi modificare la politica delle chiavi di una chiave KMS AWS gestita per Amazon SQS. La policy per questa chiave KMS include le autorizzazioni per tutte le entità principali nell'account (che sono autorizzate a utilizzare Amazon SQS) per usare le code crittografate. 

 Amazon SQS distingue i chiamanti in base alle loro AWS credenziali, indipendentemente dal fatto che utilizzino AWS account, utenti IAM o ruoli IAM diversi. Inoltre, lo stesso ruolo IAM con politiche di scoping diverse verrà trattato come richiedenti distinti. Tuttavia, quando si utilizzano le sessioni di ruolo IAM, variando solo e `RoleSessionName` mantenendo le stesse politiche di ruolo e ambito IAM non si creano richiedenti distinti. Pertanto, quando specifichi i principi AWS KMS chiave delle policy, evita di fare affidamento solo sulle `RoleSessionName` differenze, poiché queste sessioni verranno trattate come lo stesso richiedente. 

In alternativa, puoi specificare le autorizzazioni richieste in una policy IAM assegnata alle entità principal che producono e utilizzano messaggi crittografati. Per ulteriori informazioni, consulta [Utilizzo delle policy IAM con AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) nella *Guida per gli sviluppatori di AWS Key Management Service *.

**Nota**  
Sebbene sia possibile configurare le autorizzazioni globali per l'invio e la ricezione da Amazon SQS AWS KMS , è necessario denominare in modo esplicito l'ARN completo delle chiavi KMS in regioni `Resource` specifiche nella sezione di una policy IAM.

### AWS Configura le autorizzazioni KMS per i servizi
<a name="compatibility-with-aws-services"></a>

Diversi AWS servizi fungono da sorgenti di eventi in grado di inviare eventi alle code di Amazon SQS. Per consentire a queste fonti di eventi di funzionare con code crittografate, devi creare una chiave KMS gestita dal cliente e aggiungere le autorizzazioni nella policy chiave affinché il servizio utilizzi i metodi API richiesti. AWS KMS Esegui la procedura seguente per configurare le autorizzazioni.

**avvertimento**  
Quando modifichi la chiave KMS per crittografare i tuoi messaggi Amazon SQS, tieni presente che i messaggi esistenti crittografati con la vecchia chiave KMS rimarranno crittografati con quella chiave. Per decrittografare questi messaggi, devi conservare la vecchia chiave KMS e assicurarti che la relativa politica delle chiavi conceda ad Amazon SQS le autorizzazioni per e. `kms:Decrypt` `kms:GenerateDataKey` Dopo l'aggiornamento a una nuova chiave KMS per crittografare nuovi messaggi, assicurati che tutti i messaggi esistenti crittografati con la vecchia chiave KMS vengano elaborati e rimossi dalla coda prima di eliminare o disabilitare la vecchia chiave KMS.

1. Crea una chiave KMS gestita dal cliente Per ulteriori informazioni, consulta [Creazione di chiavi](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) nella *Guida per gli sviluppatori di AWS Key Management Service *.

1. Per consentire all'origine degli eventi del AWS servizio di utilizzare i metodi `kms:Decrypt` e `kms:GenerateDataKey` API, aggiungi la seguente dichiarazione alla politica delle chiavi KMS.

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
         "Statement": [{
            "Effect": "Allow",
            "Principal": {
               "Service": "service.amazonaws.com"
            },
            "Action": [
               "kms:Decrypt",
               "kms:GenerateDataKey"
            ],
            "Resource": "*"
          }]
   }
   ```

------

   Sostituire "service" nell'esempio precedente con il *nome del servizio* dell'origine evento. Le origini eventi includono i seguenti servizi.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-key-management.html)

1.  [Configura una coda SSE esistente](sqs-configure-sse-existing-queue.md) utilizzando l'ARN della tua chiave KMS.

1. Fornire l'ARN della coda crittografata per l'origine eventi.

### Configura le AWS KMS autorizzazioni per i produttori
<a name="send-to-encrypted-queue"></a>

Quando scade il [periodo di riutilizzo della chiave dati](#sqs-how-does-the-data-key-reuse-period-work), la successiva chiamata del produttore a `SendMessage` o `SendMessageBatch` attiva anche le chiamate a `kms:Decrypt` e `kms:GenerateDataKey`. La chiamata a `kms:Decrypt` è per verificare l'integrità della nuova chiave dati prima di utilizzarla. Il produttore deve quindi avere le autorizzazioni `kms:Decrypt` e `kms:GenerateDataKey` per la chiave KMS. 

Aggiungere la seguente istruzione alla policy IAM del produttore. Ricordarsi di utilizzare i valori ARN corretti per la risorsa chiave e la risorsa coda.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-2:123456789012:key/111112222233333"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sqs:SendMessage"
            ],
            "Resource": "arn:aws:sqs:*:123456789012:MyQueue"
        }
    ]
}
```

------

### Configura le AWS KMS autorizzazioni per i consumatori
<a name="receive-from-encrypted-queue"></a>

Quando scade il periodo di riutilizzo della chiave dati, la successiva chiamata del consumatore a `ReceiveMessage` attiva anche una chiamata a `kms:Decrypt` per verificare l'integrità della nuova chiave dati prima di utilizzarla. Il consumatore deve avere l'autorizzazione `kms:Decrypt` per qualsiasi chiave KMS che viene utilizzata per crittografare i messaggi nella coda specificata. Se una coda funge da [coda DLQ](sqs-dead-letter-queues.md), il consumatore deve avere anche l'autorizzazione `kms:Decrypt` per qualsiasi chiave KMS che viene utilizzata per crittografare i messaggi nella coda di origine. Aggiungere la seguente istruzione alla policy IAM del consumatore. Ricordarsi di utilizzare i valori ARN corretti per la risorsa chiave e la risorsa coda.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-2:123456789012:key/111112222233333"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sqs:ReceiveMessage"
            ],
            "Resource": "arn:aws:sqs:*:123456789012:MyQueue"
        }
    ]
}
```

------

### Configura le AWS KMS autorizzazioni con una protezione sostitutiva confusa
<a name="sqs-adding-confused-deputy-protection"></a>

Quando il principale di una istruzione della policy della chiave è un [Principale del servizio AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), è possibile utilizzare le chiavi di condizione globali [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) o [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) per proteggersi dal [problema del "confused deputy"](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html). Per utilizzare queste chiavi di condizione, impostare il valore sul nome della risorsa Amazon (ARN) della risorsa crittografata. Se non si conosce l'ARN della risorsa, utilizzare `aws:SourceAccount`. 

In questa policy della chiave KMS, una risorsa specifica del *servizio* di proprietà dell'account `111122223333` può richiamare KMS per le operazioni `Decrypt` e `GenerateDataKey` che si verificano durante l'utilizzo SSE di Amazon SQS.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "sqs.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "aws:SourceArn": [
                        "arn:aws:sqs:us-west-1:111122223333:resource"
                    ]
                }
            }
        }
    ]
}
```

------

Quando si utilizzano code Amazon SQS abilitate per SSE, sono supportati i seguenti servizi `aws:SourceArn`:
+ Amazon SNS
+ Simple Storage Service (Amazon S3)
+ CloudWatch Eventi
+ AWS Lambda
+ CodeBuild
+ Amazon Connect Customer Profiles
+ AWS Auto Scaling
+ Amazon Chime

## Informazioni sul periodo di riutilizzo della chiave di dati
<a name="sqs-how-does-the-data-key-reuse-period-work"></a>

Il [periodo di riutilizzo della chiave di dati](sqs-server-side-encryption.md#sqs-sse-key-terms) definisce la durata massima per Amazon SQS per riutilizzare la stessa chiave dati. Quando termina il periodo di riutilizzo della chiave di dati, Amazon SQS genera una nuova chiave di dati. Prendere nota delle seguenti linee guida sul periodo di riutilizzo.
+ Un periodo di riutilizzo più breve offre una maggiore sicurezza, ma comporta un maggior numero di chiamate verso AWS KMS, il che potrebbe comportare addebiti oltre il piano gratuito.
+ Anche se la chiave di dati viene memorizzata nella cache separatamente per la crittografia e la decrittografia, il periodo di riutilizzo si applica a entrambe le copie della chiave di dati.
+ Al termine del periodo di riutilizzo della chiave dati, la chiamata successiva `SendMessage` o `SendMessageBatch` in genere attiva una chiamata al AWS KMS `GenerateDataKey` metodo per ottenere una nuova chiave dati. Inoltre, ogni chiamata successiva a `SendMessage` e `ReceiveMessage` attiverà ciascuna una chiamata AWS KMS `Decrypt` a per verificare l'integrità della chiave dati prima di utilizzarla.
+ [I responsabili](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Principal) (Account AWS o gli utenti) non condividono le chiavi dati (i messaggi inviati da destinatari univoci ottengono sempre chiavi dati uniche). Pertanto, il volume delle chiamate verso AWS KMS è un multiplo del numero di principali univoci in uso durante il periodo di riutilizzo della chiave dati.

## Stima dei costi AWS KMS
<a name="sqs-estimate-kms-usage-costs"></a>

Per prevedere i costi e comprendere meglio la AWS fattura, potresti voler sapere con quale frequenza Amazon SQS utilizza la tua chiave KMS.

**Nota**  
Anche se la seguente formula può darti un'idea molto precisa dei costi previsti, i costi effettivi potrebbero essere più elevati a causa della natura diffusa di Amazon SQS.

Per calcolare il numero di richieste API (`R`) *per coda*, usa la formula seguente:

```
R = (B / D) * (2 * P + C)
```

`B` è il periodo di fatturazione (in secondi).

`D` è il [periodo di riutilizzo della chiave di dati](sqs-server-side-encryption.md#sqs-sse-key-terms) (in secondi).

`P` è il numero di [principali](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Principal) produttori che effettuano invii alla coda Amazon SQS.

`C` è il numero di principali consumatori che ricevono dalla coda Amazon SQS.

**Importante**  
In generale, ai principali produttori viene addebitato un importo doppio rispetto ai principali consumatori. Per ulteriori informazioni, consulta [Informazioni sul periodo di riutilizzo della chiave di dati](#sqs-how-does-the-data-key-reuse-period-work).  
Se il produttore e l'utilizzatore hanno utenti diversi, il costo aumenta.

Di seguito vengono riportati esempi di calcolo. Per informazioni dettagliate sui prezzi, consulta [Prezzi di AWS Key Management Service](https://aws.amazon.com/kms/pricing/).

### Esempio 1: calcolo del numero di chiamate AWS KMS API per 2 principali e 1 coda
<a name="example-1-queue-2-principals"></a>

Questo esempio assume quanto segue:
+ Il periodo di fatturazione è compreso tra il 1° e il 31 gennaio (2.678.400 secondi).
+ Il periodo di riutilizzo della chiave di dati è impostato su 5 minuti (300 secondi).
+ C'è una coda.
+ C'è 1 principale produttore e 1 principale consumatore.

```
(2,678,400 / 300) * (2 * 1 + 1) = 26,784
```

### Esempio 2: calcolo del numero di chiamate AWS KMS API per più produttori e consumatori e 2 code
<a name="example-2-queues-multiple-principals"></a>

Questo esempio assume quanto segue:
+ Il periodo di fatturazione è compreso tra il 1° e il 28 febbraio (2.419.200 secondi).
+ Il periodo di riutilizzo della chiave di dati è impostato su 24 ore (86.400 secondi).
+ Ci sono 2 code.
+ La prima coda ha 3 principali produttori e 1 principale consumatore.
+ La seconda coda ha 5 principali produttori e 2 principali consumatori.

```
(2,419,200 / 86,400 * (2 * 3 + 1)) + (2,419,200 / 86,400 * (2 * 5 + 2)) = 532
```

## AWS KMS errori
<a name="sqs-sse-troubleshooting-errors"></a>

Quando lavori con Amazon SQS e AWS KMS, potresti riscontrare errori. I seguenti riferimenti descrivono gli errori e le possibili soluzioni di risoluzione dei problemi.
+ [Errori comuni AWS KMS](https://docs.aws.amazon.com/kms/latest/APIReference/CommonErrors.html)
+ [Errori di decrittografia AWS KMS](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html#API_Decrypt_Errors)
+ [AWS KMS GenerateDataKey errori](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html#API_GenerateDataKey_Errors)