Concepts du client de chiffrement Amazon DynamoDB - AWS Chiffrement des bases SDK

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.

Concepts du client de chiffrement Amazon DynamoDB

Note

Notre bibliothèque de chiffrement côté client a été renommée AWS Database Encryption SDK. La rubrique suivante fournit des informations sur les versions 1. x —2. x du client de chiffrement DynamoDB pour Java et versions 1. x —3. x du client de chiffrement DynamoDB pour Python. Pour plus d'informations, voir AWSDatabase Encryption SDK pour connaître la prise en charge des versions de DynamoDB.

Cette rubrique explique les concepts et la terminologie utilisés dans le client de chiffrement Amazon DynamoDB.

Pour savoir comment les composants du client de chiffrement DynamoDB interagissent, consultez. Fonctionnement du client de chiffrement DynamoDB

Fournisseur CMP (Cryptographic Materials Provider)

Lors de la mise en œuvre du client de chiffrement DynamoDB, l'une de vos premières tâches consiste à sélectionner un fournisseur de matériel cryptographique (CMP) (également appelé fournisseur de matériel de chiffrement). Votre choix détermine une grande part du reste de l'implémentation.

Un fournisseur CMP recueille, assemble et retourne les matériaux de chiffrement que le chiffreur d'élément utilise pour chiffrer et signer vos éléments de table. Le CMP détermine les algorithmes de chiffrement à utiliser, ainsi que la façon de générer et de protéger le chiffrement et les clés de signature.

Le fournisseur CMP interagit avec le chiffreur d'élément. Celui-ci demande les matériaux de chiffrement ou de déchiffrement au CMP, et le CMP les retourne au chiffreur d'élément. Puis, celui-ci utilise les matériaux de chiffrement pour chiffrer et signer, ou vérifier et déchiffrer, l'élément.

Vous spécifiez le CMP lorsque vous configurez le client. Vous pouvez créer un CMP personnalisé compatible ou utiliser l'un des nombreux CMP de la bibliothèque. La plupart des CMP sont disponibles en plusieurs langages de programmation.

Chiffreurs d'éléments

Le chiffreur d'éléments est un composant de niveau inférieur qui effectue des opérations cryptographiques pour le client de chiffrement DynamoDB. Il demande les matériaux de chiffrement auprès d'un fournisseur CMP, puis utilise les matériaux retournés par le CMP pour chiffrer et signer, ou vérifier et déchiffrer, votre élément de table.

Vous pouvez interagir directement avec le chiffreur d'élément ou utiliser les annotations fournis par votre bibliothèque. Par exemple, le client de chiffrement DynamoDB pour Java inclut une classe d'AttributeEncryptorassistance que vous pouvez utiliser avec leDynamoDBMapper, au lieu d'interagir directement avec le DynamoDBEncryptor chiffreur d'éléments. La bibliothèque Python inclut les classes d'annotations EncryptedTable, EncryptedClient et EncryptedResource qui interagissent avec le chiffreur d'éléments pour vous.

Actions d'attribut

Les actions d'attribut informent le chiffreur d'élément des actions à exécuter sur chaque attribut de l'élément.

L'action d'attribut peut avoir l'une des valeurs suivantes :

  • Chiffrer et signer — Chiffrez la valeur de l'attribut. Incluez l'attribut (nom et valeur) dans la signature de l'élément.

  • Signer uniquement : incluez l'attribut dans la signature de l'article.

  • Ne rien faire : ne cryptez pas et ne signez pas l'attribut.

Pour tout attribut pouvant stocker des données sensibles, utilisez Chiffrer et signer. Pour les attributs de clé primaire (clé de partition et clé de tri), utilisez Signer uniquement. L'attribut de description de matériau et l'attribut de signature ne sont pas signés ou chiffrés. Vous n'avez pas besoin de spécifier les actions d'attribut pour ces attributs.

Choisissez soigneusement vos actions d'attribut. En cas de doute, utilisez Chiffrer et signer. Une fois que vous avez utilisé le client de chiffrement DynamoDB pour protéger les éléments de votre tableau, vous ne pouvez pas modifier l'action d'un attribut sans risquer une erreur de validation de signature. Pour plus de détails, consultez Modification de votre modèle de données.

Avertissement

Ne chiffrez pas les attributs de la clé primaire. Ils doivent rester en texte brut pour que DynamoDB puisse trouver l'élément sans exécuter une analyse complète du tableau.

Si le contexte de chiffrement DynamoDB identifie les attributs de votre clé primaire, le client renvoie une erreur si vous essayez de les chiffrer.

La technique que vous utilisez pour spécifier les actions d'attribut dépend du langage de programmation que vous utilisez. Elle peut aussi être spécifique aux classes d'annotations que vous utilisez.

