Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Nutzungshinweise zur Verschlüsselung ruhender Daten in DynamoDB

Fokusmodus
Nutzungshinweise zur Verschlüsselung ruhender Daten in DynamoDB - Amazon-DynamoDB

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.

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.

Beachten Sie Folgendes, wenn Sie die Verschlüsselung ruhender Daten in Amazon DynamoDB verwenden.

Alle Tabellendaten werden verschlüsselt

Die serverseitige Verschlüsselung ruhender Daten ist für alle DynamoDB-Tabellendaten aktiviert und kann nicht deaktiviert werden. Sie können nicht nur eine Teilmenge von Elementen in einer Tabelle verschlüsseln.

Die Verschlüsselung ruhender Daten verschlüsselt Daten nur, während sie auf persistenten Speichermedien statisch (ruhende Daten) sind. Wenn die Datensicherheit für in Übertragung befindliche oder genutzte Daten wichtig ist, müssen Sie ggf. zusätzliche Maßnahmen ergreifen:

  • Daten während der Übertragung: Alle Ihre Daten in DynamoDB werden während der Übertragung verschlüsselt. Standardmäßig verwenden Mitteilungen an und von DynamoDB das HTTPS-Protokoll, das den Netzwerkverkehr mittels Secure-Sockets-Layer-(SSL)-/Transport-Layer-Security-(TLS)-Verschlüsselung schützt.

  • Genutzte Daten: Schützen Sie Daten durch Client-seitige Verschlüsselung, bevor sie an DynamoDB gesendet werden. Weitere Informationen finden Sie unter Client- und serverseitige Verschlüsselung im Entwicklerhandbuch für Amazon DynamoDB Encryption Client.

Sie können Streams mit verschlüsselten Tabellen verwenden. DynamoDB-Streams werden immer mit einem Verschlüsselungsschlüssel auf Tabellenebene verschlüsselt. Weitere Informationen finden Sie unter Ändern Sie die Datenerfassung für DynamoDB Streams.

DynamoDB-Backups werden verschlüsselt. Für die Tabelle, die aus einem Backup wiederhergestellt wird, ist die Verschlüsselung ebenfalls aktiviert. Sie können den AWS-eigener Schlüssel Von AWS verwalteter Schlüssel, oder vom Kunden verwalteten Schlüssel verwenden, um Ihre Backup-Daten zu verschlüsseln. Weitere Informationen finden Sie unter Backup und Wiederherstellung für DynamoDB.

Lokale Sekundärindizes und globale Sekundärindizes werden mit dem gleichen Schlüssel wie die Basistabelle verschlüsselt.

Verschlüsselungstypen

Anmerkung

Vom Kunden verwaltete Schlüssel werden in der globalen Tabelle Version 2017 nicht unterstützt. Wenn Sie einen vom Kunden verwalteten Schlüssel in einer globalen DynamoDB-Tabelle verwenden möchten, müssen Sie die Tabelle auf Version 2019 aktualisieren und dann aktivieren.

Bei der handelt es sich um den Verschlüsselungstyp AWS Management Console, KMS wenn Sie den Von AWS verwalteter Schlüssel oder den vom Kunden verwalteten Schlüssel zum Verschlüsseln Ihrer Daten verwenden. Der Verschlüsselungstyp lautet DEFAULT, wenn Sie den AWS-eigener Schlüssel verwenden. In der Amazon DynamoDB DynamoDB-API ist der Verschlüsselungstyp der Fall, KMS wenn Sie den Von AWS verwalteter Schlüssel oder den vom Kunden verwalteten Schlüssel verwenden. Wenn kein Verschlüsselungstyp angegeben wird, werden Ihre Daten mit dem AWS-eigener Schlüssel verschlüsselt. Sie können jederzeit zwischen dem AWS-eigener Schlüssel Von AWS verwalteter Schlüssel, und dem vom Kunden verwalteten Schlüssel wechseln. Sie können die Konsole, die AWS Command Line Interface (AWS CLI) oder die Amazon DynamoDB DynamoDB-API verwenden, um die Verschlüsselungsschlüssel zu wechseln.

