Résolution des problèmes de votre application DynamoDB Encryption Client - 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 de votre application DynamoDB Encryption Client

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, soumettez un problème dans leaws-dynamodb-encryptionjavaouaws-dynamodb-encryption-Python GitHubrepository.

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 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 une bibliothèque client de chiffrement DynamoDB, l'appelant doit avoir l'autorisation d'utiliser ses composants. Sinon, l'accès aux éléments requis lui est refusé.

  • Le client de chiffrement DynamoDB n'a pas besoin d'Amazon Web Services (AWS) ou dépendent d'unAWSservice. Toutefois, si votre application utiliseAWS, vous avez besoinunCompte AWSetutilisateurs disposant d'une autorisationpour utiliser le compte.

  • Le client de chiffrement DynamoDB ne nécessite pas Amazon DynamoDB. Cependant, si l'application qui utilise le client crée des tables DynamoDB, place les éléments dans une table ou obtient les éléments à partir d'une table, l'appelant doit avoir l'autorisation d'utiliser les opérations DynamoDB requises dans votreCompte AWS. Pour plus d'informations, consultez lerubriques de contrôle d'accèsdans leAmazon DynamoDB Developer Guide.

  • Si votre application utilise unclasse d'assistance clientDans DynamoDB Encryption Client for Python, l'appelant doit avoir l'autorisation d'appeler DynamoDBDescribeTable.

  • Le client de chiffrement DynamoDB n'a pas besoinAWS Key Management Service(AWS KMS). Toutefois, si votre application utilise unFournisseur de matériaux KMS direct, ou il utilise unÀ propos du fournisseur le plus récentavec un magasin de fournisseurs qui utiliseAWS KMS, l'appelant doit avoir l'autorisation d'utiliser leAWS KMS GenerateDataCléetDecryptopérations.

É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 : Assurez-vous 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

LeActions d'attributque vous fournissez, indiquez 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. Plus important encore, si vos actions d'attribut 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 avec les tables globales des versions antérieures

Problème : Les éléments d'une ancienne table globale Amazon DynamoDB ne peuvent pas être déchiffrés en raison de l'échec de la vérification de la signature.

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 avecTables globales DynamoDB. Nous vous recommandons d'utiliser les tables globales avec unClé KMS multi-régionset répliquez la clé KMS dans tous lesRégions AWSoù la table globale est répliquée.

En commençant par les tables globalesversion 2019.11.21, vous pouvez utiliser des tables globales avec DynamoDB Encryption Client sans configuration spéciale. 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 chiffrés ni signés.

Si vous utilisez les tables globales version 2017.11.29, vous devez définir les actions attributaires des 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.

Mauvaise performance du fournisseur le plus récent

Problème : Votre application est moins réactive, surtout après la mise à jour vers une version plus récente de DynamoDB Encryption Client.

Suggestion : Ajustement dutime-to-livevaleur 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 des matériaux cryptographiques. Lorsque vous configurez le fournisseur le plus récent pour votre application, vous devez équilibrer les performances améliorées et les problèmes de sécurité liés à la mise en cache et à la réutilisation.

Dans les versions plus récentes de DynamoDB Encryption Client, letime-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 recherche une nouvelle version du CMP.

Si votre TTL est trop long, votre application peut enfreindre vos règles métier ou vos normes de sécurité. Si votre TTL est trop bref, les appels fréquents vers le magasin de fournisseurs peuvent entraîner la limitation des demandes 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 conforme à vos normes de sécurité. Pour plus d'informations, consultez Définition d'une valeur de durée de vie.