Mettre à jour votre modèle de données - AWSSDK de chiffrement de base de données

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.

Mettre à jour votre modèle de données

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

Lorsque vous configurez la bibliothèque de chiffrement côté client Java pour DynamoDB, vous fournissez des actions attributaires. Lors du chiffrement, le SDK AWS Database Encryption utilise les actions attributaires pour identifier les attributs à chiffrer et à signer, ceux à signer (mais pas à chiffrer) et ceux à ignorer. Vous définissez également les attributs non signés autorisés pour indiquer explicitement au client quels attributs sont exclus des signatures. Lors du déchiffrement, le SDK AWS de chiffrement de base de données utilise les attributs non signés autorisés que vous avez définis pour identifier les attributs qui ne sont pas inclus dans les signatures. Les actions attributaires ne sont pas enregistrées dans l'élément chiffré et le SDK AWS de chiffrement de base de données ne met pas automatiquement à jour vos actions attributaires.

Choisissez soigneusement vos actions d'attribut. En cas de doute, utilisez Chiffrer et signer. Après avoir utilisé le SDK AWS de chiffrement de base de données pour protéger vos éléments, vous ne pouvez pas remplacer un SIGN_ONLY attribut ENCRYPT_AND_SIGN ou existant par. DO_NOTHING Toutefois, vous pouvez effectuer les modifications suivantes en toute sécurité.

Considérations relatives au chiffrement interrogeable

Avant de mettre à jour votre modèle de données, examinez attentivement l'impact que vos mises à jour peuvent avoir sur les balises que vous avez créées à partir des attributs. Une fois que vous avez écrit de nouveaux enregistrements avec une balise, vous ne pouvez pas mettre à jour la configuration de la balise. Vous ne pouvez pas mettre à jour les actions attributaires associées aux attributs que vous avez utilisés pour créer des balises. Si vous supprimez un attribut existant et sa balise associée, vous ne pourrez pas interroger les enregistrements existants à l'aide de cette balise. Vous pouvez créer de nouvelles balises pour les nouveaux champs que vous ajoutez à votre enregistrement, mais vous ne pouvez pas mettre à jour les balises existantes pour inclure le nouveau champ.

Ajouter de ENCRYPT_AND_SIGN nouveaux SIGN_ONLY attributs

Pour ajouter un nouvel SIGN_ONLY attribut ENCRYPT_AND_SIGN ou, définissez le nouvel attribut dans vos actions attributaires.

Vous ne pouvez pas supprimer un DO_NOTHING attribut existant et le réintégrer en tant qu'SIGN_ONLYattribut ENCRYPT_AND_SIGN or.

Utilisation d'une classe de données annotée

Si vous avez défini vos actions attributaires avec unTableSchema, ajoutez le nouvel attribut à votre classe de données annotée. Si vous ne spécifiez pas d'annotation d'action d'attribut pour le nouvel attribut, le client cryptera et signera le nouvel attribut par défaut (sauf si l'attribut fait partie de la clé primaire). Si vous souhaitez uniquement signer le nouvel attribut, vous devez ajouter le nouvel attribut avec l'@DynamoDBEncryptionSignOnlyannotation.

Utilisation d'un modèle d'objet

Si vous avez défini manuellement vos actions attributaires, ajoutez le nouvel attribut aux actions attributaires de votre modèle d'objet et spécifiez ENCRYPT_AND_SIGN ou en SIGN_ONLY tant qu'action attributaire.

Supprimer ENCRYPT_AND_SIGN les SIGN_ONLYDO_NOTHING attributs existants

Si vous décidez que vous n'avez plus besoin d'un attribut, vous pouvez arrêter d'écrire des données dans cet attribut ou le supprimer officiellement des actions de vos attributs. Lorsque vous arrêtez d'écrire de nouvelles données dans un attribut, l'attribut apparaît toujours dans les actions de votre attribut. Cela peut s'avérer utile si vous devez recommencer à utiliser l'attribut ultérieurement. La suppression officielle de l'attribut de vos actions attributaires ne le supprime pas de votre jeu de données. Votre jeu de données contiendra toujours des éléments qui incluent cet attribut.

Pour supprimer officiellement un DO_NOTHING attribut ou un attribut existant ENCRYPT_AND_SIGNSIGN_ONLY, mettez à jour vos actions attributaires.

Si vous supprimez un DO_NOTHING attribut, vous ne devez pas le supprimer de vos attributs non signés autorisés. Même si vous n'écrivez plus de nouvelles valeurs pour cet attribut, le client doit toujours savoir que l'attribut n'est pas signé pour lire les éléments existants qui contiennent cet attribut.