Beachten Sie die folgenden Einschränkungen bei Verwendung kundenverwalteter Schlüssel:

  • Sie können einen kundenverwalteten Schlüssel nicht mit den DynamoDB-Accelerator (DAX)-Clustern verwenden. Weitere Informationen finden Sie unter DAXVerschlüsselung im Ruhezustand.

  • Sie können einen kundenverwalteten Schlüssel nutzen, um Tabellen zu verschlüsseln, die Transaktionen verwenden. Um jedoch die Dauerhaftigkeit für die Weitergabe von Transaktionen zu gewährleisten, wird eine Kopie der Transaktionsanforderung vom Dienst vorübergehend gespeichert und mit einem AWS-eigener Schlüssel verschlüsselt. Festgeschriebene Daten in Ihren Tabellen und sekundären Indizes werden im Ruhezustand immer mit Ihrem kundenverwalteten Schlüssel verschlüsselt.

  • Sie können einen kundenverwalteten Schlüssel nutzen, um Tabellen zu verschlüsseln, die Contributor Insights verwenden. Daten, an die übertragen werden, sind jedoch mit einem Amazon CloudWatch verschlüsselt. AWS-eigener Schlüssel

  • Achten Sie beim Umstieg auf einen neuen, vom Kunden verwalteten Schlüssel darauf, dass der ursprüngliche Schlüssel aktiviert bleibt, bis der Vorgang abgeschlossen ist. AWS Sie benötigen weiterhin den Originalschlüssel, um die Daten zu entschlüsseln, bevor Sie sie mit dem neuen Schlüssel verschlüsseln. Der Vorgang ist abgeschlossen, wenn der SSEDescription Status der Tabelle AKTIVIERT ist und der KMSMaster KeyArn des neuen vom Kunden verwalteten Schlüssels angezeigt wird. Zu diesem Zeitpunkt kann der ursprüngliche Schlüssel deaktiviert oder zum Löschen eingeplant werden.

  • Sobald der neue kundenverwaltete Schlüssel angezeigt wird, werden die Tabelle und alle neuen On-Demand-Backups mit dem neuen Schlüssel verschlüsselt.

  • Alle vorhandenen On-Demand-Backups bleiben mit dem kundenverwalteten Schlüssel verschlüsselt, der beim Erstellen dieser Backups verwendet wurde. Sie benötigen denselben Schlüssel, um diese Backups wiederherzustellen. Sie können den Schlüssel für den Zeitraum identifizieren, in dem jedes Backup erstellt wurde, indem Sie die DescribeBackup API verwenden, um die Backups einzusehen SSEDescription.

  • Wenn Sie den kundenverwalteten Schlüssel deaktivieren oder zum Löschen vorsehen, gilt für alle Daten in DynamoDB Streams weiterhin eine 24-stündige Lebensdauer. Nicht abgerufene Daten, die älter als 24 Stunden sind, können jederzeit entfernt werden.

  • Wenn Sie den kundenverwalteten Schlüssel deaktivieren oder zum Löschen planen, werden Time-to-Live (TTL)-Löschungen für 30 Minuten fortgesetzt. Diese TTL-Löschungen werden weiterhin an DynamoDB Streams ausgegeben und unterliegen dem standardmäßigen Trimm-/Aufbewahrungsintervall.

    Weitere Informationen finden Sie unter Aktivieren von Schlüsseln und Löschen von Schlüsseln.

Verwenden von KMS-Schlüsseln und Datenschlüsseln

Die DynamoDB-Funktion zur Verschlüsselung im Ruhezustand verwendet eine AWS KMS key und eine Hierarchie von Datenschlüsseln, um Ihre Tabellendaten zu schützen. DynamoDB verwendet die gleiche Schlüsselhierarchie zum Schutz von DynamoDB-Streams, globalen Tabellen und Backups, wenn sie auf beständige Medien geschrieben werden.