Pour plus d'informations, consultez la documentation de votre langage de programmation.

Description du matériau

La description du matériau pour un élément de table chiffré se compose d'informations, telles que les algorithmes de chiffrement, sur la façon dont l'élément de table est chiffré et signé. Le fournisseur CMP enregistre la description du matériau tandis qu'il rassemble les matériaux de chiffrement pour le chiffrement et la signature. Par la suite, quand il doit rassembler les matériaux de chiffrement pour vérifier et chiffrer l'élément, il utilise la description du matériau comme guide.

Dans le client de chiffrement DynamoDB, la description du matériau fait référence à trois éléments connexes :

Description du matériau demandé

Certains fournisseurs CMP permettent de spécifier des options avancées, comme un algorithme de chiffrement. Pour indiquer vos choix, vous ajoutez des paires nom-valeur à la propriété de description du matériau du contexte de chiffrement DynamoDB dans votre demande de chiffrement d'un élément de table. L'élément est appelé description du matériau demandé. Les valeurs autorisées pour la description du matériau demandé sont définies par le fournisseur CMP que vous choisissez.

Note

Comme la description du matériau peut remplacer les valeurs par défaut sécurisées, il est recommandé d'omettre la description du matériau demandé à moins que vous n'ayez une excellente raison de l'utiliser.

Description du matériau réel

La description du matériau que les fournisseurs CMP retournent est appelée description du matériau réel. Elle décrit les valeurs réelles que le CMP a utilisées quand il a rassemblé les matériaux de chiffrement. Elle se compose généralement de la description du matériau demandé, le cas échéant, avec les ajouts et les modifications.

Attribut de description du matériau

Le client enregistre la description du matériau réel dans l'attribut de description du matériau de l'élément chiffré. Le nom de l'attribut de description du matériau est amzn-ddb-map-desc et sa valeur est la description du matériau réel. Le client utilise les valeurs de l'attribut de description du matériau pour vérifier et déchiffrer l'élément.

Client de chiffrement DynamoDB

Le contexte de chiffrement DynamoDB fournit des informations sur la table et l'élément au fournisseur de matériaux cryptographiques (CMP). Dans les implémentations avancées, le contexte de chiffrement DynamoDB peut inclure la description du matériau demandé.

Lorsque vous chiffrez des éléments de table, le contexte de chiffrement DynamoDB est lié de manière cryptographique aux valeurs d'attributs chiffrées. Lorsque vous déchiffrez, si le contexte de chiffrement DynamoDB ne correspond pas exactement, en distinguant majuscules et minuscules, au contexte de chiffrement DynamoDB utilisé pour le chiffrement, l'opération de déchiffrement échoue. Si vous interagissez directement avec le chiffreur d'éléments, vous devez fournir un contexte de chiffrement DynamoDB lorsque vous appelez une méthode de chiffrement ou de déchiffrement. La plupart des assistants créent le contexte de chiffrement DynamoDB à votre place.

Note

Le contexte de chiffrement DynamoDB du client de chiffrement DynamoDB n'est pas lié au contexte de chiffrement entre AWS Key Management Service () AWS KMS et le. AWS Encryption SDK

Le contexte de chiffrement DynamoDB peut inclure les champs suivants. Tous les champs et valeurs sont facultatifs.

Magasin de fournisseur

Un magasin de fournisseur est un composant qui retourne les fournisseurs CMP. Le magasin de fournisseur peut créer les CMP ou les obtenir d'une autre source, telle qu'un autre magasin de fournisseur. Le fournisseur de magasin enregistre les versions des CMP qu'il crée dans un stockage permanent où chaque fournisseur CMP stocké est identifié par le nom du matériau du demandeur et le numéro de version.

Le fournisseur le plus récent du client de chiffrement DynamoDB obtient ses CMP auprès d'un magasin de fournisseurs, mais vous pouvez utiliser le magasin de fournisseurs pour fournir des CMP à n'importe quel composant. Chaque fournisseur le plus récent est associé à un magasin de fournisseur, mais un magasin de fournisseur peut fournir les CMP à la plupart des demandeurs sur plusieurs hôtes.

Le magasin de fournisseur crée de nouvelles versions des fournisseurs CMP à la demande, et retourne les versions nouvelles et existantes. Il retourne aussi le dernier numéro de version d'un nom de matériau donné. Le demandeur peut ainsi savoir lorsque le magasin de fournisseur a une nouvelle version de son fournisseur, puis la demander.

Le client de chiffrement DynamoDB inclut un MetaStore, qui est un magasin fournisseur qui crée des CMP encapsulés avec des clés qui sont stockées dans DynamoDB et cryptées à l'aide d'un client de chiffrement DynamoDB interne.

En savoir plus :