

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

# Contesto di crittografia
<a name="encrypt_context"></a>

**Nota**  
Non è possibile specificare un contesto di crittografia in un'operazione di crittografia con una [chiave KMS asimmetrica](symmetric-asymmetric.md) o una [chiave KMS HMAC](hmac.md). Gli algoritmi asimmetrici e gli algoritmi MAC non supportano un contesto di crittografia.

Tutte le [operazioni AWS KMS crittografiche](kms-cryptography.md#cryptographic-operations) con [chiavi KMS a crittografia simmetrica](symm-asymm-choose-key-spec.md#symmetric-cmks) accettano un *contesto di crittografia*, un set opzionale di coppie chiave-valore non segrete che possono contenere informazioni contestuali aggiuntive sui dati. È possibile inserire un contesto di crittografia nelle `Encrypt` operazioni AWS KMS per migliorare l'autorizzazione e la verificabilità delle chiamate di decrittografia delle API. AWS KMS AWS KMS utilizza il contesto di crittografia come dati autenticati aggiuntivi (AAD) per supportare la crittografia autenticata. Il contesto di crittografia è associato crittograficamente al testo cifrato in modo che lo stesso contesto di crittografia sia necessario per decrittografare i dati.

Il contesto di crittografia non è segreto e non è crittografato. Appare in testo normale nei [log AWS CloudTrail](logging-using-cloudtrail.md) in modo da poterlo utilizzare per individuare e categorizzare le operazioni di crittografia. Il contesto di crittografia non dovrebbe includere informazioni sensibili. È consigliabile che il contesto di crittografia descriva i dati crittografati o decrittografati. Ad esempio, quando si esegue la crittografia di un file, è possibile utilizzare parte del percorso di file come contesto di crittografia.

```
"encryptionContext": {
    "department": "10103.0"
}
```

Ad esempio, quando crittografa volumi e snapshot creati con l'operazione [Amazon Elastic Block Store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) (Amazon EBS) [CreateSnapshot](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSnapshot.html), Amazon EBS utilizza l'ID del volume come valore del contesto di crittografia.

```
"encryptionContext": {
  "aws:ebs:id": "vol-abcde12345abc1234"
}
```

Puoi anche utilizzare il contesto di crittografia per perfezionare o limitare l'accesso al tuo account. AWS KMS keys È possibile utilizzare il contesto di crittografia [come vincolo nelle concessioni](grants.md) e come una *[condizione nelle istruzioni di policy](policy-conditions.md)*. Le chiavi del contesto di crittografia e i relativi valori possono essere stringhe arbitrarie con. `aws` [Questi valori contrastano con [tag AWS generati](https://docs.aws.amazon.com/tag-editor/latest/userguide/best-practices-and-strats.html#tag-conventions) come aws:cloudformation:stack-name.](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-resource-tags.html) Per ulteriori informazioni, consulta [*kms:: chiave contestuale EncryptionContext*](conditions-kms.md#conditions-kms-encryption-context) 

Per informazioni su come utilizzare il contesto di crittografia per proteggere l'integrità dei dati crittografati, consulta il post [Come proteggere l'integrità dei dati crittografati utilizzando e sul](https://aws.amazon.com/blogs/security/how-to-protect-the-integrity-of-your-encrypted-data-by-using-aws-key-management-service-and-encryptioncontext/) blog sulla sicurezza. AWS Key Management Service EncryptionContext AWS 

## Regole sul contesto di crittografia
<a name="encryption-context-rules"></a>

AWS KMS applica le seguenti regole per le chiavi e i valori del contesto di crittografia.
+ La chiave e il valore in una coppia del contesto di crittografia devono essere stringhe letterali semplici. Se utilizzi un tipo diverso, ad esempio integer o float, AWS KMS lo interpreta come una stringa.
+ Le chiavi e i valori in un contesto di crittografia possono includere caratteri Unicode. Se un contesto di crittografia include caratteri non consentiti nelle policy della chiave o nelle policy IAM, non sarà possibile specificare il contesto di crittografia nelle chiavi di condizioni della policy, ad esempio [`kms:EncryptionContext:context-key`](conditions-kms.md#conditions-kms-encryption-context) e [`kms:EncryptionContextKeys`](conditions-kms.md#conditions-kms-encryption-context-keys). Per maggiori informazioni sulle regole delineate nel documento delle policy delle chiavi, consulta la sezione [Formato della policy della chiave](key-policy-overview.md#key-policy-format). Per informazioni dettagliate sulle regole delineate nel documento delle policy IAM, consulta la sezione [Requisiti del nome IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-names) nella *Guida per l'utente di IAM*.

## Contesto di crittografia nelle policy
<a name="encryption-context-authorization"></a>

Il contesto di crittografia viene utilizzato principalmente per verificare l'integrità e l'autenticità. Tuttavia, puoi anche utilizzare il contesto di crittografia per controllare l'accesso alle AWS KMS keys di crittografia simmetrica nelle policy delle chiavi e nelle policy IAM. 

Le chiavi [kms:EncryptionContext:](conditions-kms.md#conditions-kms-encryption-context) e [kms: EncryptionContextKeys](conditions-kms.md#conditions-kms-encryption-context) condition consentono (o negano) un'autorizzazione solo quando la richiesta include particolari chiavi di contesto di crittografia o coppie chiave-valore. 

Ad esempio, la seguente istruzione della policy delle chiavi consente al ruolo `RoleForExampleApp` di utilizzare la chiave KMS nelle operazioni `Decrypt`. Utilizza la chiave di condizione `kms:EncryptionContext:context-key` per concedere questa autorizzazione solo quando il contesto di crittografia nella richiesta include una coppia di contesto di crittografia `AppName:ExampleApp`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:Decrypt",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
```

Per ulteriori informazioni su queste chiavi di condizione del contesto di crittografia, consulta [Chiavi di condizione per AWS KMS](policy-conditions.md).

## Contesto di crittografia nelle concessioni
<a name="encryption-context-grants"></a>

Quando [crei una concessione, puoi includere vincoli di concessione](grants.md) [che stabiliscono](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html) le condizioni per le autorizzazioni di concessione. AWS KMS supporta due vincoli di concessione `EncryptionContextEquals` ed `EncryptionContextSubset` entrambi coinvolgono il [contesto di crittografia](#encrypt_context) in una richiesta di operazione crittografica. Quando utilizzi questi vincoli di concessione, le autorizzazioni nella concessione sono valide solo quando il contesto di crittografia nella richiesta per l'operazione di crittografia soddisfa i requisiti dei vincoli di concessione. 

Ad esempio, è possibile aggiungere un vincolo di `EncryptionContextEquals` concessione a una concessione che consente l'operazione. [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) Con questo vincolo, la concessione consente l'operazione solo quando il contesto di crittografia nella richiesta corrisponde a livello di maiuscole e minuscole al contesto di crittografia nel vincolo di concessione.

```
$ aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::111122223333:user/exampleUser \
    --retiring-principal arn:aws:iam::111122223333:role/adminRole \
    --operations GenerateDataKey \
    --constraints EncryptionContextEquals={Purpose=Test}
```

Una richiesta come la seguente dal principale beneficiario soddisferebbe il `EncryptionContextEquals` vincolo.

```
$ aws kms generate-data-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --key-spec AES_256 \
    --encryption-context Purpose=Test
```

Per ulteriori informazioni sui vincoli della concessione, consulta [Utilizzo dei vincoli di concessione](create-grant-overview.md#grant-constraints). Per informazioni dettagliate sugli alias, consulta [Sovvenzioni in AWS KMS](grants.md).

## Registrazione del contesto di crittografia
<a name="encryption-context-auditing"></a>

AWS KMS utilizza AWS CloudTrail per registrare il contesto di crittografia in modo da poter determinare a quali chiavi e dati KMS è stato effettuato l'accesso. La voce di log mostra esattamente la chiave KMS utilizzata per crittografare o decrittare dati specifici a cui fa riferimento il contesto di crittografia nella voce di log.

**Importante**  
Poiché il contesto di crittografia viene registrato, non deve contenere informazioni sensibili.

## Archiviazione del contesto di crittografia
<a name="encryption-context-storing"></a>

Per semplificare l'utilizzo di qualsiasi contesto di crittografia quando chiami le operazioni [https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) o [https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html), puoi archiviare il contesto di crittografia insieme ai dati crittografati. Ti consigliamo di archiviare solo il contesto di crittografia sufficiente per aiutarti a creare il contesto di crittografia completo quando ne hai bisogno per la crittografia o la decrittografia. 

Ad esempio, se il contesto di crittografia è il percorso completo di un file, archivia solo la parte del percorso con i contenuti crittografati del file. Quando ti occorre il contesto di crittografia completo, puoi ricostruirlo dal frammento archiviato. Se qualcuno altera il file, ad esempio lo rinomina o lo sposta in un percorso diverso, il valore del contesto di crittografia cambia e la richiesta di decrittografia ha esito negativo.