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

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 Database Encryption umbenannt. AWS SDK Das folgende Thema enthält Informationen zu 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 AWS Database Encryption SDK for DynamoDB-Versionsunterstützung.

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

Um Feedback zum DynamoDB Encryption Client zu geben, melden Sie ein Problem im aws-dynamodb-encryption-javaaws-dynamodb-encryption-python GitHub OR-Repository.

Über den auf jeder Seite angezeigten Feedback-Link können Sie Feedback zu dieser Dokumentation bereitstellen.

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 berechtigt sein, 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 Service abhängig. AWS Wenn Ihre Anwendung jedoch verwendet AWS, benötigen Sie ein AWS-Konto und Benutzer, die berechtigt sind, 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 Ihrer zu verwenden. AWS-Konto Einzelheiten finden Sie in den Themen zur Zugriffskontrolle im Amazon DynamoDB Developer Guide.

  • Wenn Ihre Anwendung eine Client-Hilfsklasse im DynamoDB Encryption Client für Python verwendet, muss der Aufrufer berechtigt sein, den DynamoDB-Vorgang aufzurufen. DescribeTable

  • Der DynamoDB Encryption Client benötigt AWS Key Management Service ()AWS KMS nicht. Wenn Ihre Anwendung jedoch einen Direct KMS Materials Provider oder einen Aktuellsten Anbietermit einem Provider-Store verwendet, der dies verwendet, muss der Aufrufer über die Berechtigung verfügen AWS KMS, die Operationen AWS KMSGenerateDataKeyund Decrypt 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, 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: Richten Sie Attributaktionen so ein, dass die reservierten Replikationsfelder nicht verschlüsselt oder signiert werden.

Details

Sie können den DynamoDB Encryption Client mit globalen DynamoDB-Tabellen verwenden. Wir empfehlen, globale Tabellen mit einem Schlüssel für mehrere Regionen zu verwenden und den KMS KMS Schlüssel in alle Bereiche 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 einem Update auf eine neuere Version des DynamoDB Encryption Client.

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

Details

The Most Recent Provider wurde entwickelt, um die Leistung von Anwendungen zu verbessern, die den DynamoDB Encryption Client verwenden, indem eine eingeschränkte Wiederverwendung von kryptografischem Material ermöglicht wird. 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 Zwischenspeichern und der Wiederverwendung ergeben.

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

Wenn Ihr zu lang TTL ist, verstößt Ihre Anwendung möglicherweise gegen Ihre Geschäftsregeln oder Sicherheitsstandards. Wenn Sie TTL zu kurz sind, können häufige Anrufe beim Provider Store dazu führen, dass Ihr Provider Store Anfragen von Ihrer Anwendung und anderen Anwendungen, die Ihr Dienstkonto gemeinsam nutzen, drosselt. Um dieses Problem zu beheben, passen Sie den Wert TTL und die 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.