Konzepte des Amazon DynamoDB Encryption Clients - 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.

Konzepte des Amazon DynamoDB Encryption Clients

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 Thema werden die Konzepte und Terminologie erläutert, die im Amazon DynamoDB Encryption Client verwendet werden.

Informationen zum Zusammenspiel der Komponenten des DynamoDB Encryption Client finden Sie unter. So funktioniert der DynamoDB Encryption Client

Anbieter von kryptographischen Materialien (Cryptographic Materials Provider (CMP))

Bei der Implementierung des DynamoDB Encryption Client besteht eine Ihrer ersten Aufgaben darin, einen Anbieter für kryptografische Materialien (CMP) (auch bekannt als Anbieter von Verschlüsselungsmaterialien) auszuwählen. Ihre Wahl bestimmt einen Großteil der restlichen Implementierung.

Ein Anbieter von kryptographischem Material (Cryptographic Materials Provider, CMP) erfasst und erstellt die kryptographischen Materialien und gibt sie zurück, die der Elementverschlüssler verwendet, um Ihre Tabellenelemente zu verschlüsseln und zu signieren. Der CMP bestimmt die zu verwendenden Verschlüsselungsalgorithmen, und wie Verschlüsselungs- und Signierschlüssel erzeugt und geschützt werden.

Der CMP interagiert mit dem Elementverschlüssler. Der Elementverschlüssler fordert vom CMP Ver- oder Entschlüsselungsmaterialien an, und der CMP gibt sie an den Elementverschlüsseler zurück. Dann verwendet der Elementverschlüssler die kryptographischen Materialien, um das Element zu verschlüsseln und zu signieren oder zu überprüfen und zu entschlüsseln.

Den CMP geben Sie bei der Konfiguration des Clients an. Sie können einen kompatiblen benutzerdefinierten CMP erstellen oder einen der vielen CMPs in der Bibliothek verwenden. Die meisten CMPs sind für mehrere Programmiersprachen verfügbar.

Elementverschlüssler

Der Elementverschlüsseler ist eine untergeordnete Komponente, die kryptografische Operationen für den DynamoDB Encryption Client ausführt. Er fordert kryptographisches Material von einem Anbieter von kryptographischem Material (Cryptographic Materials Provider, CMP) an und verwendet dann die vom CMP zurückgegebenen Materialien, um Ihr Tabellenelement zu verschlüsseln und zu signieren oder zu verifizieren und zu entschlüsseln.

Sie können direkt mit dem Elementverschlüsseler interagieren oder die Helferklassen verwenden, die Ihre Bibliothek zur Verfügung stellt. Der DynamoDB Encryption Client für Java enthält beispielsweise eine AttributeEncryptor Hilfsklasse, die Sie mit dem verwenden könnenDynamoDBMapper, anstatt direkt mit dem Elementverschlüsseler zu interagieren. DynamoDBEncryptor Die Python-Bibliothek enthält die Helferklassen EncryptedTable, EncryptedClient und EncryptedResource, die für Sie mit dem Elementverschlüssler interagieren.

Attributaktionen

Attribut-Aktionen teilen dem Elementverschlüsseler mit, welche Aktionen er auf jedes Attribut des Elements anwenden soll.

Das Attribut-Aktionswerte können einer der folgenden sein:

  • Verschlüsseln und signieren — Verschlüsselt den Attributwert. Nehmen Sie das Attribut (Name und Wert) in die Elementsignatur auf.

  • Nur signieren — Fügt das Attribut in die Artikelsignatur ein.

  • Nichts tun — Verschlüsseln oder signieren Sie das Attribut nicht.

Verwenden Sie für jedes Attribut, das vertrauliche Daten speichern kann, Verschlüsseln und signieren. Für Primärschlüsselattribute (Partitionsschlüssel und Sortierschlüssel) verwenden Sie Nur signieren. Das Materialverschlüsselungsattribut und das Signaturattribut werden wird nicht verschlüsselt oder signiert. Sie müssen für diese Attribute keine Attribut-Aktionen angeben.

Wählen Sie Ihre Attributaktionen sorgfältig aus. Verwenden Sie im Zweifelsfall Verschlüsseln und signieren. Sobald Sie den DynamoDB Encryption Client zum Schutz Ihrer Tabellenelemente verwendet haben, können Sie die Aktion für ein Attribut nicht mehr ändern, ohne einen Signaturvalidierungsfehler zu riskieren. Details hierzu finden Sie unter Ändern Ihres Datenmodells.

Warnung

Verschlüsseln Sie die primären Schlüsselattribute nicht. Sie müssen im Klartext bleiben, damit DynamoDB das Element finden kann, ohne einen vollständigen Tabellenscan ausführen zu müssen.

Wenn der DynamoDB-Verschlüsselungskontext Ihre primären Schlüsselattribute identifiziert, gibt der Client einen Fehler aus, wenn Sie versuchen, sie zu verschlüsseln.

Die Technik, mit der Sie die Attribut-Aktionen festlegen, ist für jede Programmiersprache unterschiedlich. Sie kann auch spezifisch für Helferklassen sein, die Sie verwenden.

Weitere Informationen finden Sie in der Dokumentation Ihrer Programmiersprache.

Materialbeschreibung