Wir empfehlen Ihnen, Ihre Verschlüsselungsstrategie zu planen, bevor Sie Ihre Tabelle in DynamoDB implementieren. Wenn Sie sensible oder vertrauliche Daten in DynamoDB speichern, sollten Sie erwägen, eine clientseitige Verschlüsselung in Ihren Plan aufzunehmen. Auf diese Weise können Sie Daten so nah wie möglich an ihrem Ursprung verschlüsseln und den Schutz der Daten während ihres gesamten Lebenszyklus gewährleisten. Weitere Informationen finden Sie in der Dokumentation zum DynamoDB-Verschlüsselungsclient.

AWS KMS key

Die Verschlüsselung im Ruhezustand schützt Ihre DynamoDB-Tabellen mit einem AWS KMS key. Standardmäßig verwendet DynamoDB einen AWS-eigener Schlüssel, einen Mehrmandanten-Verschlüsselungsschlüssel, der in einem DynamoDB-Servicekonto erstellt und verwaltet wird. Sie können Ihre DynamoDB-Tabellen jedoch mit einem vom Kunden verwalteten Schlüssel für DynamoDB (aws/dynamodb) in Ihrem AWS-Konto verschlüsseln. Sie können für jede Tabelle einen anderen KMS-Schlüssel auswählen. Der KMS-Schlüssel, den Sie für eine Tabelle auswählen, wird auch zur Verschlüsselung der lokalen und globalen sekundären Indizes, Streams und Backups verwendet.

Sie wählen den KMS-Schlüssel für eine Tabelle aus, wenn Sie die Tabelle erstellen oder aktualisieren. Sie können den KMS-Schlüssel für eine Tabelle jederzeit ändern, entweder in der DynamoDB-Konsole oder mithilfe des UpdateTableVorgangs. Der Vorgang des Schlüsselwechsels ist nahtlos und erfolgt ohne Ausfallzeiten oder Beeinträchtigung des Service.

Wichtig

DynamoDB unterstützt nur symmetrische KMS-Schlüssel. Sie können keinen asymmetrischen KMS-Schlüssel verwenden, um Ihre DynamoDB-Tabellen zu verschlüsseln.

Verwenden Sie einen kundenverwalteten KMS-Schlüssel, um die folgenden Funktionen zu erhalten:

Verwenden Sie die, Von AWS verwalteter Schlüssel wenn Sie eine der folgenden Funktionen benötigen:

Sie ist jedoch kostenlos und ihre Nutzung AWS-eigener Schlüssel wird nicht auf Ressourcen- oder Anforderungskontingente angerechnet AWS KMS . Vom Kunden verwaltete Schlüssel, für die für jeden API-Aufruf eine Von AWS verwaltete Schlüssel Gebühr anfällt. Für diese KMS-Schlüssel gelten AWS KMS Kontingente.

Tabellenschlüssel

DynamoDB verwendet den KMS-Schlüssel, der als Tabellenschlüssel bezeichnet wird, zum Generieren und Verschlüsseln eines eindeutigen Datenschlüssels für die Tabelle. Der Tabellenschlüssel bleibt für die Lebensdauer der verschlüsselten Tabelle bestehen.

Der Tabellenschlüssel wird als Schlüssel-Verschlüsselungsschlüssel verwendet. DynamoDB verwendet diesen Tabellenschlüssel zum Schutz von Daten-Verschlüsselungsschlüsseln, die zum Verschlüsseln der Tabellendaten verwendet werden. DynamoDB generiert einen eindeutigen Datenverschlüsselungsschlüssel für jede zugrunde liegende Struktur in einer Tabelle, mehrere Tabellenelemente können jedoch vom gleichen Datenverschlüsselungsschlüssel geschützt werden.

Verschlüsseln einer DynamoDB-Tabelle per Verschlüsselung im Ruhezustand

