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 le chiffrement AWS de base de données SDK pour DynamoDB, vous fournissez des actions attributaires. Lors du chiffrement, le chiffrement AWS de base de données SDK utilise les actions d'attribut pour identifier les attributs à chiffrer et à signer, les attributs à 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 chiffrement AWS de base de données SDK 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 d'attribut ne sont pas enregistrées dans l'élément chiffré et le chiffrement AWS de base de données SDK ne met pas automatiquement à jour vos actions d'attribut.
Choisissez soigneusement vos actions d'attribut. En cas de doute, utilisez Chiffrer et signer. Une fois que vous avez utilisé le chiffrement AWS de base de données SDK pour protéger vos éléments, vous ne pouvez pas modifier un SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
attribut ou un attribut existant ENCRYPT_AND_SIGN
enDO_NOTHING
. SIGN_ONLY
Cependant, vous pouvez effectuer les modifications suivantes en toute sécurité.
Considérations relatives au chiffrement consultable
Avant de mettre à jour votre modèle de données, réfléchissez bien à 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 d'attribut 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.
Considérations relatives aux SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
attributs
Par défaut, les clés de partition et de tri sont les seuls attributs inclus dans le contexte de chiffrement. Vous pouvez envisager de définir des champs supplémentaires SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
afin que le fournisseur d'ID de clé de branche pour votre jeu de clés AWS KMS hiérarchique puisse identifier la clé de branche requise pour le déchiffrement à partir du contexte de chiffrement. Pour plus d'informations, consultez le fournisseur d'ID de clé de branche. Si vous spécifiez des SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
attributs, les attributs de partition et de tri doivent également l'êtreSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
.
Note
Pour utiliser l'action SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
cryptographique, vous devez utiliser la version 3.3 ou ultérieure du chiffrement SDK de AWS base de données. Déployez la nouvelle version sur tous les lecteurs avant de mettre à jour votre modèle de données pour l'inclureSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
.
Ajouter ENCRYPT_AND_SIGN
de SIGN_ONLY
nouveaux SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
attributs et
Pour ajouter un nouvel attribut ENCRYPT_AND_SIGN
SIGN_ONLY
, ou un nouvel SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
attribut, définissez-le dans vos actions d'attribut.
Vous ne pouvez pas supprimer un DO_NOTHING
attribut existant et le réajouter en tant qu'SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
attribut ENCRYPT_AND_SIGN
SIGN_ONLY
, ou.
Utilisation d'une classe de données annotée
Si vous avez défini vos actions d'attribut avec unTableSchema
, ajoutez le nouvel attribut à votre classe de données annotée. Si vous ne spécifiez aucune annotation d'action d'attribut pour le nouvel attribut, le client chiffrera 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 l'ajouter avec l'@DynamoDBEncryptionSignAndIncludeInEncryptionContext
annotation @DynamoDBEncryptionSignOnly
or.
Utilisation d'un modèle d'objet
Si vous avez défini manuellement vos actions d'attribut, ajoutez le nouvel attribut aux actions d'attribut de votre modèle d'objet et spécifiez ENCRYPT_AND_SIGN
SIGN_ONLY
, ou SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
en tant qu'action d'attribut.
Supprimer les 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 vous pouvez le supprimer officiellement de vos actions d'attribut. Lorsque vous arrêtez d'écrire de nouvelles données dans un attribut, celui-ci apparaît toujours dans vos actions d'attribut. Cela peut être utile si vous devez recommencer à utiliser l'attribut à l'avenir. La suppression officielle de l'attribut de vos actions d'attribut ne le supprime pas de votre ensemble de données. Votre jeu de données contiendra toujours des éléments qui incluent cet attribut.
Pour supprimer officiellement un attribut existantENCRYPT_AND_SIGN
, SIGN_ONLY
SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
, ou un DO_NOTHING
attribut, mettez à jour vos actions d'attribut.
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 dans cet attribut, le client doit tout de même savoir que l'attribut n'est pas signé pour pouvoir lire les éléments existants qui le contiennent.
Utilisation d'une classe de données annotée
Si vous avez défini vos actions d'attribut 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 d'attribut, supprimez l'attribut des actions d'attribut de votre modèle d'objet.
Remplacer un ENCRYPT_AND_SIGN
attribut existant par SIGN_ONLY
ou SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
Pour remplacer un ENCRYPT_AND_SIGN
attribut existant par SIGN_ONLY
ouSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
, vous devez mettre à jour vos actions d'attribut. 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 ne signera que les nouvelles valeurs écrites dans l'attribut.
Note
Réfléchissez bien à vos exigences de sécurité avant de remplacer un ENCRYPT_AND_SIGN
attribut existant par SIGN_ONLY
ouSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
. Tout attribut susceptible de stocker des données sensibles doit être chiffré.
Utilisation d'une classe de données annotée
Si vous avez défini vos actions d'attribut avec unTableSchema
, mettez à jour l'attribut existant pour inclure l'@DynamoDBEncryptionSignAndIncludeInEncryptionContext
annotation @DynamoDBEncryptionSignOnly
ou dans votre classe de données annotée.
Utilisation d'un modèle d'objet
Si vous avez défini manuellement vos actions d'attribut, mettez à jour l'action d'attribut associée à l'attribut existant depuis SIGN_ONLY
ou ENCRYPT_AND_SIGN
SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
vers votre modèle d'objet.
Modifier un SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
attribut SIGN_ONLY
ou un existant en ENCRYPT_AND_SIGN
Pour remplacer un attribut existant SIGN_ONLY
ou par un SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
attributENCRYPT_AND_SIGN
, vous devez mettre à jour vos actions d'attribut. Une fois la mise à jour déployée, le client sera en mesure de vérifier les valeurs existantes écrites dans l'attribut, puis de chiffrer et de signer les nouvelles valeurs écrites dans l'attribut.
Utilisation d'une classe de données annotée
Si vous avez défini vos actions d'attribut avec unTableSchema
, supprimez l'@DynamoDBEncryptionSignAndIncludeInEncryptionContext
annotation @DynamoDBEncryptionSignOnly
ou de l'attribut existant.
Utilisation d'un modèle d'objet
Si vous avez défini manuellement vos actions d'attribut, mettez à jour l'action d'attribut associée à l'attribut depuis SIGN_ONLY
ou SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
vers 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_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
attribut ou un attribut existant ENCRYPT_AND_SIGN
de votre classe de données annotée, puis le réintégrer en tant qu'DO_NOTHING
attribut. SIGN_ONLY
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 vos attributs non signés autorisés de manière explicite dans une liste ou à l'aide d'un préfixe.
Utilisation d'un préfixe d'attributs non signés autorisé
Si vous avez défini vos actions d'attribut avec unTableSchema
, ajoutez le nouvel DO_NOTHING
attribut à votre classe de données annotée avec l'@DynamoDBEncryptionDoNothing
annotation. Si vous avez défini manuellement vos actions d'attribut, mettez-les à jour pour inclure le nouvel attribut. Assurez-vous de configurer explicitement le nouvel attribut avec l'action d'DO_NOTHING
attribut. 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
-
Ajoutez le nouvel
DO_NOTHING
attribut à votre liste d'attributs non signés autorisés et déployez la liste mise à jour. -
Déployez la modification depuis l'étape 1.
Vous ne pouvez pas passer à l'étape 3 tant que la modification ne s'est pas propagée à tous les hôtes qui ont besoin de lire ces données.
-
Ajoutez le nouvel
DO_NOTHING
attribut à vos actions d'attribut.-
Si vous avez défini vos actions d'attribut avec un
TableSchema
, ajoutez le nouvelDO_NOTHING
attribut à votre classe de données annotée avec l'@DynamoDBEncryptionDoNothing
annotation. -
Si vous avez défini manuellement vos actions d'attribut, mettez-les à jour pour inclure le nouvel attribut. Assurez-vous de configurer explicitement le nouvel attribut avec l'action d'
DO_NOTHING
attribut.
-
-
Déployez la modification depuis l'étape 3.
Modifier un SIGN_ONLY
attribut existant en SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
Pour remplacer un SIGN_ONLY
attribut existant parSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
, vous devez mettre à jour vos actions d'attribut. Après avoir déployé la mise à jour, le client sera en mesure de vérifier les valeurs existantes écrites dans l'attribut et continuera à signer les nouvelles valeurs écrites dans l'attribut. Les nouvelles valeurs écrites dans l'attribut seront incluses dans le contexte de chiffrement.
Si vous spécifiez des SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
attributs, les attributs de partition et de tri doivent également l'êtreSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
.
Utilisation d'une classe de données annotée
Si vous avez défini vos actions d'attribut avec unTableSchema
, mettez à jour l'action d'attribut associée à l'attribut de @DynamoDBEncryptionSignOnly
à@DynamoDBEncryptionSignAndIncludeInEncryptionContext
.
Utilisation d'un modèle d'objet
Si vous avez défini manuellement vos actions d'attribut, mettez à jour l'action d'attribut associée à l'attribut de SIGN_ONLY
à SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
dans votre modèle d'objet.
Modifier un SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
attribut existant en SIGN_ONLY
Pour remplacer un SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
attribut existant parSIGN_ONLY
, vous devez mettre à jour vos actions d'attribut. Après avoir déployé la mise à jour, le client sera en mesure de vérifier les valeurs existantes écrites dans l'attribut et continuera à signer les nouvelles valeurs écrites dans l'attribut. Les nouvelles valeurs écrites dans l'attribut ne seront pas incluses dans le contexte de chiffrement.
Avant de remplacer un SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
attribut existant parSIGN_ONLY
, réfléchissez bien à l'impact que vos mises à jour peuvent avoir sur les fonctionnalités de votre fournisseur d'ID de clé de succursale.
Utilisation d'une classe de données annotée
Si vous avez défini vos actions d'attribut avec unTableSchema
, mettez à jour l'action d'attribut associée à l'attribut de @DynamoDBEncryptionSignAndIncludeInEncryptionContext
à@DynamoDBEncryptionSignOnly
.
Utilisation d'un modèle d'objet
Si vous avez défini manuellement vos actions d'attribut, mettez à jour l'action d'attribut associée à l'attribut de SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
à SIGN_ONLY
dans votre modèle d'objet.