

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Chiffrement et déchiffrement secrets dans AWS Secrets Manager
<a name="security-encryption"></a>

Secrets Manager utilise le chiffrement des enveloppes avec des AWS KMS [clés](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys) et [des clés de données](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) pour protéger chaque valeur secrète. Chaque fois que la valeur secrète d'un secret change, Secrets Manager demande une nouvelle clé de données à AWS KMS pour le protéger. La clé de données est chiffrée sous une clé KMS et ensuite stockée dans les métadonnées du secret. Pour déchiffrer le secret, Secrets Manager déchiffre d'abord la clé de données chiffrée à l'aide de la clé KMS dans. AWS KMS

Secrets Manager n'utilise pas la clé KMS pour chiffrer la valeur du secret directement. Au lieu de cela, il utilise la clé KMS pour générer et chiffrer une symétrique AES (Advanced Encryption Standard) 256 bits[ Clé de données](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) et utilise la clé de données pour chiffrer la valeur du secret. Secrets Manager utilise la clé de données en texte brut pour chiffrer la valeur secrète en dehors de AWS KMS, puis la supprime de la mémoire. Il stocke la copie chiffrée de la clé de données dans les métadonnées du secret.

**Topics**
+ [Choisir une AWS KMS clé](#security-encryption-choose-key)
+ [Qu'est-ce qui est chiffré ?](#secret-value-encrypted)
+ [Processus de chiffrement et déchiffrement](#security-encryption-encrypt)
+ [Autorisations pour la clé KMS](#security-encryption-authz)
+ [Comment Secrets Manager utilise votre clé KMS](#security-encryption-using-cmk)
+ [Politique clé du Clé gérée par AWS (`aws/secretsmanager`)](#security-encryption-policies)
+ [Contexte de chiffrement de Secrets Manager](#security-encryption-encryption-context)
+ [Surveillez l'interaction de Secrets Manager avec AWS KMS](#security-encryption-logs)

## Choisir une AWS KMS clé
<a name="security-encryption-choose-key"></a>

Lorsque vous créez un secret, vous pouvez choisir n'importe quelle clé de chiffrement symétrique gérée par le client dans la région Compte AWS et, ou vous pouvez utiliser le Clé gérée par AWS for Secrets Manager (`aws/secretsmanager`). Si vous choisissez le Clé gérée par AWS `aws/secretsmanager` et qu'il n'existe pas encore, Secrets Manager le crée et l'associe au secret. Vous pouvez utiliser la même clé KMS ou d'autres clés KMS pour chaque secret dans votre compte. Vous pouvez utiliser différentes clés KMS pour définir des autorisations personnalisées sur les clés d'un groupe de secrets, ou si vous souhaitez contrôler des opérations spécifiques pour ces clés. Secrets Manager ne prend en charge que les [clés KMS de chiffrement symétriques](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks). Si vous utilisez une clé KMS dans une [boutique de clés externe](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html), les opérations cryptographiques sur la clé KMS peuvent prendre plus de temps et être moins fiables et durables, car la demande doit être transmise à l'extérieur d' AWS.

Pour plus d'informations sur la modification de la clé de chiffrement d'un secret, consultez la section [Modifier la clé de chiffrement d'un AWS Secrets Manager secret](manage_update-encryption-key.md).

Lorsque vous modifiez la clé de chiffrement, Secrets Manager le chiffre à nouveau `AWSCURRENT` et `AWSPENDING` les `AWSPREVIOUS` versions utilisant la nouvelle clé. Pour ne pas vous empêcher d'accéder au secret, Secrets Manager crypte toutes les versions existantes avec la clé précédente. Cela signifie que vous pouvez déchiffrer `AWSCURRENT` `AWSPENDING` les `AWSPREVIOUS` versions avec la clé précédente ou la nouvelle clé. Si vous n'êtes pas `kms:Decrypt` autorisé à accéder à la clé précédente, lorsque vous modifiez la clé de chiffrement, Secrets Manager ne peut pas déchiffrer les versions secrètes pour les rechiffrer. Dans ce cas, les versions existantes ne sont pas rechiffrées.

Pour qu'il ne `AWSCURRENT` puisse être déchiffré que par la nouvelle clé de chiffrement, créez une nouvelle version du secret avec la nouvelle clé. Ensuite, pour pouvoir déchiffrer la version `AWSCURRENT` secrète, vous devez avoir l'autorisation d'utiliser la nouvelle clé.

Vous pouvez refuser l'autorisation Clé gérée par AWS `aws/secretsmanager` et exiger que les secrets soient chiffrés à l'aide d'une clé gérée par le client. Pour de plus amples informations, veuillez consulter [Exemple : refuser une AWS KMS clé spécifique pour chiffrer des secrets](auth-and-access_iam-policies.md#auth-and-access_examples_kmskey).

Pour trouver la clé KMS associée à un secret, consultez le secret dans la console ou appelez [ListSecrets](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_ListSecrets.html)ou [DescribeSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DescribeSecret.html). Lorsque le secret est associé au Clé gérée par AWS for Secrets Manager (`aws/secretsmanager`), ces opérations ne renvoient pas d'identifiant de clé KMS.

## Qu'est-ce qui est chiffré ?
<a name="secret-value-encrypted"></a>

Secrets Manager chiffre la valeur secrète, mais il ne chiffre pas les éléments suivants :
+ Le nom et la description du secret
+ Paramètres de rotation
+ L'ARN de la clé KMS associée au secret
+ Toutes les AWS étiquettes jointes 

## Processus de chiffrement et déchiffrement
<a name="security-encryption-encrypt"></a>

Pour chiffrer la valeur de secret dans un secret, Secrets Manager utilise le processus suivant.

1. Secrets Manager appelle l' AWS KMS [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)opération en indiquant l'ID de la clé KMS associée au secret et en demandant une clé symétrique AES 256 bits. AWS KMS renvoie une clé de données en texte brut et une copie de cette clé de données chiffrée sous la clé KMS.

1. Secrets Manager utilise la clé de données en texte brut et l'algorithme Advanced Encryption Standard (AES) pour chiffrer la valeur secrète en dehors de. AWS KMS Il supprime la clé en texte brut de la mémoire dès que possible après l'avoir utilisée.

1. Secrets Manager stocke la clé de données chiffrée dans les métadonnées du secret afin qu'elle soit disponible pour déchiffrer la valeur du secret. Cependant, aucun des Secrets Manager ne APIs renvoie le secret chiffré ou la clé de données chiffrée.

Pour déchiffrer une valeur de secret chiffrée :

1.  Secrets Manager lance l'opération de AWS KMS [déchiffrement](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) et transmet la clé de données chiffrée.

1. AWS KMS utilise la clé KMS comme secret pour déchiffrer la clé de données. Il renvoie la clé de données en texte brut.

1. Secrets Manager utilise la clé de données en texte brut pour déchiffrer la valeur du secret. Puis il supprime la clé de données de la mémoire dès que possible.

## Autorisations pour la clé KMS
<a name="security-encryption-authz"></a>

Lorsque Secrets Manager utilise une clé KMS dans les opérations de chiffrement, il agit au nom de l'utilisateur qui accède à la valeur de secret ou la met à jour. Vous pouvez accorder ces autorisations dans une politique IAM ou une stratégie de clé. Les opérations suivantes de Secrets Manager nécessitent AWS KMS des autorisations.
+ [CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html)
+ [GetSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html)
+ [PutSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_PutSecretValue.html)
+ [UpdateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_UpdateSecret.html)
+ [ReplicateSecretToRegions](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_ReplicateSecretToRegions.html)

Pour autoriser l'utilisation de la clé KMS uniquement pour les demandes provenant de Secrets Manager, dans la politique d'autorisations, vous pouvez utiliser la [clé de ViaService condition kms :](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-via-service) avec la `secretsmanager.<Region>.amazonaws.com` valeur.

Vous pouvez également utiliser les clés ou les valeurs du [contexte de chiffrement](https://docs.aws.amazon.com/kms/latest/developerguide/services-secrets-manager.html#asm-encryption-context) comme condition d'utilisation de la clé KMS pour les opérations de chiffrement. Par exemple, vous pouvez utiliser un [opérateur de condition de chaîne](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String) dans un document de stratégie IAM ou de clé, ou utiliser une [contrainte d'octroi](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html) dans un octroi. La propagation des autorisations de clés KMS peut prendre jusqu'à cinq minutes. Pour de plus amples informations, veuillez consulter [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html).

## Comment Secrets Manager utilise votre clé KMS
<a name="security-encryption-using-cmk"></a>

Secrets Manager effectue les AWS KMS opérations suivantes avec votre clé KMS.

**GenerateDataKey**  
Secrets Manager appelle l' AWS KMS [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)opération en réponse aux opérations suivantes du Gestionnaire de secrets.  
+ [CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html)— Si le nouveau secret inclut une valeur secrète, Secrets Manager demande une nouvelle clé de données pour le chiffrer. 
+ [PutSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_PutSecretValue.html)— Secrets Manager demande une nouvelle clé de données pour chiffrer la valeur secrète spécifiée.
+ [ReplicateSecretToRegions](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_ReplicateSecretToRegions.html)— Pour chiffrer le secret répliqué, Secrets Manager demande une clé de données pour la clé KMS dans la région de réplication.
+ [UpdateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_UpdateSecret.html)— Si vous modifiez la valeur secrète ou la clé KMS, Secrets Manager demande une nouvelle clé de données pour chiffrer la nouvelle valeur secrète.
L'[RotateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_RotateSecret.html)opération n'appelle pas`GenerateDataKey`, car elle ne modifie pas la valeur secrète. Toutefois, si `RotateSecret` invoque une fonction de rotation Lambda qui modifie la valeur du secret, son appel à l'opération `PutSecretValue` déclenche une requête `GenerateDataKey`.

**Decrypt**  
Secrets Manager appelle l'opération [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) en réponse aux opérations Secrets Manager.   
+ [GetSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html)et [BatchGetSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_BatchGetSecretValue.html)— Secrets Manager déchiffre la valeur secrète avant de la renvoyer à l'appelant. Pour déchiffrer une valeur secrète chiffrée, Secrets Manager appelle l'opération AWS KMS [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) pour déchiffrer la clé de données chiffrée contenue dans le secret. Ensuite, il utilise la clé de données en texte brut pour déchiffrer la valeur du secret chiffrée. Pour les commandes par lots, Secrets Manager peut réutiliser la clé déchiffrée, de sorte que tous les appels n'aboutissent pas à une demande `Decrypt`.
+ [PutSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_PutSecretValue.html)et [UpdateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_UpdateSecret.html)— La plupart des `UpdateSecret` demandes `PutSecretValue` et ne déclenchent aucune `Decrypt` opération. Toutefois, lorsqu'une demande `PutSecretValue` ou `UpdateSecret` tente de modifier la valeur de secret dans une version existante d'un secret, Secrets Manager déchiffre la valeur du secret existante et la compare à la valeur du secret dans la demande afin de confirmer qu'elles sont identiques. Cette action permet de s'assurer que les opérations de Secrets Manager sont idempotentes. Pour déchiffrer une valeur secrète chiffrée, Secrets Manager appelle l'opération AWS KMS [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) pour déchiffrer la clé de données chiffrée contenue dans le secret. Ensuite, il utilise la clé de données en texte brut pour déchiffrer la valeur du secret chiffrée.
+ [ReplicateSecretToRegions](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_ReplicateSecretToRegions.html)— Secrets Manager déchiffre d'abord la valeur secrète dans la région principale avant de la rechiffrer avec la clé KMS dans la région de réplication.

**Encrypt**  
Secrets Manager appelle l'opération [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) en réponse aux opérations suivantes de Secrets Manager :  
+ [UpdateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_UpdateSecret.html)— Si vous modifiez la clé KMS, Secrets Manager chiffre à nouveau la clé de données qui protège les versions `AWSCURRENT``AWSPREVIOUS`, et `AWSPENDING` secrète avec la nouvelle clé.

**DescribeKey**  
Secrets Manager lance l'[DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)opération pour déterminer s'il convient de répertorier la clé KMS lorsque vous créez ou modifiez un secret dans la console Secrets Manager. 

**Validation de l'accès à la clé KMS**  
Lorsque vous établissez ou modifiez la clé KMS associée au secret, `GenerateDataKey` appelle les opérations Secrets Manager et `Decrypt` avec la clé KMS spécifiée. Ces appels confirment que l'appelant a l'autorisation d'utiliser la clé KMS pour ces opérations. Secrets Manager ignore les résultats de ces opérations ; il ne les utilise pas dans les opérations de chiffrement.  
Vous pouvez identifier ces appels de validation, car la valeur de la clé `SecretVersionId` de [contexte de chiffrement](https://docs.aws.amazon.com/kms/latest/developerguide/services-secrets-manager.html#asm-encryption-context) dans ces requêtes est `RequestToValidateKeyAccess`.  
Par le passé, les appels de validation Secrets Manager n'incluaient pas de contexte de chiffrement. Il est possible que vous trouviez des appels sans contexte de chiffrement dans les anciens AWS CloudTrail journaux.

## Politique clé du Clé gérée par AWS (`aws/secretsmanager`)
<a name="security-encryption-policies"></a>

La politique clé du Clé gérée par AWS for Secrets Manager (`aws/secretsmanager`) autorise les utilisateurs à utiliser la clé KMS pour des opérations spécifiques uniquement lorsque Secrets Manager fait la demande au nom de l'utilisateur. La politique de clé n'autorise pas les utilisateurs à utiliser la clé KMS directement.

Cette politique de clé, comme les politiques de toutes les [Clés gérées par AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys), est établie par le service. Vous ne pouvez pas modifier la politique de clé, mais vous pouvez l'afficher à tout moment. Pour plus d'informations, consultez [Affichage d'une stratégie de clé](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-viewing.html).

Les instructions de politique de la politique de clé ont l’effet suivant :
+ Elles autorisent les utilisateurs du compte à utiliser la clé KMS pour les opérations de chiffrement uniquement lorsque la demande vient de Secrets Manager en leur nom. La clé de condition `kms:ViaService` applique cette restriction.
+ Permet au AWS compte de créer des politiques IAM qui permettent aux utilisateurs de consulter les propriétés des clés KMS et de révoquer les autorisations.
+ Bien que Secrets Manager n'utilise pas d'octrois pour obtenir l'accès à la clé KMS, la stratégie autorise également Secrets Manager à [créer des octrois](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) pour la clé KMS au nom de l'utilisateur et autorise le compte à [révoquer tous les octrois](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html) qui autorisent Secrets Manager à utiliser la clé KMS. Ce sont des éléments standard du document de politique pour un Clé gérée par AWS.

Voici une politique clé à titre d'exemple Clé gérée par AWS pour Secrets Manager.

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

****  

```
{
  "Id": "auto-secretsmanager-2",
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Allow access through AWS Secrets Manager for all principals in the account that are authorized to use AWS Secrets Manager",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "*"
        ]
      },
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:CreateGrant",
        "kms:DescribeKey"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:CallerAccount": "111122223333",
          "kms:ViaService": "secretsmanager.us-west-2.amazonaws.com"
        }
      }
    },
    {
      "Sid": "Allow access through AWS Secrets Manager for all principals in the account that are authorized to use AWS Secrets Manager",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "*"
        ]
      },
      "Action": "kms:GenerateDataKey*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:CallerAccount": "111122223333"
        },
        "StringLike": {
          "kms:ViaService": "secretsmanager.us-west-2.amazonaws.com"
        }
      }
    },
    {
      "Sid": "Allow direct access to key metadata to the account",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::111122223333:root"
        ]
      },
      "Action": [
        "kms:Describe*",
        "kms:Get*",
        "kms:List*",
        "kms:RevokeGrant"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## Contexte de chiffrement de Secrets Manager
<a name="security-encryption-encryption-context"></a>

Un [contexte de chiffrement](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) est un ensemble de paires clé-valeur contenant des données arbitraires non secrètes. Lorsque vous incluez un contexte de chiffrement dans une demande de chiffrement de données, lie AWS KMS cryptographiquement le contexte de chiffrement aux données chiffrées. Pour déchiffrer les données, vous devez transmettre le même contexte de chiffrement. 

Dans ses requêtes [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)et [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) à AWS KMS, Secrets Manager utilise un contexte de chiffrement avec deux paires nom-valeur qui identifient le secret et sa version, comme illustré dans l'exemple suivant. Les noms ne varient pas, mais les valeurs de contexte de chiffrement combinées sont différentes pour chaque valeur de secret.

```
"encryptionContext": {
    "SecretARN": "arn:aws:secretsmanager:us-east-2:111122223333:secret:test-secret-a1b2c3",
    "SecretVersionId": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1"
}
```

Vous pouvez utiliser le contexte de chiffrement pour identifier ces opérations cryptographiques dans les enregistrements et journaux d'audit, tels que [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)Amazon CloudWatch Logs, et comme condition d'autorisation dans les politiques et les autorisations.

Le contexte de chiffrement Secrets Manager se compose de deux paires nom-valeur.
+ **SecretARN** – La première paire nom–valeur identifie le secret. La clé est `SecretARN`. La valeur est l'Amazon Resource Name (ARN) du secret.

  ```
  "SecretARN": "ARN of an Secrets Manager secret"
  ```

  Par exemple si l'ARN du secret est `arn:aws:secretsmanager:us-east-2:111122223333:secret:test-secret-a1b2c3`, le contexte de chiffrement inclura la paire suivante.

  ```
  "SecretARN": "arn:aws:secretsmanager:us-east-2:111122223333:secret:test-secret-a1b2c3"
  ```
+ **SecretVersionId**— La deuxième paire nom-valeur identifie la version du secret. La clé est `SecretVersionId`. La valeur est l'ID de version.

  ```
  "SecretVersionId": "<version-id>"
  ```

  Par exemple si l'ID de version du secret est `EXAMPLE1-90ab-cdef-fedc-ba987SECRET1`, le contexte de chiffrement inclura la paire suivante.

  ```
  "SecretVersionId": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1"
  ```

Lorsque vous définissez ou modifiez la clé KMS d'un secret, Secrets Manager envoie [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)et [déchiffre](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) des demandes AWS KMS pour valider que l'appelant est autorisé à utiliser la clé KMS pour ces opérations. Il ignore les réponses ; il ne les utilise pas sur la valeur du secret.

Dans le cadre de ces requêtes de validation, la valeur de `SecretARN` est l'ARN réel du secret, mais la valeur de `SecretVersionId` est `RequestToValidateKeyAccess`, comme illustré dans l'exemple de contexte de chiffrement suivant. Cette valeur spéciale vous permet d'identifier les requêtes de validation dans les journaux et les pistes d'audit.

```
"encryptionContext": {
    "SecretARN": "arn:aws:secretsmanager:us-east-2:111122223333:secret:test-secret-a1b2c3",
    "SecretVersionId": "RequestToValidateKeyAccess"
}
```

**Note**  
Par le passé, les demandes de validation Secrets Manager n'incluaient pas de contexte de chiffrement. Il est possible que vous trouviez des appels sans contexte de chiffrement dans les anciens AWS CloudTrail journaux.

## Surveillez l'interaction de Secrets Manager avec AWS KMS
<a name="security-encryption-logs"></a>

Vous pouvez utiliser AWS CloudTrail Amazon CloudWatch Logs pour suivre les demandes que Secrets Manager envoie AWS KMS en votre nom. Pour plus d'informations sur la surveillance de l'utilisation des secrets, voir [Surveillez AWS Secrets Manager les secrets](monitoring.md).

**GenerateDataKey**  
Lorsque vous créez ou modifiez la valeur secrète d'un secret, Secrets Manager envoie une *[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)*demande AWS KMS indiquant la clé KMS du secret.   
L’événement qui enregistre l’opération `GenerateDataKey` est similaire à l’exemple d’événement suivant. La requête est appelée par `secretsmanager.amazonaws.com`. Les paramètres incluent le nom Amazon Resource Name (ARN) de la clé KMS du secret, un spécificateur de clé qui nécessite une clé de 256 bits, et le [contexte de chiffrement](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) qui identifie le secret et la version.  

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AROAIGDTESTANDEXAMPLE:user01",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "2018-05-31T23:23:41Z"
            }
        },
        "invokedBy": "secretsmanager.amazonaws.com"
    },
    "eventTime": "2018-05-31T23:23:41Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKey",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "secretsmanager.amazonaws.com",
    "userAgent": "secretsmanager.amazonaws.com",
    "requestParameters": {
        "keyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "keySpec": "AES_256",
        "encryptionContext": {
            "SecretARN": "arn:aws:secretsmanager:us-east-2:111122223333:secret:test-secret-a1b2c3",
            "SecretVersionId": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1"
        }
    },
    "responseElements": null,
    "requestID": "a7d4dd6f-6529-11e8-9881-67744a270888",
    "eventID": "af7476b6-62d7-42c2-bc02-5ce86c21ed36",
    "readOnly": true,
    "resources": [
        {
            "ARN": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "accountId": "111122223333",
            "type": "AWS::KMS::Key"
        }
    ],
    "eventType": "AwsApiCall",
    "recipientAccountId": "111122223333"
}
```

**Decrypt**  
Lorsque vous obtenez ou modifiez la valeur secrète d'un secret, Secrets Manager envoie une demande de [déchiffrement](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) AWS KMS pour déchiffrer la clé de données chiffrée. Pour les commandes par lots, Secrets Manager peut réutiliser la clé déchiffrée, de sorte que tous les appels n'aboutissent pas à une demande `Decrypt`.  
L’événement qui enregistre l’opération `Decrypt` est similaire à l’exemple d’événement suivant. L'utilisateur est le principal de votre AWS compte qui accède à la table. Les paramètres incluent la clé de table chiffrée (sous forme de blob de texte chiffré) et le [contexte de chiffrement](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) qui identifie la table et le compte. AWS AWS KMS déduit l'ID de la clé KMS à partir du texte chiffré.   

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AROAIGDTESTANDEXAMPLE:user01",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "2018-05-31T23:36:09Z"
            }
        },
        "invokedBy": "secretsmanager.amazonaws.com"
    },
    "eventTime": "2018-05-31T23:36:09Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "Decrypt",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "secretsmanager.amazonaws.com",
    "userAgent": "secretsmanager.amazonaws.com",
    "requestParameters": {
        "encryptionContext": {
            "SecretARN": "arn:aws:secretsmanager:us-east-2:111122223333:secret:test-secret-a1b2c3",
            "SecretVersionId": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1"
        }
    },
    "responseElements": null,
    "requestID": "658c6a08-652b-11e8-a6d4-ffee2046048a",
    "eventID": "f333ec5c-7fc1-46b1-b985-cbda13719611",
    "readOnly": true,
    "resources": [
        {
            "ARN": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "accountId": "111122223333",
            "type": "AWS::KMS::Key"
        }
    ],
    "eventType": "AwsApiCall",
    "recipientAccountId": "111122223333"
}
```

**Encrypt**  
Lorsque vous modifiez la clé KMS associée à un secret, Secrets Manager envoie une demande de [chiffrement](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) AWS KMS pour rechiffrer les versions `AWSCURRENT``AWSPREVIOUS`, et `AWSPENDING` secrète avec la nouvelle clé. Lorsque vous répliquez un secret vers une autre région, Secrets Manager envoie également une demande [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) à AWS KMS.  
L’événement qui enregistre l’opération `Encrypt` est similaire à l’exemple d’événement suivant. L'utilisateur est le principal de votre AWS compte qui accède à la table.   

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AROAIGDTESTANDEXAMPLE:user01",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "attributes": {
                "creationDate": "2023-06-09T18:11:34Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "secretsmanager.amazonaws.com"
    },
    "eventTime": "2023-06-09T18:11:34Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "Encrypt",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "secretsmanager.amazonaws.com",
    "userAgent": "secretsmanager.amazonaws.com",
    "requestParameters": {
        "keyId": "arn:aws:kms:us-east-2:111122223333:key/EXAMPLE1-f1c8-4dce-8777-aa071ddefdcc",
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT",
        "encryptionContext": {
            "SecretARN": "arn:aws:secretsmanager:us-east-2:111122223333:secret:ChangeKeyTest-5yKnKS",
            "SecretVersionId": "EXAMPLE1-5c55-4d7c-9277-1b79a5e8bc50"
        }
    },
    "responseElements": null,
    "requestID": "129bd54c-1975-4c00-9b03-f79f90e61d60",
    "eventID": "f7d9ff39-15ab-47d8-b94c-56586de4ab68",
    "readOnly": true,
    "resources": [
        {
            "accountId": "AWS Internal",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/EXAMPLE1-f1c8-4dce-8777-aa071ddefdcc"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```