Wenn Sie zum ersten Mal auf eine verschlüsselte Tabelle zugreifen, sendet DynamoDB eine Anfrage an, den KMS-Schlüssel AWS KMS zum Entschlüsseln des Tabellenschlüssels zu verwenden. Anschließend wird der Klartext-Tabellenschlüssel zum Entschlüsseln der Datenverschlüsselungsschlüssel verwendet und die Klartext-Datenverschlüsselungsschlüssel werden zum Entschlüsseln der Tabellendaten verwendet.

DynamoDB speichert und verwendet den Tabellenschlüssel und die Datenverschlüsselungsschlüssel außerhalb von. AWS KMS Alle Schlüssel werden mit Advanced Encryption Standard (AES)-Verschlüsselung und 256-Bit-Verschlüsselungsschlüsseln geschützt. Anschließend werden die verschlüsselten Schlüssel zusammen mit den verschlüsselten Daten gespeichert, damit sie bei Bedarf für die Entschlüsselung der Tabellendaten verfügbar sind.

Wenn Sie den KMS-Schlüssel für Ihre Tabelle ändern, generiert DynamoDB einen neuen Tabellenschlüssel. Anschließend wird der neue Tabellenschlüssel verwendet, um die Datenverschlüsselungsschlüssel neu zu verschlüsseln.

Tabellenschlüssel-Caching

Um zu vermeiden, dass AWS KMS jede DynamoDB-Operation aufgerufen wird, speichert DynamoDB die Klartext-Tabellenschlüssel für jeden Aufrufer im Speicher zwischen. Wenn DynamoDB nach fünf Minuten Inaktivität eine Anfrage für den zwischengespeicherten Tabellenschlüssel erhält, sendet es eine neue Anfrage an, um den Tabellenschlüssel AWS KMS zu entschlüsseln. Dieser Aufruf erfasst alle Änderungen, die seit der letzten Anforderung zur Entschlüsselung des Tabellenschlüssels an den Zugriffsrichtlinien des KMS-Schlüssels in AWS KMS oder AWS Identity and Access Management (IAM) vorgenommen wurden.

Autorisieren der Nutzung Ihres KMS-Schlüssels

Wenn Sie einen kundenverwalteten Schlüssel oder den Von AWS verwalteter Schlüssel-verwalteten Schlüssel in Ihrem Konto zum Schutz Ihrer DynamoDB-Tabelle verwenden, müssen die Richtlinien für diesen KMS-Schlüssel DynamoDB zu seiner Verwendung in Ihrem Namen berechtigen. Der Autorisierungskontext auf dem Von AWS verwalteter Schlüssel für DynamoDB umfasst seine wichtigsten Richtlinien und Berechtigungen, mit denen die Berechtigungen zu seiner Verwendung delegiert werden.

Sie haben die volle Kontrolle über die Richtlinien und Erteilungen für einen kundenverwalteten Schlüssel. Nachdem der Von AWS verwalteter Schlüssel in Ihrem Konto ist, können Sie die seine Richtlinien und Erteilungen anzeigen. Da er jedoch von verwaltet wird AWS, können Sie die Richtlinien nicht ändern.

DynamoDB benötigt keine zusätzliche Autorisierung, um den Standard zum Schutz der DynamoDB-Tabellen in Ihrem AWS-eigener Schlüsselzu verwenden. AWS-Konto

Wichtige Richtlinie für ein Von AWS verwalteter Schlüssel

Wenn DynamoDB den Von AWS verwalteter Schlüssel für DynamoDB (aws/dynamodb) in kryptografischen Operationen verwendet, geschieht dies im Auftrag des Benutzers, der auf die DynamoDB-Ressource zugreift. Die wichtigste Richtlinie für Von AWS verwalteter Schlüssel gibt allen Benutzern des Kontos die Erlaubnis, das Von AWS verwalteter Schlüssel für bestimmte Operationen zu verwenden. Die Berechtigung wird aber nur gewährt, wenn DynamoDB die Anforderung für den Benutzer ausgibt. Die ViaService Bedingung in der Schlüsselrichtlinie erlaubt es keinem Benutzer, die zu verwenden, Von AWS verwalteter Schlüssel es sei denn, die Anforderung stammt vom DynamoDB-Dienst.

