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

Balises

Notre bibliothèque de chiffrement côté client a été renommée SDK de chiffrement de AWS base de données. Ce guide du développeur fournit toujours des informations sur le client de chiffrement DynamoDB.

Une balise est une balise HMAC (Hash Based Message Authentication Code) tronquée qui crée une carte entre la valeur en texte brut écrite dans un champ et la valeur cryptée réellement stockée dans votre base de données. La balise ne modifie pas l'état chiffré du champ. La balise calcule un HMAC sur la valeur en texte brut du champ et le stocke à côté de la valeur cryptée. Cette sortie HMAC correspond un à un (1:1) à la valeur en texte brut de ce champ. La sortie HMAC est tronquée afin que plusieurs valeurs de texte clair distinctes correspondent à la même balise HMAC tronquée. Ces faux positifs limitent la capacité d'un utilisateur non autorisé à identifier des informations distinctives concernant la valeur en texte brut.

Les balises ne peuvent être créées qu'à partir de champs marqués ou SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT dans ENCRYPT_AND_SIGN le SIGN_ONLY cadre de vos actions cryptographiques. La balise elle-même n'est ni signée ni cryptée. Vous ne pouvez pas créer une balise avec des champs marquésDO_NOTHING.

Le type de balise que vous configurez détermine le type de requêtes que vous pouvez effectuer. Il existe deux types de balises compatibles avec le chiffrement consultable. Les balises standard effectuent des recherches d'égalité. Les balises composées combinent des chaînes de texte en clair littérales et des balises standard pour effectuer des opérations de base de données complexes. Après avoir configuré vos balises, vous devez configurer un index secondaire pour chaque balise avant de pouvoir effectuer une recherche dans les champs chiffrés. Pour plus d’informations, consultez Configuration des index secondaires avec des balises.

Balises standard

Les balises standard constituent le moyen le plus simple d'implémenter un chiffrement consultable dans votre base de données. Ils ne peuvent effectuer des recherches d'égalité que pour un seul champ crypté ou virtuel. Pour savoir comment configurer les balises standard, consultez la section Configuration des balises standard.

Le champ à partir duquel une balise standard est construite est appelé source de balise. Il identifie l'emplacement des données que la balise doit cartographier. La source de la balise peut être un champ crypté ou un champ virtuel. La source de balise de chaque balise standard doit être unique. Vous ne pouvez pas configurer deux balises avec la même source de balise.

Les balises standard peuvent être utilisées pour effectuer des recherches d'égalité pour un champ crypté ou virtuel. Ils peuvent également être utilisés pour créer des balises composées afin d'effectuer des opérations de base de données plus complexes. Pour vous aider à organiser et à gérer les balises standard, le SDK AWS de chiffrement de base de données fournit les styles de balises facultatifs suivants qui définissent l'utilisation prévue d'une balise standard. Pour plus d'informations, voir Définition des styles de balises.

Vous pouvez créer une balise standard qui effectue des recherches d'égalité pour un seul champ crypté, ou vous pouvez créer une balise standard qui effectue des recherches d'égalité sur la concaténation de plusieurs SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT champs ENCRYPT_AND_SIGNSIGN_ONLY, et en créant un champ virtuel.

Champs virtuels

Un champ virtuel est un champ conceptuel construit à partir d'un ou de plusieurs champs sources. La création d'un champ virtuel n'entraîne pas l'inscription d'un nouveau champ dans votre enregistrement. Le champ virtuel n'est pas explicitement stocké dans votre base de données. Il est utilisé dans une configuration de balise standard pour donner à la balise des instructions sur la façon d'identifier un segment spécifique d'un champ ou de concaténer plusieurs champs dans un enregistrement pour effectuer une requête spécifique. Un champ virtuel nécessite au moins un champ crypté.

Note

L'exemple suivant montre les types de transformations et de requêtes que vous pouvez effectuer avec un champ virtuel. En application, les champs d'exemple utilisés dans cet exemple peuvent ne pas respecter les recommandations d'unicité de distribution et de corrélation pour les balises.

Par exemple, si vous souhaitez effectuer des recherches d'égalité sur la concaténation de LastName champs FirstName et, vous pouvez créer l'un des champs virtuels suivants.

  • Un NameTag champ virtuel, construit à partir de la première lettre du FirstName champ, suivie du LastName champ, le tout en minuscules. Ce champ virtuel vous permet d'effectuer des requêtesNameTag=mjones.

  • Un LastFirst champ virtuel, qui est construit à partir du LastName champ, suivi du FirstName champ. Ce champ virtuel vous permet d'effectuer des requêtesLastFirst=JonesMary.

Ou, si vous souhaitez effectuer des recherches d'égalité sur un segment spécifique d'un champ chiffré, créez un champ virtuel qui identifie le segment que vous souhaitez interroger.

Par exemple, si vous souhaitez interroger un IPAddress champ chiffré à l'aide des trois premiers segments de l'adresse IP, créez le champ virtuel suivant.

  • Un IPSegment champ virtuel, construit à partir deSegments(‘.’, 0, 3). Ce champ virtuel vous permet d'effectuer des requêtesIPSegment=192.0.2. La requête renvoie tous les enregistrements dont IPAddress la valeur commence par « 192.0.2 ».

Les champs virtuels doivent être uniques. Il est impossible de créer deux champs virtuels à partir des mêmes champs sources.

Pour obtenir de l'aide sur la configuration des champs virtuels et des balises qui les utilisent, consultez la section Création d'un champ virtuel.

Balises composées

Les balises composées créent des index qui améliorent les performances des requêtes et vous permettent d'effectuer des opérations de base de données plus complexes. Vous pouvez utiliser des balises composées pour combiner des chaînes de texte brut littérales et des balises standard pour effectuer des requêtes complexes sur des enregistrements chiffrés, telles que l'interrogation de deux types d'enregistrements différents à partir d'un seul index ou l'interrogation d'une combinaison de champs à l'aide d'une clé de tri. Pour d'autres exemples de solutions de balises composées, voir Choisir un type de balise.

Les balises composées peuvent être construites à partir de balises standard ou d'une combinaison de balises standard et de champs signés. Ils sont construits à partir d'une liste de pièces. Toutes les balises composées doivent inclure une liste de parties cryptées identifiant les ENCRYPT_AND_SIGN champs inclus dans la balise. Chaque ENCRYPT_AND_SIGN champ doit être identifié par une balise standard. Les balises composées plus complexes peuvent également inclure une liste de parties signées identifiant le texte en clair SIGN_ONLY ou SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT les champs inclus dans la balise, et une liste de pièces de constructeur identifiant toutes les manières possibles dont la balise composée peut assembler les champs.

Note

Le SDK AWS Database Encryption prend également en charge les balises signées qui peuvent être entièrement configurées à partir de texte brut SIGN_ONLY et de champs. SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Les balises signées sont un type de balise composée qui indexe et exécute des requêtes complexes sur des champs signés, mais non chiffrés. Pour plus d’informations, consultez Création de balises signées.

Pour obtenir de l'aide sur la configuration des balises composées, consultez la section Configuration des balises composées.

La façon dont vous configurez votre balise composée détermine les types de requêtes qu'elle peut effectuer. Par exemple, vous pouvez rendre certaines parties cryptées et signées facultatives pour permettre une plus grande flexibilité dans vos requêtes. Pour plus d'informations sur les types de requêtes que les balises composées peuvent effectuer, consultezInterrogation de balises.