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.
Contexte de chiffrement
Note
Il n'est pas possible de spécifier un contexte de chiffrement dans une opération cryptographique avec une clé asymétrique ou une KMS HMAC KMS clé. Les algorithmes asymétriques et les MAC algorithmes ne prennent pas en charge un contexte de chiffrement.
Toutes les opérations AWS KMS cryptographiques utilisant des KMS clés de chiffrement symétriques acceptent un contexte de chiffrement, un ensemble facultatif de paires clé-valeur non secrètes pouvant contenir des informations contextuelles supplémentaires sur les données. Vous pouvez insérer un contexte de chiffrement dans Encrypt
les opérations afin AWS KMS d'améliorer l'autorisation et l'auditabilité de vos appels de AWS KMS API déchiffrement. AWS KMS utilise le contexte de chiffrement en tant que données authentifiées supplémentaires (AAD) pour prendre en charge le chiffrement authentifié. Le contexte de chiffrement est lié cryptographiquement au texte chiffré, de sorte que le même contexte de chiffrement est requis pour déchiffrer les données.
Le contexte de chiffrement n'est pas secret ou chiffré. Il apparaît en texte brut dans les journaux AWS CloudTrail pour vous permettre d'identifier et de classer vos opérations de chiffrement. Votre contexte de chiffrement ne doit pas inclure d'informations sensibles. Nous recommandons que votre chiffrement le contexte décrive les données en cours de chiffrement ou de déchiffrement. Par exemple, lorsque vous chiffrez un fichier, vous pouvez utiliser une partie du chemin de fichier comme contexte de chiffrement.
"encryptionContext": { "department": "10103.0" }
Par exemple, lors du chiffrement de volumes et d'instantanés créés avec l'CreateSnapshotopération Amazon Elastic Block Store EBS (Amazon), Amazon EBS utilise l'ID du volume comme valeur de contexte de chiffrement.
"encryptionContext": { "aws:ebs:id": "
vol-abcde12345abc1234
" }
Vous pouvez également utiliser le contexte de chiffrement pour affiner ou limiter l'accès AWS KMS keys à votre compte. Vous pouvez utiliser le contexte de chiffrement en tant que contrainte dans les octrois et en tant que condition dans les instructions de politique.
Pour savoir comment utiliser le contexte de chiffrement pour protéger l'intégrité des données chiffrées, consultez le billet Comment protéger l'intégrité de vos données chiffrées en utilisant AWS Key Management Service et EncryptionContext
En savoir plus sur le contexte de chiffrement.
Règles liées au contexte de chiffrement
AWS KMS applique les règles suivantes pour les clés et les valeurs de contexte de chiffrement.
-
La clé et la valeur d'une paire de contexte de chiffrement doivent être des chaînes littérales simples. Si vous utilisez un type différent, tel qu'un nombre entier ou à virgule flottante, AWS KMS l'interprète comme une chaîne.
-
Les clés et les valeurs dans un contexte de chiffrement peuvent inclure des caractères Unicode. Si un contexte de chiffrement inclut des caractères qui ne sont pas autorisés dans les politiques clés ou IAM les politiques, vous ne pourrez pas spécifier le contexte de chiffrement dans les clés de condition de stratégie, telles que kms:EncryptionContext:context-keyet kms:EncryptionContextKeys. Pour plus d'informations sur les règles de document de politique de clé, voir Format de politique de clé. Pour plus de détails sur les règles relatives aux documents de IAM politique, consultez les exigences relatives aux IAM noms dans le guide de IAM l'utilisateur.
Contexte de chiffrement dans les politiques
Le contexte de chiffrement est utilisé principalement pour vérifier l'intégrité et l'authenticité. Mais vous pouvez également utiliser le contexte de chiffrement pour contrôler l'accès au chiffrement symétrique AWS KMS keys dans les politiques et IAM politiques clés.
Les clés de EncryptionContextKeys condition kms EncryptionContext : : et kms : autorisent (ou refusent) une autorisation uniquement lorsque la demande inclut des clés de contexte de chiffrement ou des paires clé-valeur particulières.
Par exemple, la déclaration de politique clé suivante autorise le RoleForExampleApp
rôle à utiliser la KMS clé dans les Decrypt
opérations. Elle utilise la clé de condition kms:EncryptionContext:context-key
pour accorder cette autorisation uniquement lorsque le contexte de chiffrement de la demande inclut une paire de contexte de chiffrement AppName:ExampleApp
.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" } } }
Pour plus d'informations sur ces clés de condition de contexte de chiffrement, consultez Clés de condition pour AWS KMS.
Contexte de chiffrement dans des octrois
Lorsque vous créez une subvention, vous pouvez inclure des contraintes de subvention qui établissent les conditions des autorisations d'octroi. AWS KMS prend en charge deux contraintes d'autorisationEncryptionContextSubset
, qui impliquent toutes deux le contexte de chiffrement dans une demande d'opération cryptographique. EncryptionContextEquals
Lorsque vous utilisez ces contraintes d'octroi, les autorisations de l'octroi sont effectives uniquement lorsque le contexte de chiffrement de la demande pour l'opération de chiffrement satisfait aux exigences des contraintes d'octroi.
Par exemple, vous pouvez ajouter une contrainte d'EncryptionContextEquals
autorisation à une autorisation autorisant l'GenerateDataKeyopération. Avec cette contrainte, l'octroi autorise l'opération uniquement lorsque le contexte de chiffrement de la demande est une correspondance sensible à la casse pour le contexte de chiffrement de la contrainte d'octroi.
$
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}
Une demande telle que la suivante émanant du principal bénéficiaire satisferait à la contrainte EncryptionContextEquals
.
aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-spec AES_256 \ --encryption-context Purpose=Test
$
Pour plus d'informations sur les contraintes d'octroi, veuillez consulter Utilisation des contraintes d'octroi. Pour de plus amples informations sur les octrois, veuillez consulter Subventions en AWS KMS.
Consignation du contexte de chiffrement
AWS KMS utilise AWS CloudTrail pour enregistrer le contexte de chiffrement afin que vous puissiez déterminer KMS les clés et les données auxquelles vous avez accédé. L'entrée du journal indique exactement quelles KMS clés ont été utilisées pour chiffrer ou déchiffrer des données spécifiques référencées par le contexte de chiffrement dans l'entrée du journal.
Important
Etant donné que le contexte de chiffrement est consigné, il ne doit contenir d'informations sensibles.
Stockage du contexte de chiffrement
Pour simplifier l'utilisation de n'importe quel contexte de chiffrement lorsque vous appelez les opérations Decrypt
ou ReEncrypt
, vous pouvez stocker le contexte de chiffrement en même temps que les données chiffrées. Nous vous conseillons de stocker juste assez du contexte de chiffrement pour créer aisément le contexte de chiffrement complet, lorsque cela est nécessaire pour le chiffrement ou le déchiffrement.
Par exemple, si le contexte de chiffrement est le chemin d'accès complet à un fichier, stockez uniquement une partie de ce chemin d'accès avec le contenu du fichier chiffré. Ensuite, lorsque vous aurez besoin du contexte de chiffrement complet, reconstruisez-le à partir du fragment stocké. En cas de tentative d'accès non autorisé au fichier, par exemple pour le renommer ou le déplacer, la valeur du contexte de chiffrement change et la requête de déchiffrement échoue.