

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 e dei costi di crittografia di Amazon SNS
<a name="sns-key-management"></a>

Nelle sezioni seguenti vengono fornite informazioni sull'utilizzo delle chiavi gestite in AWS Key Management Service (AWS KMS).

**Nota**  
Amazon SNS supporta solo chiavi KMS di crittografia simmetrica. Non è possibile utilizzare nessun altro tipo di chiave KMS per crittografare le risorse del servizio. Per informazioni su come determinare se una chiave KMS è simmetrica o asimmetrica, consultare [Identifying asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) (Individuazione di chiavi KMS asimmetriche).

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

Per prevedere i costi e comprendere meglio la tua AWS bolletta, potresti voler sapere con quale frequenza Amazon SNS utilizza la tua. AWS KMS key

**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 SNS.

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

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

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

`D` è il periodo di riutilizzo della chiave dati (in secondi–Amazon SNS riutilizza una chiave dati per un massimo di 5 minuti).

`P` è il numero di [principali](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Principal) per la pubblicazione che effettuano invii all’argomento Amazon SNS.

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 1 editore e 1 argomento
<a name="example-1-topic-1-publisher"></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 è di 5 minuti (300 secondi).
+ C'è 1 argomento.
+ C'è un principale per la pubblicazione.

```
2,678,400 / 300 * (2 * 1) = 17,856
```

### Esempio 2: calcolo del numero di chiamate AWS KMS API per più editori e 2 argomenti
<a name="example-2-topics-multiple-publishers"></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 è di 5 minuti (300 secondi).
+ Ci sono 2 argomenti.
+ Il primo argomento ha 3 principali per la pubblicazione.
+ Il secondo argomento ha 5 principali per la pubblicazione.

```
(2,419,200 / 300 * (2 * 3)) + (2,419,200 / 300 * (2 * 5)) = 129,024
```

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

