Résolution des problèmes liés à votre application cliente DynamoDB Encryption - Client de chiffrement Amazon DynamoDB

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 DynamoDB Encryption

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 nous faire part de vos commentaires sur le client de chiffrement DynamoDB, signalez un problème dans leaws-dynamodb-encryption-javaouaws-dynamodb-encryption-python GitHub référentiel.

Pour émettre des commentaires sur cette documentation, utilisez le lien des commentaires sur n'importe quelle page. Vous pouvez également déposer un problème ou contribuer àaws-dynamodb-encryption-docs, le référentiel open source pour cette documentation sur GitHub.

Accès refusé

Problème : L'accès à une ressource dont elle a besoin est refusé à votre application.

Sug : Découvrez les autorisations requises et ajoutez-les 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 d'Amazon Web Services (AWS) compte ou dépend de n'importe quelAWSweb. Toutefois, si votre application utiliseAWS, vous avez besoinunCompte AWSetutilisateurs qui ont l'autorisationpour 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 obtient des éléments d'une table, l'appelant doit être autorisé à utiliser les opérations DynamoDB requises dans votreCompte AWS. Pour obtenir des détails, veuillez consulter lesujets du contrôle d'accèsdans leGuide du développeur Amazon DynamoDB.

  • Si votre application utilise unClasse d'assistant clientdans le client de chiffrement DynamoDB pour Python, l'appelant doit être autorisé à appeler DynamoDBDescribeTableopération.

  • Le client de chiffrement DynamoDB ne nécessite pasAWS Key Management Service(AWS KMS). Toutefois, si votre application utiliseFournisseur direct de matériaux KMS, ou il utilise unFournisseur le plus récentavec un magasin fournisseur qui utiliseAWS KMS, l'appelant doit avoir l'autorisation d'utiliser leAWS KMS GenerateDataKeyetDéchiffrementopérations.

Échec de la vérification de la signature

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

Sug : Assurez-vous que les actions d'attribut que vous fournissez tiennent compte de 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

Dans laactions d'attributque 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 d'informations, 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.

Sug : Définissez des actions attributaires afin que les champs de réplication réservés ne soient ni cryptés ni signés.

Détails

Vous pouvez utiliser le client de chiffrement DynamoDB avecTables globales DynamoDB. Nous vous recommandons d'utiliser des tables globales avec unClé KMS multi-régionset répliquez la clé KMS dans tousRégions AWSoù la table globale est répliquée.

Commençant par des tables globalesversion 2019.11.21, vous pouvez utiliser des tables globales avec le client de chiffrement DynamoDB sans aucune configuration particulière. Toutefois, si vous utilisez des tables globalesversion 2017.11.29, vous devez vous assurer que les champs de réplication réservés ne sont ni crypté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 surDO_NOTHINGdansJavaou@DoNotTouchdansPython.

  • aws:rep:deleting

  • aws:rep:updatetime

  • aws:rep:updateregion

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

Performances médiocres 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.

Sug : Ajustement du time-to-live valeur et 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 permettant 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, time-to-live La valeur (TTL) détermine la durée pendant laquelle les fournisseurs de matériel cryptographique (CMP) mis en cache peuvent être utilisés. Le TTL détermine également la fréquence à laquelle le fournisseur le plus récent vérifie la présence d'une nouvelle version du CMP.

Si votre durée de vie est trop longue, votre application risque de violer vos règles commerciales ou vos normes de sécurité. Si votre TTL est trop court, des appels fréquents au magasin du fournisseur peuvent amener celui-ci à limiter les demandes provenant de votre application et d'autres applications qui partagent votre compte de service. Pour résoudre ce problème, ajustez le TTL et la taille du cache à une valeur qui répond à vos objectifs de latence et de disponibilité et qui soit conforme à vos normes de sécurité. Pour plus d'informations, consultez Définition d'une valeur de durée de vie.