Diese wichtige Richtlinie wurde, wie alle Richtlinien Von AWS verwaltete Schlüssel, von festgelegt. AWS Sie können sie nicht ändern, aber jederzeit anzeigen. Details dazu finden Sie unter Anzeigen einer Schlüsselrichtlinie.

Die Richtlinienanweisungen in der Schlüsselrichtlinie haben folgende Wirkungen:

  • Erlauben Sie Benutzern im Konto, Von AWS verwalteter Schlüssel for DynamoDB in kryptografischen Vorgängen zu verwenden, wenn die Anforderung von DynamoDB in ihrem Namen kommt. Die Richtlinie erlaubt Benutzern auch das Erstellen von Erteilungen für den KMS-Schlüssel.

  • Ermöglicht es autorisierten IAM-Identitäten im Konto, die Eigenschaften des Von AWS verwalteter Schlüssel für DynamoDB anzuzeigen und die Erteilung zu widerrufen, die DynamoDB die Verwendung des KMS-Schlüssels erlaubt. DynamoDB verwendet Erteilungen für laufende Wartungsoperationen.

  • Ermöglicht DynamoDB, schreibgeschützte Operationen durchzuführen, um die Von AWS verwalteter Schlüssel für DynamoDB in Ihrem Konto zu finden.

{ "Version" : "2012-10-17", "Id" : "auto-dynamodb-1", "Statement" : [ { "Sid" : "Allow access through Amazon DynamoDB for all principals in the account that are authorized to use Amazon DynamoDB", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource" : "*", "Condition" : { "StringEquals" : { "kms:CallerAccount" : "111122223333", "kms:ViaService" : "dynamodb.us-west-2.amazonaws.com" } } }, { "Sid" : "Allow direct access to key metadata to the account", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource" : "*" }, { "Sid" : "Allow DynamoDB Service with service principal name dynamodb.amazonaws.com to describe the key directly", "Effect" : "Allow", "Principal" : { "Service" : "dynamodb.amazonaws.com" }, "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*" ], "Resource" : "*" } ] }

Schlüsselrichtlinie für einen kundenverwalteten Schlüssel

Wenn Sie einen kundenverwalteten KMS-Schlüssel zum Schutz einer DynamoDB-Tabelle auswählen, erhält DynamoDB die Berechtigung, den KMS-Schlüssel im Namen des Prinzipals zu verwenden, der die Auswahl trifft. Dieser Prinzipal, ein Benutzer oder eine Rolle, muss über die Berechtigungen für den KMS-Schlüssel verfügen, die DynamoDB benötigt. Sie können diese Berechtigungen in einer Schlüsselrichtlinie, einer IAM-Richtlinie oder einer Erteilung bereitstellen.

DynamoDB erfordert mindestens die folgenden Berechtigungen für einen kundenverwalteten Schlüssel:

Beispielsweise bietet die folgende Beispiel-Schlüsselrichtlinie nur die erforderlichen Berechtigungen. Die Richtlinie hat folgende Auswirkungen:

  • Erlaubt DynamoDB die Verwendung des KMS-Schlüssels in kryptografischen Operationen und das Erstellen von Erteilungen, jedoch nur, wenn es im Auftrag von Prinzipalen im Konto handelt, die über die Berechtigung zur Verwendung von DynamoDB verfügen. Wenn die in der Richtlinienanweisung angegebenen Prinzipale nicht zur Verwendung von DynamoDB berechtigt sind, schlägt der Aufruf selbst dann fehl, wenn er vom DynamoDB-Service stammt.

  • Der ViaService Bedingungsschlüssel kms: erlaubt die Berechtigungen nur, wenn die Anforderung von DynamoDB im Namen der in der Richtlinienerklärung aufgeführten Prinzipale kommt. Diese Prinzipale können diese Operationen nicht direkt aufrufen. Beachten Sie, dass der kms:ViaService-Wert, dynamodb.*.amazonaws.com, in der Region-Position ein Sternchen (*) hat. DynamoDB benötigt die Berechtigung, unabhängig von einem bestimmten Objekt zu sein, AWS-Region damit es regionsübergreifende Aufrufe zur Unterstützung globaler DynamoDB-Tabellen durchführen kann.

  • Gewährt den KMS-Schlüsseladministratoren (Benutzer, die die db-team-Rolle annehmen können) schreibgeschützten Zugriff auf den KMS-Schlüssel und die Berechtigung, Erteilungen zu widerrufen, einschließlich der Erteilungen, die DynamoDB zum Schutz der Tabelle benötigt.

