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

Résolution des problèmes liés à votre application client 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, voir AWSDatabase Encryption SDK pour connaître la prise en charge des versions de 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 nous faire part de vos commentaires sur le client de chiffrement DynamoDB, signalez un problème dans le référentiel aws-dynamodb-encryption-javaor aws-dynamodb-encryption-pythonGitHub.

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 au aws-dynamodb-encryption-docsréférentiel open source de cette documentation surGitHub.

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 AWS service. Toutefois, si votre application utiliseAWS, vous avez besoin d'un compte 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 obtient des éléments d'une table, l'appelant doit être autorisé à utiliser les opérations DynamoDB requises dans votre. Compte AWS Pour en savoir plus, consultez les rubriques relatives au contrôle d'accès dans le manuel Amazon DynamoDB Developer Guide.

  • 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 besoin de AWS Key Management Service ()AWS KMS. Toutefois, si votre application utilise un fournisseur de matériaux Direct KMS, ou si elle utilise un fournisseur le plus récent avec un magasin de fournisseurs qui l'utiliseAWS KMS, l'appelant doit être autorisé à utiliser les opérations AWS KMS GenerateDataKeyet Decrypt.

É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 attributaires que vous fournissez indiquent au client de chiffrement DynamoDB quels attributs doivent être chiffrés et signés, quels attributs doivent être signés (mais pas chiffrés) et lesquels 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 articles 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 les actions attributaires 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 des tables globales DynamoDB. Nous vous recommandons d'utiliser des tables globales avec une clé KMS multirégionale et de répliquer la clé KMS partout Régions AWS 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 attributaires pour les attributs suivants DO_NOTHING en Java ou @DoNotTouch en Python.

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

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 permettant une réutilisation limitée des matériaux cryptographiques. 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 time-to-live (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 TTL est trop long, il est possible que votre application ne respecte pas vos règles commerciales ou vos normes de sécurité. Si votre TTL est trop court, les appels fréquents au magasin du fournisseur peuvent amener ce dernier à limiter les demandes provenant de votre application et d'autres applications partageant 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 time-to-live valeur.