Die Materialbeschreibung für ein verschlüsseltes Tabellenelement besteht aus Informationen, wie z. B. Verschlüsselungsalgorithmen, wie das Tabellenelement verschlüsselt und signiert wird. Ein Anbieter von kryptographischem Material (Cryptographic Materials Provider, CMP) zeichnet die Materialbeschreibung auf, wenn er die kryptographischen Materialien für die Verschlüsselung und die Signatur zusammenstellt. Später, wenn er kryptographische Materialien zusammenstellen muss, um das Element zu verifizieren und zu entschlüsseln, verwendet er die Materialbeschreibung als seinen Leitfaden.

Im DynamoDB Encryption Client bezieht sich die Materialbeschreibung auf drei verwandte Elemente:

Angeforderte Materialbeschreibung

Einige Anbieter kryptographischer Materialien (Cryptographic Materials Providers, CMPs) ermöglichen die Angabe erweiterter Optionen, wie beispielsweise eines Verschlüsselungsalgorithmus. Um Ihre Auswahlmöglichkeiten anzugeben, fügen Sie der Materialbeschreibungseigenschaft des DynamoDB-Verschlüsselungskontextes in Ihrer Anfrage zum Verschlüsseln eines Tabellenelements Name-Wert-Paare hinzu. Dieses Element wird als die angeforderte Materialbeschreibung bezeichnet. Die gültigen Werte in der angeforderten Materialbeschreibung werden durch den von Ihnen gewählten CMP definiert.

Anmerkung

Da die Materialbeschreibung sichere Standardwerte überschreiben kann, empfehlen wir Ihnen, die angeforderte Materialbeschreibung wegzulassen, es sei denn, Sie haben einen zwingenden Grund, sie zu verwenden.

Tatsächliche Materialbeschreibung

Die Materialbeschreibung auf, die der Anbieter kryptographischer Materialien (Cryptographic Materials Provider, CMP) zurückgibt, wird als tatsächliche Materialbeschreibung bezeichnet. Sie beschreibt die tatsächlichen Werte, die der CMP bei der Zusammenstellung der kryptographischen Materialien verwendet hat. Sie besteht in der Regel aus der angeforderten Materialbeschreibung, falls vorhanden, mit Ergänzungen und Änderungen.

Materialbeschreibungsattribut

Der Client speichert die tatsächliche Materialbeschreibung in dem Materialbeschreibungsattribut des verschlüsselten Elements. Der Name des Materialbeschreibungsattributs ist amzn-ddb-map-desc, der Wert ist die tatsächliche Materialbeschreibung. Der Client verwendet die Werte im Materialbeschreibungsattribut, um das Element zu überprüfen und zu entschlüsseln.

DynamoDB-Verschlüsselungsclient

Der DynamoDB-Verschlüsselungskontext liefert Informationen über die Tabelle und das Element an den Anbieter von kryptografischen Materialien (CMP). In fortgeschrittenen Implementierungen kann der DynamoDB-Verschlüsselungskontext eine angeforderte Materialbeschreibung enthalten.

Wenn Sie Tabellenelemente verschlüsseln, ist der DynamoDB-Verschlüsselungskontext kryptografisch an die verschlüsselten Attributwerte gebunden. Wenn beim Entschlüsseln der DynamoDB-Verschlüsselungskontext nicht exakt mit dem DynamoDB-Verschlüsselungskontext übereinstimmt, der für die Verschlüsselung verwendet wurde, wobei zwischen Groß- und Kleinschreibung unterschieden wird, schlägt der Entschlüsselungsvorgang fehl. Wenn Sie direkt mit dem Elementverschlüsseler interagieren, müssen Sie einen DynamoDB-Verschlüsselungskontext angeben, wenn Sie eine Verschlüsselungs- oder Entschlüsselungsmethode aufrufen. Die meisten Helfer erstellen den DynamoDB-Verschlüsselungskontext für Sie.

Anmerkung

Der DynamoDB-Verschlüsselungskontext im DynamoDB Encryption Client hat nichts mit dem Verschlüsselungskontext in AWS Key Management Service () AWS KMS und dem zu tun. AWS Encryption SDK

Der DynamoDB-Verschlüsselungskontext kann die folgenden Felder enthalten. Alle Felder und Werte sind optional.

Provider-Store

Ein Provider-Store ist eine Komponente, die Anbieter kryptographischer Materialien (Cryptographic Materials Providers, CMPs) zurückgibt. Der Provider-Store kann die CMPs erstellen oder von einer anderen Quelle beziehen, z. B. von einem anderen Provider-Store. Der Provider-Store speichert Versionen der von ihm erstellten CMPs in einem persistenten Speicher, in dem jeder gespeicherte CMP durch den Materialnamen des Anforderers und die Versionsnummer identifiziert wird.

Der neueste Anbieter im DynamoDB Encryption Client bezieht seine CMPs aus einem Anbieterspeicher, aber Sie können den Anbieterspeicher verwenden, um CMPs für jede Komponente bereitzustellen. Jeder Most Recent Provider ist einem Provider-Store zugeordnet, aber ein Provider-Store kann CMPs an mehrere Anforderer über mehrere Hosts liefern.

Der Provider-Store erstellt bei Bedarf neue Versionen von CMPs und gibt neue und bestehende Versionen zurück. Außerdem gibt er die neueste Versionsnummer für einen bestimmten Materialnamen zurück. Daran erkennt der Anforderer, dass der Provider-Store eine neue Version seines CMP hat, die er anfordern kann.

Der DynamoDB Encryption Client beinhaltet einen MetaStore, bei dem es sich um einen Anbieterspeicher handelt, der Wrapped CMPs mit Schlüsseln erstellt, die in DynamoDB gespeichert und mithilfe eines internen DynamoDB-Verschlüsselungsclients verschlüsselt werden.

Weitere Informationen: