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.
AWS KMS Hierarchische Schlüsselringe
Mit dem AWS KMS hierarchischen Schlüsselbund können Sie Ihr kryptografisches Material mit einem KMS-Schlüssel mit symmetrischer Verschlüsselung schützen, ohne AWS KMS jedes Mal anrufen zu müssen, wenn Sie Daten ver- oder entschlüsseln. Es ist eine gute Wahl für Anwendungen, die möglichst wenige Aufrufe benötigen, und für Anwendungen AWS KMS, die einige kryptografische Materialien wiederverwenden können, ohne ihre Sicherheitsanforderungen zu verletzen.
Beim hierarchischen Schlüsselbund handelt es sich um eine Lösung zum Zwischenspeichern kryptografischer Materialien, die die Anzahl der AWS KMS Aufrufe reduziert, indem AWS KMS geschützte Zweigschlüssel verwendet werden, die in einer Amazon DynamoDB-Tabelle gespeichert sind, und anschließend das für Verschlüsselungs- und Entschlüsselungsvorgänge verwendete Zweigschlüsselmaterial lokal zwischenspeichert. Die DynamoDB-Tabelle dient als Schlüsselspeicher, der Zweigschlüssel verwaltet und schützt. Sie speichert den aktiven Zweigschlüssel und alle früheren Versionen des Zweigschlüssels. Der aktive Filialschlüssel ist die neueste Version des Zweigschlüssels. Der hierarchische Schlüsselbund verwendet einen eindeutigen Datenschlüssel, um jede Nachricht zu verschlüsseln. Er verschlüsselt jeden Datenverschlüsselungsschlüssel für jede Verschlüsselungsanforderung und verschlüsselt jeden Datenverschlüsselungsschlüssel mit einem eindeutigen Umhüllungsschlüssel, der vom aktiven Zweigschlüssel abgeleitet wird. Der hierarchische Schlüsselbund hängt von der Hierarchie ab, die zwischen aktiven Zweigschlüsseln und ihren abgeleiteten Umhüllungsschlüsseln eingerichtet wurde.
Der hierarchische Schlüsselbund verwendet in der Regel jede Zweigschlüsselversion, um mehrere Anforderungen zu erfüllen. Sie steuern jedoch, in welchem Umfang aktive Abzweigschlüssel wiederverwendet werden, und bestimmen, wie oft der aktive Abzweigschlüssel rotiert wird. Die aktive Version der Abzweigtaste bleibt aktiv, bis Sie sie Drehe deinen aktiven Filialschlüssel drehen. Frühere Versionen des aktiven Zweigschlüssels werden nicht für Verschlüsselungsvorgänge verwendet, können aber trotzdem abgefragt und bei Entschlüsselungsvorgängen verwendet werden.
Wenn Sie den hierarchischen Schlüsselbund instanziieren, wird ein lokaler Cache erstellt. Sie geben ein Cache-Limit an, das die maximale Zeitdauer definiert, für die die Branch-Key-Materialien im lokalen Cache gespeichert werden, bevor sie ablaufen und aus dem Cache entfernt werden. Der hierarchische Schlüsselbund führt einen AWS KMS Aufruf durch, um den Zweigschlüssel zu entschlüsseln und die Zweigschlüsselmaterialien zusammenzustellen, wenn a zum ersten Mal in einer Operation angegeben branch-key-id wird. Anschließend werden die Zweigschlüsselmaterialien im lokalen Cache gespeichert und für alle Verschlüsselungs- und Entschlüsselungsvorgänge, die dies angeben, wiederverwendet, bis das Cache-Limit abläuft. branch-key-id Das Speichern von Zweigschlüsselmaterial im lokalen Cache reduziert die Anzahl der Aufrufe. AWS KMS Stellen Sie sich beispielsweise ein Cache-Limit von 15 Minuten vor. Wenn Sie 10.000 Verschlüsselungsvorgänge innerhalb dieses Cache-Limits ausführen, müsste der herkömmliche AWS KMS Schlüsselbund 10.000 AWS KMS Aufrufe tätigen, um 10.000 Verschlüsselungsvorgänge abzuwickeln. Wenn Sie einen aktiven Schlüsselbund habenbranch-key-id, muss der hierarchische Schlüsselbund nur einen AWS KMS Aufruf tätigen, um 10.000 Verschlüsselungsvorgänge abzuwickeln.
Der lokale Cache trennt Verschlüsselungsmaterial von Entschlüsselungsmaterial. Das Verschlüsselungsmaterial wird aus dem aktiven Zweigschlüssel zusammengestellt und für alle Verschlüsselungsvorgänge wiederverwendet, bis das Cache-Limit abläuft. Die Entschlüsselungsmaterialien werden aus der Zweigschlüssel-ID und der Version zusammengestellt, die in den Metadaten des verschlüsselten Felds identifiziert sind. Sie werden für alle Entschlüsselungsvorgänge im Zusammenhang mit der Zweigschlüssel-ID und Version wiederverwendet, bis das Cache-Limit abläuft. Der lokale Cache kann mehrere Versionen desselben Zweigschlüssels gleichzeitig speichern. Wenn der lokale Cache für die Verwendung von a konfiguriert istbranch key ID supplier, kann er auch Filialschlüsselmaterial aus mehreren aktiven Zweigschlüsseln gleichzeitig speichern.
Anmerkung
Alle Erwähnungen des Begriffs Hierarchischer Schlüsselbund im AWS Encryption SDK beziehen sich auf den AWS KMS Hierarchischen Schlüsselbund.
Kompatibilität mit Programmiersprachen
Der hierarchische Schlüsselbund wird von den folgenden Programmiersprachen und Versionen unterstützt:
-
Version 3. x des AWS-Verschlüsselungs-SDK for Java
-
Version 4. x und höher von AWS Encryption SDK für .NET
-
Version 4. x von AWS-Verschlüsselungs-SDK for Python, wenn es mit der optionalen MPL-Abhängigkeit verwendet wird.
-
Version 1. x der AWS Encryption SDK für Rust
-
Version 0.1. x oder höher der AWS Encryption SDK für Go
-
Version 4.1. x und später des AWS-Verschlüsselungs-SDK for JavaScript Formulars JavaScript Node.js.
-
Der AWS KMS hierarchische Schlüsselbund wird im for-Browser nicht unterstützt. AWS-Verschlüsselungs-SDK for JavaScript JavaScript Den aktuellen Status und die Einschränkungen finden Sie im https://github.com/aws/aws-encryption-sdk-javascript/
aws-encryption-sdk-javascript-Repository unter. GitHub
-
Themen
Funktionsweise
In den folgenden exemplarischen Vorgehensweisen wird beschrieben, wie der hierarchische Schlüsselbund Verschlüsselungs- und Entschlüsselungsmaterial zusammenstellt, sowie die verschiedenen Aufrufe, die der Schlüsselbund für Verschlüsselungs- und Entschlüsselungsvorgänge ausführt. Technische Details zu den Verfahren zur Ableitung von Wrapping-Schlüsseln und zur Verschlüsselung von Klartext-Datenschlüsseln finden Sie unter Technische Details zum hierarchischen Schlüsselbund. AWS KMS
Verschlüsseln und signieren
In der folgenden exemplarischen Vorgehensweise wird beschrieben, wie der hierarchische Schlüsselbund Verschlüsselungsmaterialien zusammenstellt und daraus einen eindeutigen Umschließungsschlüssel ableitet.
-
Bei der Verschlüsselungsmethode wird der hierarchische Schlüsselbund nach Verschlüsselungsmaterial gefragt. Der Schlüsselbund generiert einen Klartext-Datenschlüssel und prüft dann, ob im lokalen Cache gültige Verzweigungsmaterialien vorhanden sind, um den Wrapping-Schlüssel zu generieren. Wenn gültige Materialien für die Zweigschlüssel vorhanden sind, fährt der Schlüsselbund mit Schritt 4 fort.
-
Wenn keine gültigen Materialien für Zweigschlüssel vorhanden sind, fragt der hierarchische Schlüsselbund den Schlüsselspeicher nach dem aktiven Zweigschlüssel ab.
-
Der Schlüsselspeicher ruft AWS KMS zur Entschlüsselung des aktiven Zweigschlüssels auf und gibt den aktiven Zweigschlüssel im Klartext zurück. Daten, die den aktiven Zweigschlüssel identifizieren, werden serialisiert, um zusätzliche authentifizierte Daten (AAD) im Entschlüsselungsaufruf von bereitzustellen. AWS KMS
-
Der Schlüsselspeicher gibt den Zweigschlüssel im Klartext und die ihn identifizierenden Daten zurück, z. B. die Version des Zweigschlüssels.
-
-
Der hierarchische Schlüsselbund stellt das Schlüsselmaterial der Zweige zusammen (den Klartext-Zweigschlüssel und die Version des Zweigschlüssels) und speichert eine Kopie davon im lokalen Cache.
-
Der hierarchische Schlüsselbund leitet aus dem Zweigschlüssel im Klartext und einem zufälligen 16-Byte-Salt einen eindeutigen Umbruchsschlüssel ab. Er verwendet den abgeleiteten Wrapping-Schlüssel, um eine Kopie des Klartext-Datenschlüssels zu verschlüsseln.
Die Verschlüsselungsmethode verwendet die Verschlüsselungsmaterialien, um die Daten zu verschlüsseln. Weitere Informationen finden Sie unter So werden AWS Encryption SDK Daten verschlüsselt.
Entschlüsseln und verifizieren
In der folgenden exemplarischen Vorgehensweise wird beschrieben, wie der hierarchische Schlüsselbund Entschlüsselungsmaterial zusammenstellt und den verschlüsselten Datenschlüssel entschlüsselt.
-
Die Entschlüsselungsmethode identifiziert den verschlüsselten Datenschlüssel aus der verschlüsselten Nachricht und übergibt ihn an den hierarchischen Schlüsselbund.
-
Der hierarchische Schlüsselbund deserialisiert Daten, die den verschlüsselten Datenschlüssel identifizieren, einschließlich der Version des Zweigschlüssels, des 16-Byte-Salt und anderer Informationen, die beschreiben, wie der Datenschlüssel verschlüsselt wurde.
Weitere Informationen finden Sie unter AWS KMS Technische Details zum hierarchischen Schlüsselbund.
-
Der hierarchische Schlüsselbund überprüft, ob im lokalen Cache gültige Zweigschlüsselmaterialien vorhanden sind, die der in Schritt 2 identifizierten Version des Zweigschlüssels entsprechen. Wenn gültige Materialien für Zweigschlüssel vorhanden sind, fährt der Schlüsselbund mit Schritt 6 fort.
-
Wenn keine gültigen Materialien für Zweigschlüssel vorhanden sind, fragt der hierarchische Schlüsselbund den Schlüsselspeicher nach dem Zweigschlüssel ab, der der in Schritt 2 identifizierten Version des Zweigschlüssels entspricht.
-
Der Schlüsselspeicher ruft AWS KMS auf, um den Zweigschlüssel zu entschlüsseln, und gibt den aktiven Zweigschlüssel im Klartext zurück. Daten, die den aktiven Zweigschlüssel identifizieren, werden serialisiert, um zusätzliche authentifizierte Daten (AAD) im Entschlüsselungsaufruf von bereitzustellen. AWS KMS
-
Der Schlüsselspeicher gibt den Zweigschlüssel im Klartext und die ihn identifizierenden Daten zurück, z. B. die Version des Zweigschlüssels.
-
-
Der hierarchische Schlüsselbund stellt das Schlüsselmaterial der Zweige zusammen (den Klartext-Zweigschlüssel und die Version des Zweigschlüssels) und speichert eine Kopie davon im lokalen Cache.
-
Der hierarchische Schlüsselbund verwendet das zusammengestellte Zweigschlüsselmaterial und das in Schritt 2 identifizierte 16-Byte-Salt, um den eindeutigen Wrapping-Schlüssel zu reproduzieren, der den Datenschlüssel verschlüsselt hat.
-
Der hierarchische Schlüsselbund verwendet den reproduzierten Wrapping-Schlüssel zur Entschlüsselung des Datenschlüssels und gibt den Klartext-Datenschlüssel zurück.
Die Entschlüsselungsmethode verwendet das Entschlüsselungsmaterial und den Klartext-Datenschlüssel, um die verschlüsselte Nachricht zu entschlüsseln. Weitere Informationen finden Sie unter So AWS Encryption SDK entschlüsselt der eine verschlüsselte Nachricht.
Voraussetzungen
Bevor Sie einen hierarchischen Schlüsselbund erstellen und verwenden, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind.
-
Sie oder Ihr Schlüsselspeicheradministrator haben einen Schlüsselspeicher und mindestens einen aktiven Filialschlüssel erstellt.
-
Sie haben Ihre Key-Store-Aktionen konfiguriert.
Anmerkung
Wie Sie Ihre Schlüsselspeicheraktionen konfigurieren, bestimmt, welche Operationen Sie ausführen können und welche KMS-Schlüssel der hierarchische Schlüsselbund verwenden kann. Weitere Informationen finden Sie unter Schlüsselspeicher-Aktionen.
-
Sie verfügen über die erforderlichen AWS KMS Berechtigungen, um auf den Schlüsselspeicher und die Filialschlüssel zuzugreifen und diese zu verwenden. Weitere Informationen finden Sie unter Erforderliche Berechtigungen.
-
Sie haben die unterstützten Cachetypen überprüft und den Cachetyp konfiguriert, der Ihren Anforderungen am besten entspricht. Weitere Informationen finden Sie unter Wählen Sie einen Cache.
Erforderliche Berechtigungen
Das erfordert AWS Encryption SDK keinen AWS-Konto und es hängt von keinem ab AWS-Service. Um einen hierarchischen Schlüsselbund verwenden zu können, benötigen Sie jedoch eine AWS-Konto und die folgenden Mindestberechtigungen für die symmetrische (n) Verschlüsselung AWS KMS key(en) in Ihrem Schlüsselspeicher.
-
Um Daten mit dem hierarchischen Schlüsselbund zu verschlüsseln und zu entschlüsseln, benötigen Sie kms:Decrypt. https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html
-
Um Zweigschlüssel zu erstellen und zu rotieren, benötigen Sie kms: und kms:. GenerateDataKeyWithoutPlaintext ReEncrypt
Erforderliche Amazon DynamoDB-Berechtigungen für die Schlüsselspeichertabelle
Die Principals, die mit Ihrem Schlüsselspeicher interagieren, benötigen ebenfalls Berechtigungen für die DynamoDB-Tabelle. Der Satz von Berechtigungen hängt von der Rolle ab.
- Benutzer des Schlüsselspeichers
-
Ein Schlüsselspeicher-Benutzer ist der Prinzipal, der den hierarchischen Schlüsselbund zum Verschlüsseln und Entschlüsseln von Daten verwendet. Ein Schlüsselspeicher-Benutzer benötigt dynamodb: GetItem in der Schlüsselspeichertabelle.
- Administrator des Schlüsselspeichers
-
Ein Schlüsselspeicheradministrator ist der Prinzipal, der Zweigschlüssel erstellt und rotiert. Ein Schlüsselspeicheradministrator benötigt die folgenden Berechtigungen für die Schlüsselspeichertabelle:
-
Zum Lesen: dynamodb: GetItem und dynamodb:. ConditionCheckItem
-
Für transaktionale Schreibvorgänge: dynamodb: und dynamodb:. ConditionCheckItem PutItem Der hierarchische Schlüsselbundspeicher führt Schreibvorgänge durch. Sie können die TransactWriteItems Schreibberechtigungen für diesen Vorgang mit einer Bedingung einschränken.
dynamodb:EnclosingOperation
-
Weitere Informationen zur Steuerung des Zugriffs auf Ihre Filialschlüssel und Ihren Schlüsselspeicher finden Sie unter. Implementieren der geringsten Berechtigungen
Wählen Sie einen Cache
Der hierarchische Schlüsselbund reduziert die Anzahl der Aufrufe, AWS KMS indem das bei Ver- und Entschlüsselungsvorgängen verwendete Zweigschlüsselmaterial lokal zwischengespeichert wird. Bevor Sie Ihren hierarchischen Schlüsselbund erstellen, müssen Sie entscheiden, welche Art von Cache Sie verwenden möchten. Sie können den Standard-Cache verwenden oder den Cache an Ihre Bedürfnisse anpassen.
Der hierarchische Schlüsselbund unterstützt die folgenden Cachetypen:
Wichtig
Alle unterstützten Cachetypen sind für die Unterstützung von Multithread-Umgebungen konzipiert.
In Kombination mit dem unterstützt der AWS-Verschlüsselungs-SDK for Python hierarchische Schlüsselbund jedoch keine Multithread-Umgebungen. Weitere Informationen finden Sie in der README.rst
Standard-Cache
Für die meisten Benutzer erfüllt der Standard-Cache ihre Threading-Anforderungen. Der Standard-Cache ist so konzipiert, dass er Umgebungen mit hohem Multithreading-Anteil unterstützt. Wenn ein Eintrag für Branch Key Materials abläuft, verhindert der Standard-Cache den Aufruf mehrerer Threads, AWS KMS indem er einen Thread darüber informiert, dass der Eintrag für Branch Key Materials 10 Sekunden im Voraus abläuft. Dadurch wird sichergestellt, dass nur ein Thread eine Anfrage AWS KMS zur Aktualisierung des Caches sendet.
Der Default und die StormTracking Caches unterstützen dasselbe Threading-Modell, aber Sie müssen nur die Eingangskapazität angeben, um den Standard-Cache verwenden zu können. Für detailliertere Cache-Anpassungen verwenden Sie die. StormTracking zwischenspeichern
Sofern Sie nicht die Anzahl der Materialeinträge für Branch Key anpassen möchten, die im lokalen Cache gespeichert werden können, müssen Sie bei der Erstellung des hierarchischen Schlüsselbundes keinen Cachetyp angeben. Wenn Sie keinen Cachetyp angeben, verwendet der hierarchische Schlüsselbund den Standard-Cachetyp und legt die Eintragskapazität auf 1000 fest.
Um den Standard-Cache anzupassen, geben Sie die folgenden Werte an:
-
Eintragskapazität: begrenzt die Anzahl der Materialeinträge für Branch Key, die im lokalen Cache gespeichert werden können.
MultiThreaded Cache
Der MultiThreaded Cache kann sicher in Multithread-Umgebungen verwendet werden, bietet jedoch keine Funktionen zur Minimierung AWS KMS von Amazon DynamoDB-Aufrufen. Daher werden alle Threads gleichzeitig benachrichtigt, wenn ein Eintrag zu Branch Key Materials abläuft. Dies kann zu mehreren AWS KMS Aufrufen zur Aktualisierung des Caches führen.
Um den MultiThreaded Cache zu verwenden, geben Sie die folgenden Werte an:
-
Eintragskapazität: begrenzt die Anzahl der Einträge für Branch Key Materials, die im lokalen Cache gespeichert werden können.
-
Endgröße beim Löschen von Einträgen: Definiert die Anzahl der Einträge, die gelöscht werden sollen, wenn die Eingangskapazität erreicht ist.
StormTracking zwischenspeichern
Der StormTracking Cache ist so konzipiert, dass er Umgebungen mit hohem Multithreading-Anteil unterstützt. Wenn ein Eintrag für Branch Key Materials abläuft, verhindert der StormTracking Cache, dass mehrere Threads aufgerufen AWS KMS werden, indem er einen Thread im Voraus darüber informiert, dass der Branch Key Materials Eintrag abläuft. Dadurch wird sichergestellt, dass nur ein Thread eine Anfrage zur Aktualisierung des Caches AWS KMS an sendet. Weitere Informationen finden Sie unter Storm Tracking Cryptographic Materials Cache
Um den Cache zu verwenden, geben Sie die folgenden Werte an StormTracking :
-
Eintragskapazität: begrenzt die Anzahl der Einträge für Branch Key Materials, die im lokalen Cache gespeichert werden können.
Standardwert: 1000 Einträge
-
Schnittgröße des Eintrags: Definiert die Anzahl der Einträge für wichtige Materialien aus den Zweigen, die gleichzeitig beschnitten werden sollen.
Standardwert: 1 Eintrag
-
Übergangszeit: Definiert die Anzahl der Sekunden vor Ablauf, in denen versucht wird, die wichtigsten Materialien der Filiale zu aktualisieren.
Standardwert: 10 Sekunden
-
Übergangsintervall: Definiert die Anzahl der Sekunden zwischen Versuchen, die Materialien der Branch Keys zu aktualisieren.
Standardwert: 1 Sekunde
-
Fan-Out: Definiert die Anzahl der gleichzeitigen Versuche, die wichtigsten Materialien der Branche zu aktualisieren.
Standardwert: 20 Versuche
-
In Flight Time to Live (TTL): Definiert die Anzahl der Sekunden, bis beim Versuch, die Materialien der Branch Key zu aktualisieren, das Zeitlimit überschritten wird. Jedes Mal, wenn der Cache als Antwort auf a zurückkehrt
NoSuchEntryGetCacheEntry, gilt dieser Abzweigschlüssel als in Betrieb, bis derselbe Schlüssel zusammen mit einemPutCacheEintrag geschrieben wird.Standardwert: 10 Sekunden
-
Schlaf: Definiert die Anzahl der Millisekunden, die ein Thread in den Ruhezustand versetzen soll, wenn der
fanOutWert überschritten wird.Standardwert: 20 Millisekunden
Gemeinsam genutzter Cache
Standardmäßig erstellt der hierarchische Schlüsselbund jedes Mal, wenn Sie den Schlüsselbund instanziieren, einen neuen lokalen Cache. Der gemeinsame Cache kann jedoch dazu beitragen, Speicherplatz zu sparen, indem er es Ihnen ermöglicht, einen Cache über mehrere hierarchische Schlüsselringe hinweg gemeinsam zu nutzen. Anstatt für jeden hierarchischen Schlüsselbund, den Sie instanziieren, einen neuen Cache für kryptografische Materialien zu erstellen, speichert der gemeinsame Cache nur einen Cache im Speicher, der von allen hierarchischen Schlüsselbunden verwendet werden kann, die auf ihn verweisen. Der gemeinsame Cache trägt zur Optimierung der Speichernutzung bei, indem verhindert wird, dass kryptografisches Material über mehrere Schlüsselringe hinweg dupliziert wird. Stattdessen können die hierarchischen Schlüsselringe auf denselben zugrundeliegenden Cache zugreifen, wodurch der gesamte Speicherbedarf reduziert wird.
Wenn Sie Ihren gemeinsamen Cache erstellen, definieren Sie trotzdem den Cachetyp. Sie können einen Standard-Cache oder StormTracking zwischenspeichern als Cachetyp angeben oder einen beliebigen kompatiblen benutzerdefinierten Cache ersetzen. MultiThreaded Cache
Partitionen
Ein gemeinsamer Cache kann von mehreren hierarchischen Schlüsselbänden verwendet werden. Wenn Sie einen hierarchischen Schlüsselbund mit einem gemeinsamen Cache erstellen, können Sie eine optionale Partitions-ID definieren. Die Partitions-ID unterscheidet, welcher hierarchische Schlüsselbund in den Cache schreibt. Wenn zwei hierarchische Schlüsselringe auf dieselbe Partitions-ID und Zweigschlüssel-ID verweisenlogical key store name, teilen sich die beiden Schlüsselringe dieselben Cache-Einträge im Cache. Wenn Sie zwei hierarchische Schlüsselringe mit demselben gemeinsamen Cache, aber unterschiedlichen Partitions-IDs erstellen, greift jeder Schlüsselbund nur auf die Cache-Einträge von seiner eigenen angegebenen Partition innerhalb des gemeinsamen Caches zu. Die Partitionen fungieren als logische Unterteilungen innerhalb des gemeinsamen Caches, sodass jeder hierarchische Schlüsselbund unabhängig auf seiner eigenen zugewiesenen Partition arbeiten kann, ohne die in der anderen Partition gespeicherten Daten zu beeinträchtigen.
Wenn Sie beabsichtigen, die Cache-Einträge in einer Partition wiederzuverwenden oder gemeinsam zu nutzen, müssen Sie Ihre eigene Partitions-ID definieren. Wenn Sie die Partitions-ID an Ihren hierarchischen Schlüsselbund übergeben, kann der Schlüsselbund die Cache-Einträge, die bereits im gemeinsamen Cache vorhanden sind, wiederverwenden, sodass Sie das Zweigschlüsselmaterial nicht erneut abrufen und autorisieren müssen. Wenn Sie keine Partitions-ID angeben, wird dem Schlüsselbund jedes Mal, wenn Sie den hierarchischen Schlüsselbund instanziieren, automatisch eine eindeutige Partitions-ID zugewiesen.
Die folgenden Verfahren veranschaulichen, wie Sie einen gemeinsamen Cache mit dem Standard-Cachetyp erstellen und ihn an einen hierarchischen Schlüsselbund übergeben.
-
Erstellen Sie mithilfe der Material Providers Library
CryptographicMaterialsCache(MPL) einen(CMC). -
Erstellen Sie ein
CacheTypeObjekt für den gemeinsamen Cache.Übergeben
sharedCryptographicMaterialsCacheSie das in Schritt 1 erstellte Objekt an das neueCacheTypeObjekt. -
Übergeben Sie das
sharedCacheObjekt aus Schritt 2 an Ihren hierarchischen Schlüsselbund.Wenn Sie einen hierarchischen Schlüsselbund mit einem gemeinsamen Cache erstellen, können Sie optional einen definieren, um Cache-Einträge über mehrere hierarchische Schlüsselringe hinweg gemeinsam
partitionIDzu nutzen. Wenn Sie keine Partitions-ID angeben, weist der hierarchische Schlüsselbund dem Schlüsselbund automatisch eine eindeutige Partitions-ID zu.Anmerkung
Ihre hierarchischen Schlüsselringe verwenden dieselben Cache-Einträge in einem gemeinsamen Cache, wenn Sie zwei oder mehr Schlüsselringe erstellen, die auf dieselbe Partitions-ID und Branch-Schlüssel-ID verweisen. logical key store name Wenn Sie nicht möchten, dass sich mehrere Schlüsselringe dieselben Cacheeinträge teilen, müssen Sie für jeden hierarchischen Schlüsselbund eine eindeutige Partitions-ID verwenden.
Im folgenden Beispiel wird ein hierarchischer Schlüsselbund mit einembranch key ID supplier, und einem Cache-Limit von 600 Sekunden erstellt. Weitere Informationen zu den Werten, die in der folgenden hierarchischen Schlüsselbundkonfiguration definiert sind, finden Sie unter. Erstellen Sie einen hierarchischen Schlüsselbund
Erstellen Sie einen hierarchischen Schlüsselbund
Um einen hierarchischen Schlüsselbund zu erstellen, müssen Sie die folgenden Werte angeben:
-
Ein Name des Schlüsselspeichers
Der Name der DynamoDB-Tabelle, die Sie oder Ihr Schlüsselspeicheradministrator erstellt haben, um als Ihr Schlüsselspeicher zu dienen.
-
Eine Cache-Limit Time to Live (TTL)
Die Zeitspanne in Sekunden, für die ein Eintrag für Branch-Key-Materials im lokalen Cache verwendet werden kann, bevor er abläuft. Das Cache-Limit TTL bestimmt, wie oft der Client anruft, AWS KMS um die Verwendung der Branch-Schlüssel zu autorisieren. Dieser Wert muss größer als null sein. Wenn das Cache-Limit TTL abgelaufen ist, wird der Eintrag nie mehr bedient und wird aus dem lokalen Cache entfernt.
-
Eine Zweigschlüssel-ID
Sie können entweder den statisch konfigurieren
branch-key-id, der einen einzelnen aktiven Filialschlüssel in Ihrem Schlüsselspeicher identifiziert, oder einen Anbieter für die Filialschlüssel-ID angeben.Der Anbieter der Filialschlüssel-ID verwendet die im Verschlüsselungskontext gespeicherten Felder, um zu ermitteln, welcher Filialschlüssel zum Entschlüsseln eines Datensatzes erforderlich ist.
Wir empfehlen dringend, für Datenbanken mit mehreren Mandanten, bei denen jeder Mandant seinen eigenen Zweigschlüssel hat, einen Anbieter für Filialschlüssel-ID zu verwenden. Sie können den Anbieter der Filialschlüssel-ID verwenden, um einen benutzerfreundlichen Namen für Ihre Filialschlüssel-IDs zu erstellen, damit Sie die richtige Filialschlüssel-ID für einen bestimmten Mandanten leicht erkennen können. So können Sie beispielsweise mithilfe des Anzeigenamens auf einen Filialschlüssel
tenant1statt aufb3f61619-4d35-48ad-a275-050f87e15122.Für Entschlüsselungsvorgänge können Sie entweder einen einzelnen hierarchischen Schlüsselbund statisch konfigurieren, um die Entschlüsselung auf einen einzelnen Mandanten zu beschränken, oder Sie können den Anbieter der Zweigschlüssel-ID verwenden, um zu ermitteln, welcher Mandant für die Entschlüsselung eines Datensatzes verantwortlich ist.
-
(Optional) Ein Cache
Wenn Sie Ihren Cachetyp oder die Anzahl der Einträge für Branch Key Materials, die im lokalen Cache gespeichert werden können, anpassen möchten, geben Sie den Cachetyp und die Eintragskapazität an, wenn Sie den Schlüsselbund initialisieren.
Der hierarchische Schlüsselbund unterstützt die folgenden Cachetypen: Standard, MultiThreaded, StormTracking und Shared. Weitere Informationen und Beispiele zur Definition der einzelnen Cachetypen finden Sie unter. Wählen Sie einen Cache
Wenn Sie keinen Cache angeben, verwendet der hierarchische Schlüsselbund automatisch den Standard-Cachetyp und legt die Eintragskapazität auf 1000 fest.
-
(Optional) Eine Partitions-ID
Wenn Sie die angebenGemeinsam genutzter Cache, können Sie optional eine Partitions-ID definieren. Die Partitions-ID unterscheidet, welcher hierarchische Schlüsselbund in den Cache schreibt. Wenn Sie beabsichtigen, die Cache-Einträge in einer Partition wiederzuverwenden oder gemeinsam zu nutzen, müssen Sie Ihre eigene Partitions-ID definieren. Sie können eine beliebige Zeichenfolge für die Partitions-ID angeben. Wenn Sie keine Partitions-ID angeben, wird dem Schlüsselbund bei der Erstellung automatisch eine eindeutige Partitions-ID zugewiesen.
Weitere Informationen finden Sie unter Partitions.
Anmerkung
Ihre hierarchischen Schlüsselringe verwenden dieselben Cache-Einträge in einem gemeinsamen Cache, wenn Sie zwei oder mehr Schlüsselringe erstellen, die auf dieselbe Partitions-ID und Branch-Schlüssel-ID verweisen. logical key store name Wenn Sie nicht möchten, dass sich mehrere Schlüsselringe dieselben Cacheeinträge teilen, müssen Sie für jeden hierarchischen Schlüsselbund eine eindeutige Partitions-ID verwenden.
-
(Optional) Eine Liste von Grant-Tokens
Wenn Sie den Zugriff auf den KMS-Schlüssel in Ihrem hierarchischen Schlüsselbund mit Zuweisungen kontrollieren, müssen Sie bei der Initialisierung des Schlüsselbundes alle erforderlichen Grant-Token angeben.
Die folgenden Beispiele zeigen, wie Sie einen hierarchischen Schlüsselbund mit einer statischen Zweigschlüssel-ID, demStandard-Cache, und einem Cache-Limit (TTL) von 600 Sekunden erstellen.
Die folgenden Verfahren veranschaulichen, wie Sie einen hierarchischen Schlüsselbund mit einem Lieferanten für die Filialschlüssel-ID erstellen.
-
Einen Filialschlüssel-ID-Lieferanten erstellen
Das folgende Beispiel definiert einen Anbieter für die Zweigschlüssel-ID, der den Verschlüsselungskontext beim Verschlüsseln oder Entschlüsseln verwendet, um die Zweigschlüssel-ID für jeden Mandanten auszuwählen. Eine funktionierende Implementierung in jeder Sprache finden Sie unter:
-
C# /.NET: ExampleBranchKeySupplier.cs
-
Python: branch_key_id_supplier_example.py https://github.com/aws/aws-encryption-sdk-python/tree/master/examples/src/branch_key_id_supplier_example.py
-
Gehe zu: branchkeysupplier.go
-
Erstellen Sie einen hierarchischen Schlüsselbund
Die folgenden Beispiele initialisieren einen hierarchischen Schlüsselbund mit dem in Schritt 1 erstellten Anbieter für die Zweigschlüssel-ID, einem TLL für den Cache von 600 Sekunden und einer maximalen Cachegröße von 1000.