Behebung von Problemen in Ihrer DynamoDB Encryption Client-Anwendung - AWS SDK für Datenbankverschlüsselung

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Behebung von Problemen in Ihrer DynamoDB Encryption Client-Anwendung

Anmerkung

Unsere clientseitige Verschlüsselungsbibliothek wurde in AWS Database Encryption SDK umbenannt. Das folgende Thema enthält Informationen zu den Versionen 1. x —2. x des DynamoDB Encryption Client für Java und Versionen 1. x —3. x des DynamoDB Encryption Client für Python. Weitere Informationen finden Sie unter AWSDatabase Encryption SDK für DynamoDB-Versionsunterstützung.

In diesem Abschnitt werden Probleme beschrieben, die bei der Verwendung des DynamoDB Encryption Client auftreten können, und es werden Vorschläge zu deren Lösung gegeben.

Um Feedback zum DynamoDB Encryption Client zu geben, melden Sie ein Problem im aws-dynamodb-encryption-javaoder aws-dynamodb-encryption-pythonGitHub-Repository.

Über den auf jeder Seite angezeigten Feedback-Link können Sie Feedback zu dieser Dokumentation bereitstellen. Sie können auch ein Problem melden oder zum aws-dynamodb-encryption-docsOpen-Source-Repository für diese Dokumentation beitragen. GitHub

Zugriff verweigert

Problem: Ihrer Anwendung wird der Zugriff auf eine benötigte Ressource verweigert.

Vorschlag: Informieren Sie sich über die erforderlichen Berechtigungen und fügen Sie sie dem Sicherheitskontext hinzu, in dem Ihre Anwendung ausgeführt wird.

Details

Um eine Anwendung auszuführen, die die DynamoDB Encryption Client-Bibliothek verwendet, muss der Aufrufer über die Berechtigung verfügen, ihre Komponenten zu verwenden. Andernfalls wird ihnen der Zugriff auf die benötigten Elemente verweigert.

  • Der DynamoDB Encryption Client benötigt kein Amazon Web Services (AWS) -Konto und ist auch nicht von einem Dienst abhängig. AWS Wenn Ihre Anwendung jedoch verwendet wirdAWS, benötigen Sie ein AWS-Konto und Benutzer, die über die Berechtigung verfügen, das Konto zu verwenden.

  • Der DynamoDB Encryption Client benötigt Amazon DynamoDB nicht. Wenn die Anwendung, die den Client verwendet, jedoch DynamoDB-Tabellen erstellt, Elemente in eine Tabelle einfügt oder Elemente aus einer Tabelle abruft, muss der Aufrufer über die Berechtigung verfügen, die erforderlichen DynamoDB-Operationen in Ihrem zu verwenden. AWS-Konto Einzelheiten finden Sie in den Themen zur Zugriffskontrolle im Amazon DynamoDB-Entwicklerhandbuch.

  • Wenn Ihre Anwendung eine Client-Hilfsklasse im DynamoDB Encryption Client für Python verwendet, muss der Aufrufer über die Berechtigung verfügen, die DynamoDB-Operation aufzurufen. DescribeTable

  • Der DynamoDB Encryption Client benötigt nicht AWS Key Management Service ()AWS KMS. Wenn Ihre Anwendung jedoch einen direkten KMS-Materialanbieter oder einen Aktuellsten Anbieter mit einem Anbieterspeicher verwendet, der diese verwendetAWS KMS, muss der Aufrufer über die Berechtigung verfügen, die Operationen AWS KMS GenerateDataKeyund Entschlüsseln zu verwenden.

Signaturverifizierung schlägt fehl

Problem: Ein Element kann nicht entschlüsselt werden, da die Signaturprüfung fehlschlägt. Das Element ist möglicherweise auch nicht so verschlüsselt und signiert, wie von Ihnen beabsichtigt.

Vorschlag: Stellen Sie sicher, dass die Attribut-Aktionen, die Sie zur Verfügung stellen, alle Attribute des Elements berücksichtigen. Wenn Sie ein Element entschlüsseln, stellen Sie sicher, dass die Attributaktionen mit den Aktionen übereinstimmen, die zum Verschlüsseln des Elements verwendet wurden.

Details

Die von Ihnen bereitgestellten Attributaktionen teilen dem DynamoDB Encryption Client mit, welche Attribute verschlüsselt und signiert werden sollen, welche Attribute signiert (aber nicht verschlüsselt) und welche ignoriert werden sollen.

Wenn die von Ihnen angegebenen Attribut-Aktionen nicht alle Attribute im Element berücksichtigen, wird das Element möglicherweise nicht so verschlüsselt und signiert, wie Sie es beabsichtigen. Wenn die Attribut-Aktionen, die Sie beim Entschlüsseln eines Elements angeben, von den Attribut-Aktionen abweichen, die Sie beim Verschlüsseln des Elements angegeben haben, kann die Signaturprüfung fehlschlagen. Dies ist speziell ein Problem für verteilte Anwendungen, bei denen sich neue Attribut-Aktionen nicht auf alle Hosts ausgebreitet haben.

Signaturvalidierungsfehler sind schwer zu beheben. Um sie zu verhindern, sollten Sie zusätzliche Vorsichtsmaßnahmen ergreifen, wenn Sie Ihr Datenmodell ändern. Details hierzu finden Sie unter Ändern Ihres Datenmodells.

Probleme mit globalen Tabellen älterer Versionen

Problem: Elemente in einer älteren Version der globalen Amazon DynamoDB-Tabelle können nicht entschlüsselt werden, da die Signaturüberprüfung fehlschlägt.

Vorschlag: Legen Sie Attributaktionen so fest, dass die reservierten Replikationsfelder nicht verschlüsselt oder signiert sind.

Details

Sie können den DynamoDB Encryption Client mit globalen DynamoDB-Tabellen verwenden. Es wird empfohlen, globale Tabellen mit einem KMS-Schlüssel für mehrere Regionen zu verwenden und den KMS-Schlüssel in alle Tabellen zu replizieren, in AWS-Regionen denen die globale Tabelle repliziert wird.

Ab Version 2019.11.21 für globale Tabellen können Sie globale Tabellen mit dem DynamoDB Encryption Client ohne spezielle Konfiguration verwenden. Wenn Sie jedoch die Version 2017.11.29 für globale Tabellen verwenden, müssen Sie sicherstellen, dass reservierte Replikationsfelder nicht verschlüsselt oder signiert sind.

Wenn Sie die globale Tabellenversion 2017.11.29 verwenden, müssen Sie die Attributaktionen für die folgenden Attribute DO_NOTHING in Java oder @DoNotTouch Python auf setzen.

  • aws:rep:deleting

  • aws:rep:updatetime

  • aws:rep:updateregion

Wenn Sie eine andere Version von globalen Tabellen verwenden, ist keine Aktion erforderlich.

Schlechte Leistung des neuesten Anbieters

Problem: Ihre Anwendung reagiert weniger, insbesondere nach dem Update auf eine neuere Version des DynamoDB Encryption Client.

Vorschlag: Passen Sie den time-to-live Wert und die Cachegröße an.

Details

Der Most Recent Provider wurde entwickelt, um die Leistung von Anwendungen zu verbessern, die den DynamoDB Encryption Client verwenden, indem kryptografisches Material nur eingeschränkt wiederverwendet werden kann. Wenn Sie den neuesten Anbieter für Ihre Anwendung konfigurieren, müssen Sie die verbesserte Leistung mit den Sicherheitsbedenken abwägen, die sich aus dem Caching und der Wiederverwendung ergeben.

In neueren Versionen des DynamoDB Encryption Client bestimmt der time-to-live (TTL) -Wert, wie lange zwischengespeicherte Cryptographic Material Providers (CMPs) verwendet werden können. Die TTL bestimmt auch, wie oft der neueste Anbieter nach einer neuen Version des CMP sucht.

Wenn Ihre TTL zu lang ist, verstößt Ihre Anwendung möglicherweise gegen Ihre Geschäftsregeln oder Sicherheitsstandards. Wenn Ihre TTL zu kurz ist, können häufige Anrufe beim Providerstore dazu führen, dass Ihr Providerstore Anfragen von Ihrer Anwendung und anderen Anwendungen, die Ihr Servicekonto gemeinsam nutzen, drosselt. Um dieses Problem zu lösen, passen Sie die TTL- und Cachegröße auf einen Wert an, der Ihren Latenz- und Verfügbarkeitszielen entspricht und Ihren Sicherheitsstandards entspricht. Details hierzu finden Sie unter Einen time-to-live Wert festlegen.