Utilisation d'une classe de données annotée

Si vous avez défini les actions de vos attributs avec unTableSchema, supprimez l'attribut de votre classe de données annotée.

Utilisation d'un modèle d'objet

Si vous avez défini manuellement vos actions attributaires, supprimez l'attribut des actions attributaires de votre modèle d'objet.

Remplacer un ENCRYPT_AND_SIGN attribut existant par SIGN_ONLY

Pour remplacer un ENCRYPT_AND_SIGN attribut existant parSIGN_ONLY, vous devez mettre à jour vos actions attributaires. Une fois la mise à jour déployée, le client sera en mesure de vérifier et de déchiffrer les valeurs existantes écrites dans l'attribut, mais il signera uniquement les nouvelles valeurs écrites dans l'attribut.

Utilisation d'une classe de données annotée

Si vous avez défini vos actions attributaires avec unTableSchema, mettez à jour l'attribut existant pour inclure l'@DynamoDBEncryptionSignOnlyannotation dans votre classe de données annotée.

Utilisation d'un modèle d'objet

Si vous avez défini manuellement vos actions attributaires, mettez à jour l'action attributaire associée à l'attribut existant de ENCRYPT_AND_SIGN à SIGN_ONLY dans votre modèle d'objet.

Remplacer un SIGN_ONLY attribut existant par ENCRYPT_AND_SIGN

Pour remplacer un SIGN_ONLY attribut existant parENCRYPT_AND_SIGN, vous devez mettre à jour vos actions attributaires. Après avoir déployé la mise à jour, le client sera en mesure de vérifier les valeurs existantes écrites dans l'attribut, puis chiffrera et signera les nouvelles valeurs écrites dans l'attribut.

Utilisation d'une classe de données annotée

Si vous avez défini les actions de votre attribut avec unTableSchema, supprimez l'@DynamoDBEncryptionSignOnlyannotation de l'SIGN_ONLYattribut existant.

Utilisation d'un modèle d'objet

Si vous avez défini manuellement vos actions attributaires, mettez à jour l'action attributaire associée à l'attribut de SIGN_ONLY à ENCRYPT_AND_SIGN dans votre modèle d'objet.

Ajouter un nouvel DO_NOTHING attribut

Pour réduire le risque d'erreur lors de l'ajout d'un nouvel DO_NOTHING attribut, nous vous recommandons de spécifier un préfixe distinct lorsque vous nommez vos DO_NOTHING attributs, puis d'utiliser ce préfixe pour définir les attributs non signés autorisés.

Vous ne pouvez pas supprimer un SIGN_ONLY attribut ENCRYPT_AND_SIGN ou existant de votre classe de données annotée, puis le réintégrer en tant qu'DO_NOTHINGattribut. Vous ne pouvez ajouter que des DO_NOTHING attributs entièrement nouveaux.

Les étapes à suivre pour ajouter un nouvel DO_NOTHING attribut varient selon que vous avez défini les attributs non signés autorisés de manière explicite dans une liste ou avec un préfixe.

Utilisation d'un préfixe d'attributs non signés autorisé

Si vous avez défini les actions de vos attributs avec unTableSchema, ajoutez le nouvel DO_NOTHING attribut à votre classe de données annotée avec l'@DynamoDBEncryptionDoNothingannotation. Si vous avez défini manuellement vos actions d'attribut, mettez à jour vos actions d'attribut pour inclure le nouvel attribut. Assurez-vous de configurer explicitement le nouvel attribut avec l'action d'DO_NOTHINGattribut. Vous devez inclure le même préfixe distinct dans le nom du nouvel attribut.

Utilisation d'une liste d'attributs non signés autorisés
  1. Ajoutez le nouvel DO_NOTHING attribut à votre liste d'attributs non signés autorisés et déployez la liste mise à jour.

  2. Déployez la modification à partir de l'étape 1.

    Vous ne pouvez pas passer à l'étape 3 tant que la modification n'est pas répercutée sur tous les hôtes qui ont besoin de lire ces données.

  3. Ajoutez le nouvel DO_NOTHING attribut à vos actions attributaires.

    1. Si vous avez défini les actions de vos attributs avec unTableSchema, ajoutez le nouvel DO_NOTHING attribut à votre classe de données annotée avec l'@DynamoDBEncryptionDoNothingannotation.

    2. Si vous avez défini manuellement vos actions d'attribut, mettez à jour vos actions d'attribut pour inclure le nouvel attribut. Assurez-vous de configurer explicitement le nouvel attribut avec l'action d'DO_NOTHINGattribut.

  4. Déployez la modification à partir de l'étape 3.