Bevor Sie eine Beispielschlüsselrichtlinie verwenden, ersetzen Sie die Beispielprinzipale durch tatsächliche Prinzipale aus Ihrer. AWS-Konto

{ "Id": "key-policy-dynamodb", "Version":"2012-10-17", "Statement": [ { "Sid" : "Allow access through Amazon DynamoDB for all principals in the account that are authorized to use Amazon DynamoDB", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/db-lead"}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService" : "dynamodb.*.amazonaws.com" } } }, { "Sid": "Allow administrators to view the KMS key and revoke grants", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/db-team" }, "Action": [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource": "*" } ] }

Verwenden von Erteilungen zum Autorisieren von DynamoDB

Zusätzlich zu den Schlüsselrichtlinien verwendet DynamoDB Erteilungen, um Berechtigungen für einen kundenverwalteten KMS-Schlüssel oder den Von AWS verwalteter Schlüssel -verwalteten Schlüssel für DynamoDB festzulegen (aws/dynamodb). Verwenden Sie den Vorgang, um die Zuweisungen für einen KMS-Schlüssel in Ihrem Konto anzuzeigen. ListGrants DynamoDB benötigt keine Erteilungen oder zusätzliche Berechtigungen, um die AWS-eigener Schlüssel zum Schutz Ihrer Tabellen zu verwenden.

DynamoDB verwendet die Berechtigungen aus der Erteilung zur Ausführung von Hintergrundsystemwartung und kontinuierlichen Datenschutzaufgaben. Außerdem werden Erteilungen verwenden, um Tabellenschlüssel zu generieren.

Jede Erteilung ist tabellenspezifisch. Wenn in Ihrem Konto mehrere Tabellen mit demselben KMS-Schlüssel verschlüsselt sind, ist eine Erteilung für jede Art von Tabelle vorhanden. Die Gewährung wird durch den DynamoDB-Verschlüsselungskontext eingeschränkt, der den Tabellennamen und die AWS-Konto ID umfasst, und sie beinhaltet die Berechtigung, die Grant zurückzuziehen, wenn sie nicht mehr benötigt wird.

Zum Erstellen von Erteilungen muss DynamoDB zum Aufrufen von CreateGrant im Auftrag des Benutzers berechtigt sein, der die verschlüsselte Tabelle erstellt hat. Denn Von AWS verwaltete Schlüssel DynamoDB erhält die kms:CreateGrant Erlaubnis von der Schlüsselrichtlinie, die es Kontonutzern erlaubt, den KMS-Schlüssel nur dann CreateGrantaufzurufen, wenn DynamoDB die Anfrage im Namen eines autorisierten Benutzers stellt.

Die Schlüsselrichtlinie kann es dem Konto auch erlauben, die Erteilung für den KMS-Schlüssel zu widerrufen. Wenn Sie jedoch die Erteilung für eine aktive verschlüsselte Tabelle widerrufen, kann DynamoDB die Tabelle nicht mehr schützen und pflegen.

DynamoDB-Verschlüsselungsclient

Ein Verschlüsselungskontext ist eine Gruppe von Schlüssel/Wert-Paaren mit willkürlichen, nicht geheimen Daten. Wenn Sie einen Verschlüsselungskontext in eine Datenverschlüsselungsanforderung aufnehmen, wird der Verschlüsselungskontext AWS KMS kryptografisch an die verschlüsselten Daten gebunden. Zur Entschlüsselung der Daten müssen Sie denselben Verschlüsselungskontext übergeben.

