

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 un rilevatore di anomalie e i relativi risultati con AWS KMS
<a name="LogsAnomalyDetection-KMS"></a>

I dati del rilevatore di anomalie sono sempre crittografati nei registri. CloudWatch Per impostazione predefinita, CloudWatch Logs utilizza la crittografia lato server per i dati inattivi. In alternativa, è possibile utilizzare questa crittografia AWS Key Management Service . In tal caso, la crittografia viene eseguita utilizzando una AWS KMS chiave. L'utilizzo della crittografia AWS KMS è abilitato a livello di rilevatore di anomalie, associando una chiave KMS a un rilevatore di anomalie. 

**Importante**  
CloudWatch Logs supporta solo chiavi KMS simmetriche. Non utilizzare una chiave asimmetrica per crittografare i dati nei gruppi di log. 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-anomaly"></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 da un rilevatore di anomalie, possono essere necessari fino a cinque minuti prima che l'operazione abbia effetto.
+ Se si revoca l'accesso CloudWatch dei log a una chiave associata o si elimina una chiave KMS associata, i dati crittografati in CloudWatch Logs non possono più essere recuperati.

### Fase 1: Creare una chiave AWS KMS
<a name="create-cmk-anomaly"></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": "key-default-1",
        "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/key-default-1",
        "AWSAccountId": "123456789012",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ]
    }
}
```

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

Per impostazione predefinita, tutte AWS KMS le chiavi 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 KMS. 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 è archiviata la chiave KMS.

Come procedura ottimale, ti consigliamo di limitare l'uso della chiave KMS solo agli AWS account o ai rilevatori di anomalie specificati.

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

```
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` 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 all'account specificato, ma può essere utilizzata per qualsiasi rilevatore di anomalie.

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

****  

```
    {
    "Version":"2012-10-17",		 	 	 
    "Id": "key-default-1",
    "Statement": [
        {
            "Sid": "EnableIAMUserPermissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "AllowCloudWatchLogsEncryption",
            "Effect": "Allow",
            "Principal": {
                "Service": "logs.{{us-east-1}}.amazonaws.com"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:GenerateDataKey*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{123456789012}}"
                },
                "StringLike": {
                    "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:{{us-east-1}}:{{123456789012}}:anomaly-detector:*"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:logs:{{us-east-1}}:{{123456789012}}:anomaly-detector:*"
                }
            }
        },
        {
            "Sid": "AllowCloudWatchLogsDescribeKey",
            "Effect": "Allow",
            "Principal": {
                "Service": "logs.{{us-east-1}}.amazonaws.com"
            },
            "Action": "kms:DescribeKey",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{123456789012}}"
                }
            }
        },
        {
            "Sid": "AllowCloudWatchLogsReEncryption",
            "Effect": "Allow",
            "Principal": {
                "Service": "logs.{{us-east-1}}.amazonaws.com"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{123456789012}}"
                },
                "StringLike": {
                    "kms:EncryptionContext:aws-crypto-ec:aws:logs:arn": "arn:aws:logs:{{us-east-1}}:{{123456789012}}:anomaly-detector:*"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:logs:{{us-east-1}}:{{123456789012}}:anomaly-detector:*"
                }
            }
        },
        {
            "Sid": "AllowCloudWatchLogsDescribeKeyForReEncryption",
            "Effect": "Allow",
            "Principal": {
                "Service": "logs.{{us-east-1}}.amazonaws.com"
            },
            "Action": "kms:DescribeKey",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{123456789012}}"
                }
            }
        }
    ]
}
```

------

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

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

### Fase 3: Associare una chiave KMS a un rilevatore di anomalie
<a name="associate-cmk"></a>

Puoi associare una chiave KMS a un rilevatore di anomalie quando la crei nella console o utilizzando l'opzione o. AWS CLI APIs

#### Fase 4: Dissociare la chiave da un rilevatore di anomalie
<a name="disassociate-cmk"></a>

Dopo che una chiave è stata associata a un rilevatore di anomalie, non è possibile aggiornarla. L'unico modo per rimuovere la chiave è eliminare il rilevatore di anomalie e quindi ricrearlo.