Prima di poter utilizzare SSE, è necessario configurare AWS KMS key le politiche per consentire la crittografia degli argomenti e la crittografia e la decrittografia dei messaggi. Per esempi e ulteriori informazioni sulle autorizzazioni di AWS KMS , consulta [AWS KMS Autorizzazioni API: Documentazione su operazioni e risorse](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) nella*AWS Key Management Service Guida per sviluppatori*. Per dettagli su come configurare un argomento Amazon SNS con crittografia lato server, consulta [Informazioni aggiuntive](sns-enable-encryption-for-topic.md#set-up-topic-with-sse).

**Nota**  
È possibile gestire le autorizzazioni per le chiavi KMS utilizzando le policy IAM. Per ulteriori informazioni, consulta [Using IAM](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) Policies with. AWS KMS  
Sebbene sia possibile configurare le autorizzazioni globali per l'invio e la ricezione da Amazon SNS AWS KMS , è necessario nominare esplicitamente l' KMSs ARN completo di in regioni `Resource` specifiche nella sezione di una policy IAM.

È inoltre necessario assicurarsi che le politiche chiave di consentano le AWS KMS key autorizzazioni necessarie. Per eseguire questa operazione, denomina i principali che producono e utilizzano messaggi crittografati in Amazon SNS come utenti nella policy della chiave KMS. 

In alternativa, puoi specificare AWS KMS le azioni richieste e l'ARN KMS in una policy IAM assegnata ai principali che pubblicano e sottoscrivono per ricevere messaggi crittografati in Amazon SNS. Per ulteriori informazioni, consulta [Gestione dell'accesso a AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html#managing-access) nella *Guida per sviluppatori di AWS Key Management Service *.

Se stai selezionando una chiave gestita dal cliente per l'argomento Amazon SNS e stai utilizzando alias per controllare l'accesso alle chiavi KMS utilizzando le policy IAM o le policy delle chiavi KMS con la chiave di condizione `kms:ResourceAliases`, assicurati che alla chiave gestita dal cliente selezionata sia associato anche un alias. Per ulteriori informazioni sull'uso degli alias per controllare l'accesso alle chiavi KMS, consulta [Using aliases to control access to KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/alias-authorization.html) (Utilizzo degli alias per controllare l'accesso alle chiavi KMS) nella *Guida per gli sviluppatori di AWS Key Management Service *.

### Consentire a un utente di inviare messaggi a un argomento con SEE
<a name="send-to-encrypted-topic"></a>

L'editore deve avere le autorizzazioni `kms:GenerateDataKey*` e `kms:Decrypt` per la chiave AWS KMS key.

```
{
  "Statement": [{
    "Effect": "Allow",
    "Action": [
      "kms:GenerateDataKey*",
      "kms:Decrypt"
    ],
    "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
  }, {
    "Effect": "Allow",
    "Action": [
      "sns:Publish"
    ],
    "Resource": "arn:aws:sns:*:123456789012:MyTopic"
  }]
}
```

### Abilita la compatibilità tra le fonti di eventi provenienti dai AWS servizi e gli argomenti crittografati
<a name="compatibility-with-aws-services"></a>

Diversi AWS servizi pubblicano eventi su argomenti di Amazon SNS. Per consentire a queste origini eventi di utilizzare argomenti crittografati, devi eseguire la seguente procedura.

1. Utilizzo di una chiave 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 al AWS servizio di disporre delle `kms:Decrypt` autorizzazioni `kms:GenerateDataKey*` and, aggiungi la seguente dichiarazione alla politica KMS.

   ```
   {
     "Statement": [{
       "Effect": "Allow",
       "Principal": {
         "Service": "service.amazonaws.com"
       },
       "Action": [
         "kms:GenerateDataKey*",
         "kms:Decrypt"
       ],
       "Resource": "*"
     }]
   }
   ```    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sns/latest/dg/sns-key-management.html)
**Nota**  
Alcune fonti di eventi Amazon SNS richiedono di fornire un ruolo IAM (anziché il responsabile del servizio) nella AWS KMS key policy:  
[Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html)
[Amazon Elastic Transcoder](https://docs.aws.amazon.com/elastictranscoder/latest/developerguide/notifications.html)
[AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/approvals.html#approvals-configuration-options)
[AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/notifications-for-AWS-Config.html)
[AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.managing.sns.html)
[AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sns-rule.html)
[EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/ibhow-integrations.html#integ-sns-encrypted)

1. Aggiungi le chiavi di condizione `aws:SourceAccount` e `aws:SourceArn` per la policy delle risorse KMS per proteggere ulteriormente la chiave KMS da attacchi [confused deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html). Fare riferimento all'elenco della documentazione specifica del servizio (sopra) per i dettagli esatti in ciascun caso.
**Importante**  
L'aggiunta di `aws:SourceAccount``aws:SourceArn`, e `aws:SourceOrgID` a una AWS KMS policy non è supportata per EventBridge-to-encrypted gli argomenti.

   ```
   {
     "Effect": "Allow",
     "Principal": {
       "Service": "service.amazonaws.com"
     },
     "Action": [
       "kms:GenerateDataKey*",
       "kms:Decrypt"
     ],
     "Resource": "*",
     "Condition": {
       "StringEquals": {
         "aws:SourceAccount": "customer-account-id"
       },
       "ArnLike": {
         "aws:SourceArn": "arn:aws:service:region:customer-account-id:resource-type:customer-resource-id"
       }
     }
   }
   ```

1. [Abilitare SSE per il proprio argomento](sns-enable-encryption-for-topic.md) utilizzando la chiave KMS.

1. Fornire l'ARN dell'argomento crittografato per l'origine eventi.

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

Quando lavori con Amazon SNS e AWS KMS, potresti riscontrare errori. Di seguito sono descritti gli errori e le possibili opzioni per la risoluzione dei problemi.

**KMSAccessDeniedException**  
Il testo cifrato fa riferimento a una chiave che non esiste o a cui non hai accesso.  
Codice di stato HTTP: 400

**KMSDisabledEccezione**  
La richiesta è stata rifiutata perché la chiave KMS specificata non è abilitata.  
Codice di stato HTTP: 400

**KMSInvalidStateException**  
La richiesta è stata rifiutata perché lo stato della risorsa specificata non è valido per questa richiesta. Per ulteriori informazioni, consulta [Key states of AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) (Stati chiave nelle chiavi AWS KMS keys) nella *Guida per gli sviluppatori di AWS Key Management Service *.  
Codice di stato HTTP: 400

**KMSNotFoundException**  
La richiesta è stata rifiutata perché non è possibile trovare l'entità o la risorsa specificata.  
Codice di stato HTTP: 400

**KMSOptInRequired**  
L'ID della chiave di AWS accesso richiede un abbonamento al servizio.  
Codice di stato HTTP: 403

**KMSThrottlingEccezione**  
La richiesta è stata negata a causa del throttling della richiesta. Per ulteriori informazioni sulla limitazione della larghezza di banda della rete consulta [Quote](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html#requests-per-second) nella *Guida per gli sviluppatori di AWS Key Management Service *.  
Codice di stato HTTP: 400