DynamoDB verwendet bei allen AWS KMS kryptografischen Vorgängen denselben Verschlüsselungskontext. Wenn Sie einen kundenverwalteten Schlüssel oder einen Von AWS verwalteter Schlüssel-verwalteten Schlüssel zum Schutz Ihrer DynamoDB-Tabelle verwenden, können Sie anhand des Verschlüsselungskontexts die Verwendung des KMS-Schlüssels in Prüfungs-Datensätzen und -Protokollen identifizieren. Es erscheint auch im Klartext in Protokollen wie AWS CloudTrailAmazon CloudWatch Logs.

Der Verschlüsselungskontext kann auch als Bedingung für die Autorisierung in Richtlinien und Erteilungen verwendet werden. DynamoDB verwendet den Verschlüsselungskontext, um die Berechtigungen einzuschränken, die den Zugriff auf den vom Kunden verwalteten Schlüssel oder Von AWS verwalteter Schlüssel in Ihrem Konto und Ihrer Region ermöglichen.

In seinen Anfragen an AWS KMS verwendet DynamoDB einen Verschlüsselungskontext mit zwei Schlüssel-Wert-Paaren.

"encryptionContextSubset": { "aws:dynamodb:tableName": "Books" "aws:dynamodb:subscriberId": "111122223333" }
  • Tabelle: Das erste Schlüssel-Wert-Paar gibt die Tabelle an, die DynamoDB verschlüsselt. Der Schlüssel lautet aws:dynamodb:tableName. Der Wert ist der Name der Tabelle.

    "aws:dynamodb:tableName": "<table-name>"

    Zum Beispiel:

    "aws:dynamodb:tableName": "Books"
  • Konto – Das zweite Schlüssel-Wert-Paar identifiziert das AWS-Konto. Der Schlüssel lautet aws:dynamodb:subscriberId. Der Wert ist die Konto-ID.

    "aws:dynamodb:subscriberId": "<account-id>"

    Zum Beispiel:

    "aws:dynamodb:subscriberId": "111122223333"

Überwachen der DynamoDB-Interaktion mit AWS KMS

Wenn Sie einen vom Kunden verwalteten Schlüssel oder einen Von AWS verwalteter Schlüsselzum Schutz Ihrer DynamoDB-Tabellen verwenden, können Sie mithilfe von AWS CloudTrail Protokollen die Anfragen verfolgen, an die DynamoDB in Ihrem Namen sendet. AWS KMS

Die Anforderungen GenerateDataKey, Decrypt und CreateGrant werden in diesem Abschnitt beschrieben. Darüber hinaus ermittelt DynamoDB mithilfe eines DescribeKeyVorgangs, ob der von Ihnen ausgewählte KMS-Schlüssel im Konto und in der Region vorhanden ist. Außerdem wird ein RetireGrantVorgang verwendet, um einen Zuschuss zu entfernen, wenn Sie eine Tabelle löschen.

GenerateDataKey

Wenn Sie die Verschlüsselung im Ruhezustand für eine Tabelle aktivieren, erstellt DynamoDB einen eindeutigen Tabellenschlüssel. Es sendet eine GenerateDataKeyAnfrage an AWS KMS , die den KMS-Schlüssel für die Tabelle angibt.

Das Ereignis, das die GenerateDataKey-Operation aufzeichnet, ähnelt dem folgenden Beispielereignis. Der Benutzer ist das DynamoDB-Servicekonto. Die Parameter enthalten den Amazon-Ressourcennamen (ARN) des KMS-Schlüssels, einen Schlüsselbezeichner, der einen 256-Bit-Schlüssel benötigt, und den Verschlüsselungskontext, der die Tabelle und das AWS-Konto identifiziert.

