

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

# Crittografa i risultati delle interrogazioni con AWS Key Management Service
<a name="CloudWatchLogs-Insights-Query-Encrypt"></a>

Per impostazione predefinita, CloudWatch Logs crittografa i risultati archiviati delle query di CloudWatch Logs Insights utilizzando il metodo di crittografia predefinito Logs lato server. CloudWatch Puoi invece scegliere di utilizzare una chiave per crittografare questi risultati AWS KMS . Se associ una AWS KMS chiave ai risultati della crittografia, CloudWatch Logs utilizza quella chiave per crittografare i risultati archiviati di tutte le query nell'account. 

Se successivamente si dissocia una chiave dai risultati della query, CloudWatch Logs torna al metodo di crittografia predefinito per le query successive. Tuttavia, le query eseguite mentre la chiave era associata sono ancora crittografate con quella chiave. CloudWatch I log possono comunque restituire quei risultati dopo che la chiave KMS è stata dissociata, perché CloudWatch i log possono continuare a fare riferimento alla chiave. Tuttavia, se la chiave viene successivamente disabilitata, CloudWatch Logs non è in grado di leggere i risultati della query che sono stati crittografati con quella chiave.

**Importante**  
CloudWatch Logs supporta solo chiavi KMS simmetriche. Non utilizzare una chiave asimmetrica per crittografare i risultati della query. Per ulteriori informazioni, consulta la sezione relativa all'[uso di chiavi simmetriche e asimmetriche](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html).

## Limits
<a name="encryption-limits-queries"></a>
+ Per eseguire la procedura seguente, devi avere le seguenti autorizzazioni: `kms:CreateKey`, `kms:GetKeyPolicy` e `kms:PutKeyPolicy`.
+ Dopo aver associato o dissociato una chiave dai risultati della query, possono essere necessari fino a cinque minuti per rendere effettiva l'operazione.
+ Se CloudWatch revochi l'accesso dei log a una chiave associata o elimini una chiave KMS associata, i dati crittografati in Logs non possono più essere recuperati. CloudWatch 
+ Non puoi utilizzare la CloudWatch console per associare una chiave, devi utilizzare l'API o Logs. AWS CLI CloudWatch 

## Passaggio 1: creare un AWS KMS key
<a name="create-cmk"></a>

Per creare una chiave KMS, utilizza il seguente comando [create-key](https://docs.aws.amazon.com/cli/latest/reference/kms/create-key.html):

```
aws kms create-key
```

L'output contiene l'ID chiave e l'Amazon Resource Name (ARN) della chiave. Di seguito è riportato un output di esempio:

```
{
    "KeyMetadata": {
        "Origin": "AWS_KMS",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "Description": "",
        "KeyManager": "CUSTOMER",
        "Enabled": true,
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "KeyState": "Enabled",
        "CreationDate": 1478910250.94,
        "Arn": "arn:aws:kms:us-west-2:123456789012:key/6f815f63-e628-448c-8251-e40cb0d29f59",
        "AWSAccountId": "123456789012",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ]
    }
}
```

## Fase 2: Impostazione delle autorizzazioni sulla chiave KMS
<a name="cmk-permissions"></a>

Per impostazione predefinita, tutte le chiavi KMS sono private. Solo il proprietario della risorsa può utilizzarla per crittografare e decrittare i dati. Tuttavia, il proprietario della risorsa può concedere ad altri utenti e risorse le autorizzazioni per accedere alla chiave. Con questo passaggio, si CloudWatch concede al servizio Logs l'autorizzazione principale a utilizzare la chiave. L'entità del servizio deve trovarsi nella stessa AWS regione in cui è memorizzata la chiave.

Come procedura ottimale, si consiglia di limitare l'uso della chiave solo agli AWS account specificati.

Innanzitutto, salva la politica predefinita per la tua chiave KMS `policy.json` utilizzando il seguente [get-key-policy](https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html)comando:

```
aws kms get-key-policy --key-id {{key-id}} --policy-name default --output text > ./policy.json
```

Aprire il file `policy.json` in un editor di testo e aggiungere la sezione in grassetto da una delle seguenti istruzioni. Separare l'istruzione esistente dalla nuova istruzione con una virgola. Queste istruzioni utilizzano `Condition` le sezioni per migliorare la sicurezza della AWS KMS chiave. Per ulteriori informazioni, consulta [AWS KMS chiavi e contesto di crittografia](encrypt-log-data-kms.md#encrypt-log-data-kms-policy).

La `Condition` sezione di questo esempio limita l'uso della AWS KMS chiave ai risultati della query CloudWatch Logs Insights nell'account specificato.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "key-default-1",
    "Statement": [
        {
            "Sid": "Enable IAM User Permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "logs.{{region}}.amazonaws.com"
            },
            "Action": [
                "kms:Encrypt*",
                "kms:Decrypt*",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:Describe*"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                "aws:SourceArn": "arn:aws:logs:{{us-east-1}}:{{111122223333}}:query-result:*"
                },
                "StringEquals": {
                "aws:SourceAccount": "{{111122223333}}"
                }
            }
        }
    ]
}
```

------

Infine, aggiungi la politica aggiornata utilizzando il seguente [put-key-policy](https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html)comando:

```
aws kms put-key-policy --key-id {{key-id}} --policy-name default --policy file://policy.json
```

## Fase 3: associazione di una chiave KMS ai risultati della query
<a name="associate-cmk-query"></a>

**Associazione della chiave KMS ai risultati della query nell'account**  
Utilizza il comando [disassociate-kms-key](https://docs.aws.amazon.com/cli/latest/reference/logs/disassociate-kms-key.html) come segue:

```
aws logs associate-kms-key --resource-identifier "arn:aws:logs:{{region}}:{{account-id}}:query-result:*" --kms-key-id "{{key-arn}}"
```

## Fase 4: Dissociazione di una chiave dai risultati della query nell'account
<a name="disassociate-cmk-query"></a>

Per dissociare la chiave KMS associata ai risultati della query, usa il seguente [disassociate-kms-key](https://docs.aws.amazon.com/cli/latest/reference/logs/disassociate-kms-key.html)comando:

```
aws logs disassociate-kms-key --resource-identifier "arn:aws:logs:{{region}}:{{account-id}}:query-result:*"
```