Résolution des problèmes liés à votre application cliente de chiffrement 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.

Résolution des problèmes liés à votre application cliente de chiffrement 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, consultez la section Chiffrement AWS de base de données SDK pour la prise en charge des versions DynamoDB.

Cette section décrit les problèmes que vous pouvez rencontrer lors de l'utilisation du client de chiffrement DynamoDB et propose des suggestions pour les résoudre.

Pour fournir des commentaires sur le client de chiffrement DynamoDB, signalez un problème dans aws-dynamodb-encryption-javale référentiel or. aws-dynamodb-encryption-python GitHub

Pour émettre des commentaires sur cette documentation, utilisez le lien des commentaires sur n'importe quelle page.

Accès refusé

Problème : votre application se voit refuser l'accès à une ressource dont elle a besoin.

Suggestion : en savoir plus sur les autorisations requises et les ajouter au contexte de sécurité dans lequel votre application s'exécute.

Détails

Pour exécuter une application qui utilise la bibliothèque d'un client de chiffrement DynamoDB, l'appelant doit être autorisé à utiliser ses composants. Sinon, l'accès aux éléments requis lui est refusé.

  • Le client de chiffrement DynamoDB ne nécessite pas de compte Amazon Web Services AWS() et ne dépend d'aucun service. AWS Toutefois, si votre application l'utilise AWS, vous avez besoin d'un Compte AWS et d'utilisateurs autorisés à utiliser le compte.

  • Le client de chiffrement DynamoDB n'a pas besoin d'Amazon DynamoDB. Toutefois, si l'application qui utilise le client crée des tables DynamoDB, place des éléments dans une table ou extrait des éléments d'une table, l'appelant doit être autorisé à utiliser les opérations DynamoDB requises dans votre. Compte AWS Pour plus de détails, consultez les rubriques relatives au contrôle d'accès dans le guide du développeur Amazon DynamoDB.

  • Si votre application utilise une classe d'assistance client dans le client de chiffrement DynamoDB pour Python, l'appelant doit être autorisé à appeler l'opération DynamoDB. DescribeTable

  • Le client de chiffrement DynamoDB n'a pas AWS Key Management Service besoin de ().AWS KMS Toutefois, si votre application utilise un fournisseur de KMS matériel direct, ou si elle utilise un fournisseur le plus récent avec un magasin de fournisseurs qui l'utilise AWS KMS, l'appelant doit être autorisé à utiliser les opérations AWS KMS GenerateDataKeyet à déchiffrer.

Échec de la vérification de la signature

Problème : un élément ne peut pas être déchiffré en raison de l'échec de la vérification de la signature. L'élément peut aussi ne pas avoir été chiffré et signé comme vous l'escomptez.

Suggestion : vérifiez que les actions d'attribut que vous fournissez représentent tous les attributs de l'élément. Lors du déchiffrement d'un élément, veillez à fournir les actions d'attribut qui correspondent aux actions utilisées pour chiffrer l'élément.

Détails

Les actions d'attribut que vous fournissez indiquent au client de chiffrement DynamoDB les attributs à chiffrer et à signer, les attributs à signer (mais pas à chiffrer) et ceux à ignorer.

Si les actions d'attribut que vous spécifiez ne rendent pas compte de tous les attributs de l'élément, l'élément peut ne pas être chiffré et signé comme vous l'escomptiez. Si les actions d'attribut que vous fournissez lors du déchiffrement d'un élément diffèrent des actions d'attribut que vous avez fournies lors du chiffrement de l'élément, la vérification de la signature peut échouer. Il s'agit d'un problème particulier pour les applications distribuées dans lesquelles les nouvelles actions d'attribut peuvent ne pas avoir été propagées sur tous les hôtes.

Les erreurs de validation de signature sont difficiles à résoudre. Pour vous aider à les prévenir, prenez des précautions supplémentaires lorsque vous modifiez votre modèle de données. Pour plus de détails, consultez Modification de votre modèle de données.

Problèmes liés aux anciennes versions des tables globales

Problème : les éléments d'une ancienne version de la table globale Amazon DynamoDB ne peuvent pas être déchiffrés car la vérification des signatures échoue.

Suggestion : définissez des actions d'attribut afin que les champs de réplication réservés ne soient ni chiffrés ni signés.

Détails

Vous pouvez utiliser le client de chiffrement DynamoDB avec les tables globales DynamoDB. Nous vous recommandons d'utiliser des tables globales avec une clé multirégionale et de répliquer la KMS KMS clé dans tous les Régions AWS endroits où la table globale est répliquée.

À partir de la version 2019.11.21 des tables globales, vous pouvez utiliser des tables globales avec le client de chiffrement DynamoDB sans configuration particulière. Toutefois, si vous utilisez des tables globales version 2017.11.29, vous devez vous assurer que les champs de réplication réservés ne sont ni chiffrés ni signés.

Si vous utilisez la version 2017.11.29 des tables globales, vous devez définir les actions d'attribut pour les attributs suivants DO_NOTHING en Java ou en @DoNotTouch Python.

  • aws:rep:deleting

  • aws:rep:updatetime

  • aws:rep:updateregion

Si vous utilisez une autre version des tables globales, aucune action n'est requise.

Mauvaise performance du fournisseur le plus récent

Problème : votre application est moins réactive, en particulier après la mise à jour vers une version plus récente du client de chiffrement DynamoDB.

Suggestion : ajustez la time-to-live valeur et la taille du cache.

Détails

Le fournisseur le plus récent est conçu pour améliorer les performances des applications qui utilisent le client de chiffrement DynamoDB en autorisant une réutilisation limitée du matériel cryptographique. Lorsque vous configurez le fournisseur le plus récent pour votre application, vous devez trouver un équilibre entre l'amélioration des performances et les problèmes de sécurité liés à la mise en cache et à la réutilisation.

Dans les nouvelles versions du client de chiffrement DynamoDB, la valeur TTL () détermine time-to-live la durée pendant laquelle les fournisseurs CMPs de matériel cryptographique mis en cache () peuvent être utilisés. TTLIl détermine également la fréquence à laquelle le fournisseur le plus récent vérifie la présence d'une nouvelle version duCMP.

Si votre demande TTL est trop longue, votre application risque d'enfreindre les règles de votre entreprise ou vos normes de sécurité. Si vous TTL êtes trop bref, des appels fréquents au magasin du fournisseur peuvent entraîner le ralentissement des demandes provenant de votre application et d'autres applications partageant votre compte de service. Pour résoudre ce problème, ajustez la taille TTL et le cache à une valeur correspondant à vos objectifs de latence et de disponibilité et conforme à vos normes de sécurité. Pour plus d'informations, consultez Définition d'une time-to-live valeur.