{ "eventVersion": "1.05", "userIdentity": { "type": "AWSService", "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T00:15:17Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:dynamodb:tableName": "Services", "aws:dynamodb:subscriberId": "111122223333" }, "keySpec": "AES_256", "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, "responseElements": null, "requestID": "229386c1-111c-11e8-9e21-c11ed5a52190", "eventID": "e3c436e9-ebca-494e-9457-8123a1f5e979", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333", "sharedEventID": "bf915fa6-6ceb-4659-8912-e36b69846aad" }
Decrypt

Wenn Sie auf eine verschlüsselte DynamoDB-Tabelle zugreifen, muss DynamoDB den Tabellenschlüssel entschlüsseln, damit die in der Hierarchie tiefer angeordneten Schlüssel entschlüsselt werden können. Anschließend werden die Daten in der Tabelle entschlüsselt. Entschlüsseln des Tabellenschlüssels DynamoDB sendet eine Decrypt-Anfrage an AWS KMS , die den KMS-Schlüssel für die Tabelle spezifiziert.

Das Ereignis, das die Decrypt-Operation aufzeichnet, ähnelt dem folgenden Beispielereignis. Der Benutzer ist Ihr Hauptbenutzer, der auf AWS-Konto die Tabelle zugreift. Zu den Parametern gehören der verschlüsselte Tabellenschlüssel (als Chiffretext-Blob) und der Verschlüsselungskontext, der die Tabelle und den identifiziert. AWS-Konto AWS KMS leitet die ID des KMS-Schlüssels aus dem Chiffretext ab.

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:user01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-02-14T16:42:15Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAIGDT3HGFQZX4RY6RU", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" } }, "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T16:42:39Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:dynamodb:tableName": "Books", "aws:dynamodb:subscriberId": "111122223333" } }, "responseElements": null, "requestID": "11cab293-11a6-11e8-8386-13160d3e5db5", "eventID": "b7d16574-e887-4b5b-a064-bf92f8ec9ad3", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }
CreateGrant

Wenn Sie einen kundenverwalteten Schlüssel oder einen Von AWS verwalteter Schlüssel zum Schutz Ihrer DynamoDB-Tabelle verwenden, verwendet DynamoDB Erteilungen, um dem Service die Ausführung von Aufgaben für kontinuierlichen Datenschutz, Wartung und Haltbarkeit zu erlauben. Diese Erteilungen sind für AWS-eigener Schlüssel nicht erforderlich.

Die von DynamoDB erstellten Erteilungen sind tabellenspezifisch. Der Principal in der CreateGrantAnfrage ist der Benutzer, der die Tabelle erstellt hat.

Das Ereignis, das die CreateGrant-Operation aufzeichnet, ähnelt dem folgenden Beispielereignis. Die Parameter enthalten den Amazon-Ressourcennamen (ARN) des KMS-Schlüssels für die Tabelle, den Empfänger-Prinzipal und den ausscheidenden Prinzipal (der DynamoDB-Service) sowie die Operationen, für die die Erteilung gilt. Enthalten ist auch eine Beschränkung, die für alle Verschlüsselungsoperationen den angegebenen Verschlüsselungskontext voraussetzt.

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:user01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-02-14T00:12:02Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" } }, "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T00:15:15Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "retiringPrincipal": "dynamodb.us-west-2.amazonaws.com", "constraints": { "encryptionContextSubset": { "aws:dynamodb:tableName": "Books", "aws:dynamodb:subscriberId": "111122223333" } }, "granteePrincipal": "dynamodb.us-west-2.amazonaws.com", "operations": [ "DescribeKey", "GenerateDataKey", "Decrypt", "Encrypt", "ReEncryptFrom", "ReEncryptTo", "RetireGrant" ] }, "responseElements": { "grantId": "5c5cd4a3d68e65e77795f5ccc2516dff057308172b0cd107c85b5215c6e48bde" }, "requestID": "2192b82a-111c-11e8-a528-f398979205d8", "eventID": "a03d65c3-9fee-4111-9816-8bf96b73df01", "readOnly": false, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }
DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.