AWS KMS-Konzepte - AWS Key Management Service

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-Konzepte

Machen Sie sich mit den grundlegenden Begriffen und Konzepten in AWS Key Management Service (AWS KMS) vertraut und erfahren Sie, wie sie ineinandergreifen, um Ihre Daten besser zu schützen.

AWS KMS keys

AWS KMS keys (KMS-Schlüssel) sind die wichtigsten Ressourcen in AWS KMS. Sie können einen KMS-Schlüssel zum Verschlüsseln, Entschlüsseln und erneuten Verschlüsseln von Daten verwenden. Es kann auch Datenschlüssel generieren, die Sie außerhalb von AWS KMS nutzen können. Normalerweise werden Sie symmetrische KMS-Schlüssel zur Verschlüsselung verwenden, aber Sie können auch asymmetrische KMS-Schlüssel zur Verschlüsselung oder Signierung erstellen und verwenden sowie HMAC-KMS-Schlüssel zur Erzeugung und Überprüfung von HMAC-Tags erstellen und verwenden.

Anmerkung

AWS KMS ersetzt den Begriff Kundenhauptschlüssel (CMK) durch AWS KMS key und KMS-Schlüssel. Das Konzept hat sich nicht geändert. Um abwärtsinkompatible Änderungen zu vermeiden, werden von AWS KMS einige Varianten dieses Begriffs beibehalten.

Ein AWS KMS key ist eine logische Darstellung eines kryptografischen Schlüssels. Ein KMS-Schlüssel enthält Metadaten wie die Schlüssel-ID, die Schlüsselspezifikation, die Schlüsselverwendung, das Erstellungsdatum, die Beschreibung und den Schlüsselstatus. Vor allem aber enthält er einen Verweis auf das Schlüsselmaterial, das verwendet wird, wenn Sie kryptografische Vorgänge mit dem KMS-Schlüssel durchführen.

Sie können einen KMS-Schlüssel mit kryptografischem Schlüsselmaterial erstellen, das in FIPS-validierten Hardware-Sicherheitsmodulen von AWS KMS generiert wurde. Das Schlüsselmaterial für symmetrische KMS-Schlüssel und die privaten Schlüssel für asymmetrische KMS-Schlüssel verlassen AWS KMS nie unverschlüsselt. Um Ihre KMS-Schlüssel zu verwenden oder zu verwalten, müssen Sie AWS KMS verwenden. Weitere Informationen zum Erstellen und Verwalten von KMS-Schlüsseln finden Sie unter Schlüssel verwalten. Weitere Informationen zur Verwendung von KMS-Schlüssel finden Sie in der AWS Key Management Service-API-Referenz.

Standardmäßig erstellt AWS KMS das Schlüsselmaterial für einen KMS-Schlüssel. Sie können dieses Schlüsselmaterial nicht extrahieren, exportieren, anzeigen oder verwalten. Die einzige Ausnahme ist der öffentliche Schlüssel eines asymmetrischen Schlüsselpaars, den Sie für die Verwendung außerhalb von AWSexportieren können. Außerdem können Sie dieses Schlüsselmaterial nicht löschen. Sie müssen den KMS-Schlüssel löschen. Sie können jedoch Ihr eigenes Schlüsselmaterial in einen KMS-Schlüssel importieren oder einen benutzerdefinierten Schlüsselspeicher verwenden, um KMS-Schlüssel zu erstellen, die Schlüsselmaterial in Ihrem AWS CloudHSM-Cluster oder Schlüsselmaterial in einem externen Schlüsselmanager verwenden, den Sie außerhalb von AWS besitzen und verwalten.

AWS KMS unterstützt außerdem multiregionale Schlüssel, mit denen Sie Daten in einer AWS-Region verschlüsseln und in einer anderen AWS-Region entschlüsseln können.

Weitere Informationen zum Erstellen und Verwalten von KMS-Schlüsseln finden Sie unter Erste Schritte. Weitere Informationen zur Verwendung von KMS-Schlüssel finden Sie in der AWS Key Management Service-API-Referenz.

Kundenschlüssel und AWS-Schlüssel

Die von Ihnen erstellten KMS-Schlüssel sind kundenverwaltete Schlüssel. AWS-Services, die KMS-Schlüssel zur Entschlüsselung Ihrer Service-Ressourcen verwenden, erstellen oft Schlüssel für Sie. KMS-Schlüssel, die von AWS-Services in Ihrem AWS-Konto erstellt werden, sind Von AWS verwaltete Schlüssel. KMS-Schlüssel, die von AWS-Services in einem Servicekonto erstellt werden, sind AWS-eigene Schlüssel.

Typ des KMS-Schlüssels Kann KMS-Schlüsselmetadaten anzeigen Kann KMS-Schlüssel verwalten Wird nur für mein AWS-Konto verwendet Automatisches Rotieren Preise
Kundenverwalteter Schlüssel Ja Ja Ja Optional. Jedes Jahr (ungefähr 365 Tage)

Monatliche Gebühr (anteilig stündlich)

Gebühr pro Nutzung

Von AWS verwalteter Schlüssel Ja Nein Ja Erforderlich Jedes Jahr (ungefähr 365 Tage)

Keine monatliche Gebühr

Gebühr pro Nutzung (einige AWS-Services übernehmen diese Gebühr für Sie)

AWS-eigener Schlüssel Nein Nein Nein Variiert Keine Gebühren

Bei den mit AWS KMS integrierten AWS-Services gibt es Unterschiede hinsichtlich ihrer Unterstützung für KMS-Schlüssel. Einige AWS-Services verschlüsseln Ihre Daten standardmäßig mit einem AWS-eigener Schlüssel oder Von AWS verwalteter Schlüssel. Einige AWS-Services unterstützen kundenverwaltete Schlüssel. Andere AWS-Services unterstützen alle Arten von KMS-Schlüsseln, damit Sie die Benutzerfreundlichkeit eines AWS-eigener Schlüssel, die Sichtbarkeit eines Von AWS verwalteter Schlüssel oder die Kontrolle eines kundenverwalteten Schlüssels nutzen können. Ausführliche Informationen zu den Verschlüsselungsoptionen, die ein AWS-Service anbietet, finden Sie im Benutzerhandbuch oder im Entwicklerhandbuch für den Service unter dem Thema Verschlüsselung im Ruhezustand.

Kundenverwaltete Schlüssel

Die von Ihnen erstellten KMS-Schlüssel sind kundenverwaltete Schlüssel. Kundenverwaltete Schlüssel sind KMS-Schlüssel in Ihrem AWS-Konto, die Sie erstellen, besitzen und verwalten. Sie haben die volle Kontrolle über diese KMS-Schlüssel. Dies gilt auch für die Festlegung und Verwaltung ihrer Schlüsselrichtlinien, IAM-Richtlinien und Erteilungen, ihre Aktivierung und Deaktivierung, die Drehung ihrer Verschlüsselungsinformationen, das Hinzufügen von Tags, das Erstellen von Aliassen, die sich auf die KMS-Schlüssel beziehen, und das Einplanen der KMS-Schlüssel zum Löschen.

Kundenverwaltete Schlüssel werden auf der Seite Customer managed keys (Kundenverwaltete Schlüssel) der AWS Management Console für AWS KMS angezeigt. Um einen vom Kunden verwalteten Schlüssel endgültig zu identifizieren, verwenden Sie die -DescribeKeyOperation. Für kundenverwaltete Schlüssel ist der Wert des KeyManager-Felds der DescribeKey-Antwort CUSTOMER.

Sie können Ihren kundenverwalteten Schlüssel in kryptografischen Operationen verwenden und ihre Verwendung in AWS CloudTrail-Protokollen prüfen. Darüber hinaus bieten Ihnen viele mit AWS KMS integrierte AWS-Services die Möglichkeit, einen kundenverwalteten Schlüssel zum Schutz der Daten anzugeben, die für Sie gespeichert und verwaltet werden.

Für kundenverwaltete Schlüssel fällt eine monatliche Gebühr sowie eine Gebühr für die über das kostenlose Kontingent hinausgehende Nutzung an. Sie werden auf die AWS KMS-Kontingente für Ihr Konto angerechnet. Weitere Informationen finden Sie unter AWS Key Management Service – Preise und Kontingente.

Von AWS verwaltete Schlüssel

Von AWS verwaltete Schlüssel sind KMS-Schlüssel in Ihrem Konto, die in Ihrem Namen von einem AWS-Service, der in AWS KMS integriert ist, erstellt, verwaltet und verwendet werden.

Bei einigen AWS-Services können Sie einen Von AWS verwalteter Schlüssel oder einen kundenverwalteten Schlüssel auswählen, um Ihre Ressourcen in diesem Service zu schützen. Im Allgemeinen ist, sofern Sie nicht verpflichtet sind, den Verschlüsselungsschlüssel zu kontrollieren, der Ihre Ressourcen schützt, Von AWS verwalteter Schlüssel eine gute Wahl. Sie müssen den Schlüssel oder seine Schlüsselrichtlinie nicht erstellen oder verwalten, und für einen Von AWS verwalteter Schlüssel gibt es keine monatliche Gebühr.

Sie haben die Berechtigung, die Von AWS verwaltete Schlüssel in Ihrem Konto anzuzeigen, ihre Schlüsselrichtlinien abzurufen und ihre Verwendung in AWS CloudTrail-Protokollen zu prüfen. Sie können aber keine Eigenschaften von Von AWS verwaltete Schlüssel ändern, sie rotieren, ihre Schlüsselrichtlinien ändern oder ihre Löschung planen. Auch können Sie Von AWS verwaltete Schlüssel nicht direkt in kryptografischen Operationen verwenden. Der Service, der sie erstellt, verwendet sie in Ihrem Namen.

Von AWS verwaltete Schlüssel erscheinen auf der Von AWS verwaltete Schlüssel-Seite der AWS Management Console für AWS KMS. Die meisten Von AWS verwaltete Schlüssel können auch anhand ihrer Aliasnamen im Format aws/service-name, wie z. B. aws/redshift, identifiziert werden. Verwenden Sie die -DescribeKeyOperationVon AWS verwaltete Schlüssel, um einen endgültig zu identifizieren. Für Von AWS verwaltete Schlüssel ist der Wert des KeyManager-Felds der DescribeKey-Antwort AWS.

Alle Von AWS verwaltete Schlüssel werden automatisch alle drei Jahre rotiert. Dieser Rotationsplan kann nicht geändert werden.

Anmerkung

Im Mai 2022 hat AWS KMS den Rotationszeitplan für Von AWS verwaltete Schlüssel von alle drei Jahre (ungefähr 1 095 Tage) auf jedes Jahr (ungefähr 365 Tage) geändert.

Neue Von AWS verwaltete Schlüssel werden automatisch ein Jahr nach ihrer Erstellung und etwa jedes Jahr danach rotiert.

Vorhandene Von AWS verwaltete Schlüssel werden automatisch ein Jahr nach ihrer letzten Rotation und danach jedes Jahr rotiert.

Es gibt keine monatliche Gebühr für Von AWS verwaltete Schlüssel. Für die Nutzung, die über den kostenlosen Bereich hinausgeht, können Gebühren anfallen, aber einige AWS-Services übernehmen diese Kosten für Sie. Weitere Informationen finden Sie im Benutzerhandbuch oder Entwicklerhandbuch für den Service unter dem Thema Verschlüsselung im Ruhezustand. Für Einzelheiten vgl. AWS Key Management Service-Preise.

Von AWS verwaltete Schlüssel werden nicht auf Ressourcenkontingente für die Anzahl der KMS-Schlüssel in jeder Region Ihres Kontos angerechnet. Wenn die KMS-Schlüssel jedoch im Namen eines Prinzipals in Ihrem Konto verwendet werden, werden sie auf die Anforderungskontingente angerechnet. Details hierzu finden Sie unter Kontingente.

AWS-eigene Schlüssel

AWS-eigene Schlüssel sind eine Sammlung von KMS-Schlüssel, die ein AWS-Service besitzt und für die Verwendung in mehreren AWS-Konten verwaltet. Obwohl AWS-eigene Schlüssel nicht in Ihrem AWS-Konto enthalten sind, kann ein AWS-Service einen AWS-eigener Schlüssel verwenden, um die Ressourcen in Ihrem Konto zu schützen.

Bei einigen AWS-Services können Sie einen AWS-eigener Schlüssel oder einen kundenverwalteten Schlüssel auswählen. Im Allgemeinen ist, sofern Sie den Verschlüsselungsschlüssel, der Ihre Ressourcen schützt, überwachen oder kontrollieren müssen, ein AWS-eigener Schlüssel eine gute Wahl. AWS-eigene Schlüssel sind vollkommen kostenlos (keine monatlichen Gebühren oder Nutzungsgebühren), sie werden nicht auf die AWS KMS-Kontingente Ihres Kontos angerechnet und sie sind benutzerfreundlich. Sie müssen den Schlüssel oder seine Schlüsselrichtlinie nicht erstellen oder pflegen.

Die Rotation der AWS-eigene Schlüssel unterscheidet sich je nach Service. Informationen zur Rotation eines bestimmten AWS-eigener Schlüssel finden Sie im Benutzerhandbuch oder Entwicklerhandbuch für den Service unter dem Thema Verschlüsselung im Ruhezustand.

KMS-Schlüssel zur symmetrischen Verschlüsselung

Wenn Sie einen AWS KMS key erstellen, erhalten Sie standardmäßig einen KMS-Schlüssel mit symmetrischer Verschlüsselung. Dies ist der grundlegende und am häufigsten verwendete KMS-Schlüsseltyp.

In AWS KMS stellt ein KMS-Schlüssel mit symmetrischer Verschlüsselung einen 256-Bit-AES-GCM-Verschlüsselungsschlüssel dar, außer in den China-Regionen, in denen er einen 128-Bit-SM4-Verschlüsselungsschlüssel darstellt. Symmetrisches Schlüsselmaterial lässt zu keiner Zeit AWS KMS unverschlüsselt. Zur Verwendung eines KMS-Schlüssels mit symmetrischer Verschlüsselung müssen Sie AWS KMS aufrufen. Symmetrische Verschlüsselungsschlüssel werden bei der symmetrischen Verschlüsselung verwendet, wobei der gleiche Schlüssel für die Verschlüsselung und Entschlüsselung verwendet wird. Sofern Ihre Aufgabe nicht explizit asymmetrische Verschlüsselung erfordert, sind KMS-Schlüssel mit symmetrischer Verschlüsselung, die AWS KMS niemals unverschlüsselt lassen, eine gute Wahl.

AWS-Services, die mit AWS KMS integriert sind, verwenden zum Verschlüsseln Ihrer Daten nur KMS-Schlüssel mit symmetrischer Verschlüsselung. Diese Services unterstützen keine Verschlüsselung mit asymmetrischen KMS-Schlüsseln. Informationen zur Feststellung, ob ein KMS-Schlüssel symmetrisch oder asymmetrisch ist, finden Sie unter Erkennen asymmetrischer KMS-Schlüssel.

Technisch gesehen ist die Schlüsselspezifikation für einen symmetrischen Schlüssel SYMMETRIC_DEFAULT, die Schlüsselverwendung ENCRYPT_DECRYPT und der Verschlüsselungsalgorithmus SYMMETRIC_DEFAULT. Details hierzu finden Sie unter Schlüsselspezifikation SYMMMETRIC_DEFAULT.

Sie können einen KMS-Schlüssel mit symmetrischer Verschlüsselung in AWS KMS verwenden, um Daten zu verschlüsseln, zu entschlüsseln und neu zu verschlüsseln sowie Datenschlüssel und Datenschlüsselpaare zu generieren. Sie können multiregionale KMS-Schlüssel mit symmetrischer Verschlüsselung erstellen, ihr eigenes Schlüsselmaterial in einen KMS-Schlüssel mit symmetrischer Verschlüsselung importieren und KMS-Schlüssel mit symmetrischer Verschlüsselung in benutzerdefinierten Schlüsselspeichern erstellen. Eine Tabelle mit den Operationen, die Sie auf unterschiedlichen KMS-Schlüsseltypen durchführen können, finden Sie unter Schlüsseltypreferenz.

Asymmetrische KMS-Schlüssel

Sie können asymmetrische KMS-Schlüssel in AWS KMS erstellen. Ein asymmetrischer KMS-Schlüssel repräsentiert einen mathematisch verwandtes Schlüsselpaar mit einem öffentlichen und einem privaten Schlüssel. Der private Schlüssel verlässt AWS KMS niemals unverschlüsselt. Um den privaten Schlüssel zu verwenden, müssen Sie AWS KMS aufrufen. Sie können den öffentlichen Schlüssel innerhalb von AWS KMS verwenden, indem Sie die AWS KMS-API-Operationen aufrufen, oder den öffentlichen Schlüssel herunterladen und ihn außerhalb von AWS KMS verwenden. Sie können auch multiregionale asymmetrische KMS-Schlüssel erstellen.

Sie können asymmetrische KMS-Schlüssel erstellen, die RSA-Schlüsselpaare oder SM2-Schlüsselpaare (nur China-Regionen) für die Verschlüsselung mit öffentlichem Schlüssel oder für die Signatur und Verifizierung darstellen, oder Elliptic-Curve-Schlüsselpaare für die Signatur und Verifizierung.

Weitere Informationen zum Erstellen und Verwenden von asymmetrischen KMS-Schlüsseln finden Sie unter Asymmetrische Schlüssel in AWS KMS.

HMAC-KMS-Schlüssel

Ein HMAC-KMS-Schlüssel stellt einen symmetrischen Schlüssel unterschiedlicher Länge dar, der zum Generieren und Überprüfen von Hash-basierten Nachrichtenauthentifizierungscodes (HMAC) verwendet wird. Dieses Schlüsselmaterial lässt AWS KMS zu keiner Zeit unverschlüsselt. Um einen HMAC-Schlüssel zu verwenden, rufen Sie die GenerateMac- oder VerifyMac-API-Operationen auf.

Sie können auch multiregionale HMAC-KMS-Schlüssel erstellen.

Weitere Informationen zum Erstellen und Verwenden von HMAC-KMS-Schlüsseln finden Sie unter HMAC-Schlüssel in AWS KMS.

Datenschlüssel

Datenschlüssel sind symmetrische Schlüssel, mit denen Sie Daten verschlüsseln können. Dazu gehören große Datenmengen und andere Datenverschlüsselungsschlüssel. Im Gegensatz zu symmetrischen KMS-Schlüsseln, die nicht heruntergeladen werden können, werden Datenschlüssel für die Verwendung außerhalb von AWS KMS zurückgegeben.

Wenn AWS KMS Datenschlüssel generiert, gibt es einen Klartextdatenschlüssel für die sofortige Verwendung zurück (optional) und eine verschlüsselte Kopie des Datenschlüssels, den Sie sicher mit den Daten speichern können. Wenn Sie bereit sind, die Daten zu entschlüsseln, fragen Sie zuerst AWS KMS, den verschlüsselten Datenschlüssel zu entschlüsseln.

AWS KMS generiert, verschlüsselt und entschlüsselt Datenschlüssel. AWS KMS speichert, verwaltet und verfolgt aber keine Datenschlüssel und führt auch keine kryptografischen Operationen mit Datenschlüsseln durch. Sie müssen Datenschlüssel außerhalb von AWS KMS verwenden und verwalten. Hilfe bei der sicheren Verwendung von Datenschlüsseln finden Sie unter AWS Encryption SDK.

Erstellen eines Datenschlüssels

Um einen Datenschlüssel zu erstellen, rufen Sie die -GenerateDataKeyOperation auf. AWS KMS generiert den Datenschlüssel. Anschließend wird eine Kopie des Datenschlüssels unter dem von Ihnen angegebenen KMS-Schlüssel mit symmetrischer Verschlüsselung verschlüsselt. Diese Operation gibt eine Klartextkopie des Datenschlüssels und die unter dem KMS-Schlüssel verschlüsselte Kopie des Datenschlüssels zurück. Die folgende Abbildung zeigt diese Operation.

Erzeugen eines Datenschlüssels

AWS KMS unterstützt auch die -GenerateDataKeyWithoutPlaintextOperation, die nur einen verschlüsselten Datenschlüssel zurückgibt. Wenn Sie den Datenschlüssel verwenden müssen, fordern Sie AWS KMS auf, ihn zu entschlüsseln.

Verschlüsseln von Daten mit einem Datenschlüssel

AWS KMS kann einen Datenschlüssel nicht zum Verschlüsseln von Daten verwenden. Sie können den Datenschlüssel jedoch außerhalb von AWS KMS verwenden, z. B. mit OpenSSL oder einer kryptografischen Bibliothek wie AWS Encryption SDK.

Entfernen Sie den Klartext-Datenschlüssel nach dem Verschlüsseln der Daten möglichst schnell aus dem Arbeitsspeicher. Sie können den verschlüsselten Datenschlüssel sicher zusammen mit den verschlüsselten Daten speichern, damit er zum Entschlüsseln der Daten verfügbar ist.

Verschlüsseln von Benutzerdaten außerhalb von AWS KMS

Entschlüsseln von Daten mit einem Datenschlüssel

Um Daten zu entschlüsseln, übergeben Sie den verschlüsselten Datenschlüssel an die Operation Decrypt. AWS KMS verwendet Ihren KMS-Schlüssel zum Entschlüsseln des Datenschlüssels und gibt dann den Klartext-Datenschlüssel zurück. Entschlüsseln Sie die Daten mit dem Klartext-Datenschlüssel und entfernen den Klartext-Datenschlüssel dann schnellstmöglich aus dem Arbeitsspeicher.

Das folgende Diagramm zeigt, wie Sie mit der Operation Decrypt einen verschlüsselten Datenschlüssel entschlüsseln.

Entschlüsseln eines Datenschlüssels

Auswirkung von unbrauchbaren KMS-Schlüsseln auf Datenschlüssel

Wenn ein KMS-Schlüssel unbrauchbar wird, wirkt sich das fast sofort aus (vorbehaltlich einer letztendlichen Konsistenz). Der Schlüsselstatus des KMS-Schlüssels ändert sich, um seinen neuen Zustand widerzuspiegeln, und alle Anforderungen der Verwendung des KMS-Schlüssels in kryptografischen Vorgängen schlagen fehl.

Die Auswirkungen auf die mit dem KMS-Schlüssel verschlüsselten Datenschlüssel und auf die mit dem Datenschlüssel verschlüsselten Daten werden jedoch so lange verzögert, bis der KMS-Schlüssel erneut verwendet wird, z. B. zur Entschlüsselung des Datenschlüssels.

KMS-Schlüssel können aus einer Vielzahl von Gründen unbrauchbar werden, einschließlich der folgenden Aktionen, die Sie möglicherweise durchführen:

Dieser Effekt ist besonders wichtig für die vielen AWS-Services, die Datenschlüssel verwenden, um die vom Service verwalteten Ressourcen zu schützen. Das folgende Beispiel verwendet Amazon Elastic Block Store (Amazon EBS) und Amazon Elastic Compute Cloud (Amazon EC2). Verschiedene AWS-Services verwenden Datenschlüssel auf unterschiedliche Weise. Einzelheiten finden Sie im Abschnitt „Datenschutz“ des Kapitels „Sicherheit“ für den AWS-Service.

Betrachten Sie beispielsweise folgendes Szenario:

  1. Sie erstellen ein verschlüsseltes EBS-Volume und geben einen KMS-Schlüssel an, um es zu schützen. Amazon EBS fordert AWS KMS auf, den KMS-Schlüssel zum Generieren eines verschlüsselten Datenschlüssels für das Volume zu verwenden. Amazon EBS speichert den verschlüsselten Datenschlüssel zusammen mit den Metadaten des Volumes.

  2. Wenn Sie das EBS-Volume an eine EC2-Instance anfügen, verwendet Amazon EC2 Ihren KMS-Schlüssel zur Entschlüsselung des verschlüsselten Datenschlüssels des EBS-Volumes. Amazon EC2 verwendet den Datenschlüssel in der Nitro-Hardware, die für die Verschlüsselung aller Festplatten-I/Os auf dem EBS-Volume verantwortlich ist. Der Datenschlüssel bleibt in der Nitro-Hardware erhalten, während das EBS-Volume mit der EC2-Instance verbunden ist.

  3. Sie führen eine Aktion aus, die den KMS-Schlüssel unbrauchbar macht. Dies hat keine unmittelbaren Auswirkungen auf die EC2-Instance oder das EBS-Volume. Amazon EC2 verwendet den Datenschlüssel, nicht den KMS-Schlüssel, um alle Festplatten-E/A zu verschlüsseln, während das Volume an die Instance angefügt ist.

  4. Wenn jedoch das verschlüsselte EBS-Volume von der EC2-Instance getrennt wird, entfernt Amazon EBS den Datenschlüssel von der Nitro-Hardware. Wird das verschlüsselte EBS-Volume dann wieder an eine EC2-Instance angefügt, schlägt dies fehl, weil Amazon EBS nicht den KMS-Schlüssel verwenden kann, um den verschlüsselten Datenschlüssel des Volumes zu entschlüsseln. Um das EBS-Volume wieder zu verwenden, müssen Sie den KMS-Schlüssel wieder brauchbar machen.

Datenschlüsselpaare

Datenschlüsselpaare sind asymmetrische Datenschlüssel, die aus einem mathematisch verwandten öffentlichen Schlüssel und privaten Schlüssel bestehen. Sie sind zur Verwendung für clientseitige Verschlüsselung und Entschlüsselung oder Signatur und Verifizierung außerhalb von AWS KMS bestimmt.

Im Gegensatz zu den Datenschlüsselpaaren, die Tools wie OpenSSL generieren, schützt AWS KMS den privaten Schlüssel in jedem Datenschlüsselpaar unter einem KMS-Schlüssel mit symmetrischer Verschlüsselung in AWS KMS, den Sie angeben. AWS KMS speichert, verwaltet und verfolgt aber keine Datenschlüsselpaare und führt auch keine kryptografischen Operationen mit Datenschlüsselpaaren durch. Sie müssen Datenschlüsselpaare außerhalb von verwenden und verwalten AWS KMS.

AWS KMS unterstützt die folgenden Typen von Datenschlüsselpaaren:

  • RSA-Schlüsselpaare: RSA_2048, RSA_3072 und RSA_4096

  • Elliptic-Curve-Schlüsselpaare, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521 und ECC_SECG_P256K1

  • SM-Schlüsselpaare (nur China-Regionen): SM2

Welchen Typ von Datenschlüsselpaar Sie auswählen, hängt normalerweise von Ihrem Anwendungsfall oder den gesetzlichen Anforderungen ab. Die meisten Zertifikate erfordern RSA-Schlüssel. Als digitale Signaturen werden häufig Elliptic Curve (EC)-Schlüssel verwendet. ECC_SECG_P256K1-Schlüssel werden häufig für Kryptowährungen verwendet. AWS KMS empfiehlt, dass Sie ECC-Schlüsselpaare für die Signatur verwenden und RSA-Schlüsselpaare entweder für Verschlüsselung oder Signatur verwenden, aber nicht für beide. AWS KMS kann jedoch keine Beschränkungen für die Verwendung von Datenschlüsselpaaren außerhalb von AWS KMS erzwingen.

Erstellen eines Datenschlüsselpaars

Um ein Datenschlüsselpaar zu erstellen, rufen Sie die GenerateDataKeyPairWithoutPlaintext Operationen GenerateDataKeyPair oder auf. Geben Sie den KMS-Schlüssel mit symmetrischer Verschlüsselung an, den Sie zum Verschlüsseln des privaten Schlüssels verwenden möchten.

GenerateDataKeyPair gibt einen öffentlichen Klartextschlüssel, einen privaten Klartextschlüssel und einen verschlüsselten privaten Schlüssel zurück. Verwenden Sie diese Operation, wenn Sie umgehend einen privaten Klartextschlüssel benötigen, z. B. um eine digitale Signatur zu generieren.

GenerateDataKeyPairWithoutPlaintext gibt einen öffentlichen Klartextschlüssel und einen verschlüsselten privaten Schlüssel zurück, aber keinen privaten Klartextschlüssel. Verwenden Sie diese Operation, wenn Sie nicht sofort einen privaten Klartextschlüssel benötigen, z. B. wenn Sie mit einem öffentlichen Schlüssel verschlüsseln. Später, wenn Sie einen privaten Klartextschlüssel benötigen, um die Daten zu entschlüsseln, können Sie die Operation Decrypt aufrufen.

Die folgende Abbildung zeigt Operation GenerateDataKeyPair. Die Operation GenerateDataKeyPairWithoutPlaintext lässt den privaten Klartextschlüssel aus.

Generieren eines Datenschlüsselpaars

Verschlüsseln von Daten mit einem Datenschlüsselpaar

Wenn Sie mit einem Datenschlüsselpaar verschlüsseln, verwenden Sie den öffentlichen Schlüssel des Paares, um die Daten zu verschlüsseln, und den privaten Schlüssel desselben Paares, um die Daten zu entschlüsseln. In der Regel werden Datenschlüsselpaare verwendet, wenn viele Parteien Daten verschlüsseln müssen, die nur die Partei im Besitz des privaten Schlüssels entschlüsseln darf.

Die Parteien mit dem öffentlichen Schlüssel verwenden diesen Schlüssel, um Daten zu verschlüsseln, wie im folgenden Diagramm dargestellt.

Verschlüsseln von Benutzerdaten mit dem öffentlichen Schlüssel eines Datenschlüsselpaars außerhalb von AWS KMS

Entschlüsseln von Daten mit einem Datenschlüsselpaar

Um Ihre Daten zu entschlüsseln, verwenden Sie den privaten Schlüssel im Datenschlüsselpaar. Damit der Vorgang erfolgreich ausgeführt wird, müssen die öffentlichen und privaten Schlüssel aus demselben Datenschlüsselpaar stammen, und Sie müssen denselben Verschlüsselungsalgorithmus verwenden.

Um den verschlüsselten privaten Schlüssel zu entschlüsseln, übergeben Sie ihn an den Entschlüsselungsvorgang . Verwenden Sie den privaten Schlüssel, um die Daten zu entschlüsseln. Entfernen Sie dann den privaten Klartextschlüssel so schnell wie möglich aus dem Speicher.

Das folgende Diagramm zeigt, wie Sie den privaten Schlüssel in einem Datenschlüsselpaar verwenden, um Chiffretext zu entschlüsseln.

Entschlüsseln Sie die Daten mit dem privaten Schlüssel in einem Datenschlüsselpaar außerhalb von AWS KMS.

Signieren von Nachrichten mit einem Datenschlüsselpaar

Um eine kryptografische Signatur für eine Nachricht zu generieren, verwenden Sie den privaten Schlüssel im Datenschlüsselpaar. Jeder im Besitz des öffentlichen Schlüssels kann mit ihm überprüfen, dass die Nachricht mit Ihrem privaten Schlüssel signiert wurde und dass sie sich seit der Signatur nicht geändert hat.

Wenn Ihr privater Schlüssel verschlüsselt ist, übergeben Sie den verschlüsselten privaten Schlüssel an die Operation Decrypt. AWS KMS verwendet Ihren KMS-Schlüssel, um den Datenschlüssel zu entschlüsseln und gibt dann den privaten Klartextschlüssel zurück. Verwenden Sie den privaten Klartextschlüssel, um die Signatur zu generieren. Entfernen Sie dann den privaten Klartextschlüssel so schnell wie möglich aus dem Speicher.

Um eine Nachricht zu signieren, erstellen Sie einen Message Digest mit einer kryptografischen Hash-Funktion, z. B. dem Befehl dgst in OpenSSL. Übergeben Sie dann Ihren privaten Klartextschlüssel an den Signaturalgorithmus. Das Ergebnis ist eine Signatur, die den Inhalt der Nachricht darstellt. (Möglicherweise können Sie kürzere Nachrichten signieren, ohne vorher einen Digest zu erstellen. Die maximale Nachrichtengröße variiert je nach verwendetem Signatur-Tool.)

Das folgende Diagramm zeigt, wie Sie den privaten Schlüssel in einem Datenschlüsselpaar verwenden, um eine Nachricht zu signieren.

Generieren Sie eine kryptografische Signatur mit dem privaten Schlüssel in einem Datenschlüsselpaar außerhalb von AWS KMS.

Überprüfen einer Signatur mit einem Datenschlüsselpaar

Jeder, der über den öffentlichen Schlüssel in Ihrem Datenschlüsselpaar verfügt, kann damit die Signatur überprüfen, die Sie mit Ihrem privaten Schlüssel generiert haben. Die Verifizierung bestätigt, dass ein autorisierter Benutzer die Nachricht mit dem angegebenen privaten Schlüssel und dem Signaturalgorithmus signiert hat und sich die Nachricht seit der Signatur nicht geändert hat.

Um erfolgreich zu sein, muss die Partei, die die Signatur überprüft, denselben Digest-Typ generieren, denselben Algorithmus verwenden und den öffentlichen Schlüssel verwenden, der dem privaten Schlüssel entspricht, der zum Signieren der Nachricht verwendet wird.

Das folgende Diagramm zeigt, wie der öffentliche Schlüssel in einem Datenschlüsselpaar verwendet wird, um eine Nachrichtensignatur zu überprüfen.

Überprüfen Sie eine kryptografische Signatur mit dem öffentlichen Schlüssel in einem Datenschlüsselpaar außerhalb von AWS KMS.

Aliasnamen

Verwenden eines Alias als Anzeigenamen für einen KMS-Schlüssel. Sie können beispielsweise auf einen KMS-Schlüssel als Test-Schlüsselverweisen, anstelle von 1234abcd-12ab-34cd-56ef-1234567890ab.

Aliasse erleichtern die Identifizierung eines KMS-Schlüssels in der AWS Management Console. Sie können einen Alias zum Identifizieren eines KMS-Schlüssels in einigen AWS KMS-Operationen verwenden, einschließlich kryptografische Operationen. In Anwendungen können Sie einen einzelnen Alias verwenden, um auf verschiedene KMS-Schlüssel in jedem AWS-Region zu verweisen.

Sie können den Zugriff auf KMS-Schlüssel auch auf Grundlage ihrer Aliasse zulassen und verweigern, ohne Richtlinien zu bearbeiten oder Berechtigungen zu verwalten. Diese Funktion ist Teil der AWS KMS-Unterstützung für Attribute-Based Access Control (ABAC, attributbasierte Zugriffssteuerung). Details hierzu finden Sie unter ABAC für AWS KMS.

In AWS KMS sind Aliasse unabhängige Ressourcen, keine Eigenschaften eines KMS-Schlüssels. Daher können Sie einen Alias hinzufügen, ändern und löschen, ohne den zugeordneten KMS-Schlüssel zu beeinflussen.

Wichtig

Geben Sie keine vertraulichen oder sensiblen Informationen in einen Alias-Namen ein. Aliase können in CloudTrail Protokollen und anderen Ausgaben im Klartext vorkommen.

Weitere Informationen:

Benutzerdefinierte Schlüsselspeicher

Ein benutzerdefinierter Schlüsselspeicher ist eine AWS KMS-Ressource, die von einem Schlüsselmanager außerhalb von AWS KMS unterstützt wird, den Sie besitzen und verwalten. Wenn Sie einen KMS-Schlüssel in einem benutzerdefinierten Schlüsselspeicher für einen kryptografischen Vorgang verwenden, wird der kryptografische Vorgang tatsächlich in Ihrem Schlüsselmanager unter Verwendung seiner kryptografischen Schlüssel durchgeführt.

AWS KMS unterstützt AWS CloudHSM-Schlüsselspeicher, die durch einen AWS CloudHSM-Cluster unterstützt werden, und externe Schlüsselspeicher, die durch einen externen Schlüsselmanager außerhalb von AWS unterstützt werden.

Weitere Informationen finden Sie unter Benutzerdefinierte Schlüsselspeicher.

Kryptografische Operationen

In AWS KMS sind kryptografische Operationen API-Operationen, die KMS-Schlüssel zum Schutz von Daten verwenden. Da KMS-Schlüssel innerhalb von AWS KMS bleiben, müssen Sie AWS KMS aufrufen, um einen KMS-Schlüssel in einer kryptografischen Operation zu verwenden.

Um kryptografische Operationen mit KMS-Schlüssel durchzuführen, verwenden Sie die AWS-SDKs, AWS Command Line Interface (AWS CLI) oder die AWS Tools for PowerShell. Sie können keine kryptografischen Operationen in der AWS KMS-Konsole ausführen. Beispiele für das Aufrufen der kryptografischen Operationen in mehreren Programmiersprachen finden Sie unter Programmieren der AWS KMS-API.

In der folgenden Tabelle werden die kryptografischen Operationen von AWS KMS aufgeführt. Außerdem werden die Anforderungen an den Schlüsseltyp und die Schlüsselnutzung für KMS-Schlüssel angezeigt, die in der Operation verwendet werden.

Operation Schlüsseltyp Schlüsselnutzung
Decrypt Symmetrisch oder asymmetrisch ENCRYPT_DECRYPT
Encrypt Symmetrisch oder asymmetrisch ENCRYPT_DECRYPT
GenerateDataKey Symmetrisch ENCRYPT_DECRYPT
GenerateDataKeyPair Symmetrisch [1]

- nicht unterstützt bei KMS-Schlüsseln in benutzerdefinierten Schlüsselspeichern.

ENCRYPT_DECRYPT
GenerateDataKeyPairWithoutPlaintext Symmetrisch [1]

- nicht unterstützt bei KMS-Schlüsseln in benutzerdefinierten Schlüsselspeichern.

ENCRYPT_DECRYPT
GenerateDataKeyWithoutPlaintext Symmetrisch ENCRYPT_DECRYPT
GenerateMac HMAC GENERATE_VERIFY_MAC
GenerateRandom Bei dieser Operation wird kein KMS-Schlüssel verwendet. N/A
ReEncrypt Symmetrisch oder asymmetrisch ENCRYPT_DECRYPT
Sign Asymmetrisch SIGN_VERIFY
Verify Asymmetrisch SIGN_VERIFY
VerifyMac HMAC GENERATE_VERIFY_MAC

[1] Generiert ein asymmetrisches Datenschlüsselpaar, das durch einen symmetrischen KMS-Schlüssel geschützt ist.

Informationen zu den Berechtigungen für kryptografische Operationen finden Sie unter AWS KMS Berechtigungen.

Um AWS KMS reaktionsschnell und leistungsstark für alle Benutzer zu machen, legt AWS KMS Kontingente für die Anzahl der kryptografischen Operationen fest, die in jeder Sekunde aufgerufen werden können. Details hierzu finden Sie unter Gemeinsame Kontingente für kryptografische Operationen.

Schlüsselkennungen (KeyId)

Schlüsselbezeichner fungieren als Namen für Ihre KMS-Schlüssel. Sie helfen Ihnen, Ihre KMS-Schlüssel in der Konsole zu erkennen. Sie verwenden sie, um anzugeben, welche KMS-Schlüssel Sie in AWS KMS-API-Operationen, Schlüsselrichtlinien, IAM-Richtlinien und Erteilungen verwenden möchten. Die Schlüsselkennungswerte stehen in keinem Zusammenhang mit dem Schlüsselmaterial, das dem KMS-Schlüssel zugeordnet ist.

AWS KMS definiert mehrere Schlüsselbezeichner. Wenn Sie einen KMS-Schlüssel erstellen, generiert AWS KMS einen Schlüssel-ARN und eine Schlüssel-ID, die Eigenschaften des KMS-Schlüssels sind. Wenn Sie einen Alias erstellen, generiert AWS KMS einen Alias-ARN basierend auf dem von Ihnen definierten Aliasnamen. Sie können die Schlüssel- und Aliasbezeichner in der AWS Management Console und in der AWS KMS-API anzeigen.

In der AWS KMS-Konsole können Sie KMS-Schlüssel nach Schlüssel-ARN, Schlüssel-ID oder Aliasnamen anzeigen und filtern und nach Schlüssel-ID und Aliasnamen sortieren. Hilfestellung beim Suchen der Schlüsselbezeichner in der Konsole finden Sie unter Finden der Schlüssel-ID und des Schlüssel-ARN.

In der AWS KMS-API werden die Parameter, die Sie zum Identifizieren eines KMS-Schlüssels verwenden, als KeyId oder eine Variante, z. B. TargetKeyId oder DestinationKeyId, bezeichnet. Die Werte dieser Parameter sind jedoch nicht auf Schlüssel-IDs beschränkt. Für einige eignet sich jeder gültige Schlüsselbezeichner. Informationen zu den Werten für jeden Parameter finden Sie in der Parameterbeschreibung in der API-Referenz für AWS Key Management Service.

Anmerkung

Achten Sie bei der Verwendung der AWS KMS-API auf die von Ihnen verwendete Schlüsselkennung. Unterschiedliche APIs erfordern unterschiedliche Schlüsselbezeichner. Verwenden Sie im Allgemeinen die vollständigste Schlüsselbezeichnung, die für Ihre Aufgabe praktisch ist.

AWS KMS unterstützt die folgenden Schlüsselbezeichner.

Schüssel-ARN

Der Schlüssel-ARN ist der Amazon-Ressourcenname (ARN) eines KMS-Schlüssels. Er ist eine eindeutige, vollqualifizierte Kennung für den KMS-Schlüssel. Ein Schlüssel-ARN enthält das AWS-Konto, die Region und die Schlüssel-ID. Hilfestellung beim Suchen des Schlüssel-ARN eines KMS-Schlüssels finden Sie unter Finden der Schlüssel-ID und des Schlüssel-ARN.

Das Format eines Schlüssel-ARN lautet wie folgt:

arn:<partition>:kms:<region>:<account-id>:key/<key-id>

Es folgt ein Beispiel eines Schlüssel-ARNs für einen einzelregionalen KMS-Schlüssel.

arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

Das Schlüssel-ID-Element der Schlüssel-ARNs von multiregionalen Schlüsseln mit dem Präfix mrk-. Es folgt ein Beispiel eines Schlüssel-ARN für einen multiregionalen KMS-Schlüssel.

arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab
Schlüssel-ID

Die Schlüssel-ID identifiziert einen KMS-Schlüssel innerhalb eines Kontos und einer Region eindeutig. Hilfestellung beim Suchen der Schlüssel-ID eines KMS-Schlüssels finden Sie unter Finden der Schlüssel-ID und des Schlüssel-ARN.

Es folgt ein Beispiel einer Schlüssel-ID für einen einzelregionalen KMS-Schlüssel.

1234abcd-12ab-34cd-56ef-1234567890ab

Die Schlüssel-IDs von multiregionalen Schlüsseln beginnen mit dem Präfix mrk-. Es folgt ein Beispiel einer Schlüssel-ID für einen multiregionalen KMS-Schlüssel.

mrk-1234abcd12ab34cd56ef1234567890ab
Alias-ARN

Der Alias-ARN ist der Amazon-Ressourcenname (ARN) eines AWS KMS-Alias. Es ist ein eindeutiger, vollqualifizierter Bezeichner für den Alias und für den KMS-Schlüssel, den er repräsentiert. Ein Alias-ARN enthält das AWS-Konto, die Region und den Aliasnamen.

Ein Alias-ARN identifiziert zu einem bestimmten Zeitpunkt einen bestimmten KMS-Schlüssel. Da Sie jedoch den KMS-Schlüssel ändern können, der dem Alias zugeordnet ist, kann der Alias-ARN zu verschiedenen Zeiten unterschiedliche KMS-Schlüssel identifizieren. Hilfestellung beim Suchen des Alias-ARN eines KMS-Schlüssels finden Sie unter Suchen des Aliasnamens und des Alias-ARN.

Das Format eines Alias-ARN lautet wie folgt:

arn:<partition>:kms:<region>:<account-id>:alias/<alias-name>

Es folgt der Alias-ARN für einen fiktiven ExampleAlias.

arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias
Alias-Name

Der Aliasname besteht aus einer Zeichenfolge mit bis zu 256 Zeichen. Er identifiziert einen zugeordneten KMS-Schlüssel innerhalb eines Kontos und einer Region eindeutig. In der AWS KMS-API beginnen Aliasnamen immer mit alias/. Hilfestellung beim Suchen des Aliasnamens eines KMS-Schlüssels finden Sie unter Suchen des Aliasnamens und des Alias-ARN.

Das Format eines Aliasnamens lautet wie folgt:

alias/<alias-name>

Zum Beispiel:

alias/ExampleAlias

Das aws/-Präfix für einen Aliasnamen ist für Von AWS verwaltete Schlüssel reserviert. Sie können keinen Alias mit diesem Präfix erstellen. Der Aliasname des Von AWS verwalteter Schlüssel für Amazon Simple Storage Service (Amazon S3) ist der Folgende:

alias/aws/s3

Schlüsselmaterial

Schlüsselmaterial ist die Zeichenfolge von Bits, die in einem kryptografischen Algorithmus verwendet wird. Geheimes Schlüsselmaterial muss geheim gehalten werden, um die kryptografischen Operationen, die es verwenden, zu schützen. Öffentliches Schlüsselmaterial ist für die gemeinsame Nutzung bestimmt.

Jeder KMS-Schlüssel enthält in seinen Metadaten einen Verweis auf sein Schlüsselmaterial. Die Herkunft des Schlüsselmaterials des KMS-Schlüssels mit symmetrischer Verschlüsselung kann variieren. Sie können Schlüsselmaterial verwenden, das AWS KMS generiert, Schlüsselmaterial, das in dem AWS CloudHSM-Cluster eines benutzerdefinierten Schlüsselspeichers generiert wird, oder Ihr eigenes Schlüsselmaterial importieren. Wenn Sie AWS KMS-Schlüsselmaterial für Ihren KMS-Schlüssel mit symmetrischer Verschlüsselung verwenden, können Sie die automatische Drehung Ihres Schlüsselmaterials aktivieren.

Standardmäßig verfügt jeder KMS-Schlüssel über eindeutiges Schlüsselmaterial. Sie können jedoch eine Reihe von multiregionalen Schlüsseln mit demselben Schlüsselmaterial erstellen.

Ursprung des Schlüsselmaterials

Ursprung des Schlüsselmaterials ist eine KMS-Schlüssel-Eigenschaft, die die Quelle des Schlüsselmaterials im KMS-Schlüssel identifiziert. Sie wählen den Ursprung des Schlüsselmaterials, wenn Sie den KMS-Schlüssel erstellen. Danach kann er nicht mehr geändert werden. Die Quelle des Schlüsselmaterials wirkt sich auf die Sicherheit, Dauerhaftigkeit, Verfügbarkeit, Latenzzeit und Durchsatzmerkmale des KMS-Schlüssels aus.

Um den Ursprung des Schlüsselmaterials eines KMS-Schlüssels zu finden, verwenden Sie die -DescribeKeyOperation oder sehen Sie sich den Ursprungswert auf der Registerkarte Kryptografische Konfiguration der Detailseite für einen KMS-Schlüssel in der AWS KMS Konsole an. Hilfe finden Sie unter Anzeigen von Schlüsseln.

KMS-Schlüssel können einen der folgenden Werte für den Ursprung des Schlüsselmaterials haben.

AWS_KMS

AWS KMS erstellt und verwaltet das Schlüsselmaterial für den KMS-Schlüssel in einem eigenen Schlüsselspeicher. Dies ist der Standardwert und der empfohlene Wert für die meisten KMS-Schlüssel.

Hilfestellung beim Erstellen von Schlüsseln mit Schlüsselmaterial von AWS KMS finden Sie unter Erstellen von Schlüsseln.

EXTERNAL (Import key material)

Der KMS-Schlüssel enthält importiertes Schlüsselmaterial. Wenn Sie einen KMS-Schlüssel mit dem Ursprung des Schlüsselmaterials External erstellen, verfügt der KMS-Schlüssel über kein Schlüsselmaterial. Später können Sie Schlüsselmaterial in den KMS-Schlüssel importieren. Wenn Sie importiertes Schlüsselmaterial verwenden, müssen Sie dieses Schlüsselmaterial außerhalb von AWS KMS sichern und verwalten, einschließlich des Austauschs des Schlüsselmaterials, falls es abläuft. Details hierzu finden Sie unter Informationen zu importiertem Schlüsselmaterial.

Hilfestellung beim Erstellen eines KMS-Schlüssel für importiertes Schlüsselmaterial finden Sie unter Schritt 1: Erstellen eines KMS-Schlüssels ohne Schlüsselmaterial.

AWS_CLOUDHSM

AWS KMS erstellt das Schlüsselmaterial im AWS CloudHSM-Cluster für Ihren AWS CloudHSM-Schlüsselspeicher.

Hilfe zum Erstellen eines KMS-Schlüssels in einem AWS CloudHSM-Schlüsselspeicher finden Sie unter Erstellen von KMS-Schlüsseln in einem AWS CloudHSM-Schlüsselspeicher.

EXTERNAL_KEY_STORE

Das Schlüsselmaterial ist ein kryptografischer Schlüssel in einem externen Schlüsselmanager außerhalb von AWS. Dieser Ursprung wird nur für KMS-Schlüssel in einem externen Schlüsselspeicher unterstützt.

Hilfe zum Erstellen eines KMS-Schlüssels in einem externen Schlüsselspeicher finden Sie unter Erstellen von KMS-Schlüsseln in einem externen Schlüsselspeicher.

Schlüsselspezifikation

Die Schlüsselspezifikation ist eine Eigenschaft, die die kryptografische Konfiguration des KMS-Schlüssels repräsentiert. Die Bedeutung der Schlüsselspezifikation unterscheidet sich vom Schlüsseltyp.

  • AWS KMS-Schlüssel – Die Schlüsselspezifikation gibt an, ob der KMS-Schlüssel symmetrisch oder asymmetrisch ist. Sie bestimmt auch die Art des Schlüsselmaterials und die unterstützten Algorithmen. Sie wählen die Schlüsselspezifikation, wenn Sie den KMS-Schlüssel erstellen. Sie kann danach nicht mehr geändert werden. Die Standardschlüsselspezifikation, SYMMETRIC_DEFAULT, steht für einen symmetrischen 256-Bit-Verschlüsselungsschlüssel.

    Anmerkung

    Der KeySpec für einen KMS-Schlüssel wird als CustomerMasterKeySpec bezeichnet. Der -CustomerMasterKeySpecParameter der -CreateKeyOperation ist veraltet. Verwenden Sie stattdessen den KeySpec-Parameter, der auf dieselbe Weise funktioniert. Um Breaking Changes zu vermeiden, enthält die Antwort der DescribeKey Operationen CreateKey und jetzt sowohl - als auch KeySpec -CustomerMasterKeySpecElemente mit denselben Werten.

    Eine Liste der Schlüsselspezifikationen und Hilfe bei der Auswahl einer Schlüsselspezifikation finden Sie unter Auswählen der Schlüsselspezifikation. Um die Schlüsselspezifikation eines KMS-Schlüssels zu finden, verwenden Sie die -DescribeKeyOperation oder sehen Sie sich die Registerkarte Kryptografische Konfiguration auf der Detailseite für einen KMS-Schlüssel in der -AWS KMSKonsole an. Hilfe finden Sie unter Anzeigen von Schlüsseln.

    Um die Schlüsselspezifikationen einzuschränken, die Prinzipale beim Erstellen von KMS-Schlüsseln verwenden können, verwenden Sie den Bedingungsschlüssel kms:KeySpec. Sie können mit dem Bedingungsschlüssel kms:KeySpec es Prinzipalen auch erlauben, AWS KMS-Operationen nur für KMS-Schlüssel mit einer bestimmen Schlüsselspezifikation aufzurufen. Beispielsweise können Sie die Berechtigung zum Planen des Löschens eines KMS-Schlüssels mit einer RSA_4096-Schlüsselspezifikation verweigern.

  • Datenschlüssel (GenerateDataKey) – Die Schlüsselspezifikation bestimmt die Länge eines AES-Datenschlüssels.

  • Datenschlüsselpaare (GenerateDataKeyPair) – Die Schlüsselpaarspezifikation bestimmt den Typ des Schlüsselmaterials im Datenschlüsselpaar.

Schlüsselnutzung

Die Schlüsselnutzung ist eine Eigenschaft, die bestimmt, welche kryptografischen Vorgänge der Schlüssel unterstützt. KMS-Schlüssel können die Schlüsselnutzung ENCRYPT_DECRYPT, SIGN_VERIFY, oder GENERATE_VERIFY_MAC haben. Jeder KMS-Schlüssel kann nur eine Schlüsselnutzung haben. Die Verwendung eines KMS-Schlüssels für mehr als eine Art von Operation macht das Produkt beider Operationen anfälliger gegenüber Angriffen.

Hilfe bei der Auswahl der Schlüsselverwendung für Ihren KMS-Schlüssel finden Sie unter Auswählen der Schlüsselnutzung. Um die Schlüsselnutzung eines KMS-Schlüssels zu ermitteln, verwenden Sie die -DescribeKeyOperation oder wählen Sie die Registerkarte Kryptografische Konfiguration auf der Detailseite für einen KMS-Schlüssel in der AWS KMS Konsole. Hilfe finden Sie unter Anzeigen von Schlüsseln.

Envelope-Verschlüsselung

Wenn Sie Daten verschlüsseln, sind die Daten geschützt. Sie müssen aber jetzt den Verschlüsselungsschlüssel schützen. Eine Strategie besteht darin, ihn zu verschlüsseln. Envelope-Verschlüsselung bezeichnet das Verschlüsseln von Klartextdaten mit einem Datenschlüssel und die anschließende Verschlüsselung des Datenschlüssels mit einem anderen Schlüssel.

Sie können auch den Datenverschlüsselungsschlüssel mit einem anderen Verschlüsselungsschlüssel verschlüsseln und diesen Verschlüsselungsschlüssel mit einem weiteren Verschlüsselungsschlüssel verschlüsseln. Doch schließlich muss ein Schlüssel als Klartext verbleiben, damit Sie die Schlüssel und die Daten entschlüsseln können. Dieser Top-Level-Klartext-Verschlüsselungsschlüssel zum Verschlüsseln von Schlüsseln wird als Stammschlüssel bezeichnet.

Envelope-Verschlüsselung

AWS KMS hilft Ihnen dabei, Verschlüsselungsschlüssel zu schützen, indem diese sicher gespeichert und verwaltet werden. Root-Schlüssel, die in AWS KMS gespeichert sind, bekannt als AWS KMS keys, verlassen niemals unverschlüsselt die FIPS-validierten Hardware-Sicherheitsmodule von AWS KMS. Um einen KMS-Schlüssel zu verwenden, müssen Sie AWS KMS aufrufen.

Envelope-Verschlüsselung mit mehreren Verschlüsselungsschlüsseln

Envelope-Verschlüsselung bietet mehrere Vorteile:

  • Schutz von Datenschlüsseln

    Wenn Sie einen Datenschlüssel verschlüsseln, müssen Sie sich nicht darum sorgen, wo Sie den verschlüsselten Schlüssel speichern, da die Sicherheit dieses Datenschlüssels inhärent durch Verschlüsselung geschützt ist. Sie können den verschlüsselten Datenschlüssel sicher neben den verschlüsselten Daten speichern.

  • Verschlüsselung der gleichen Daten unter mehreren Schlüsseln

    Verschlüsselungsoperationen können zeitaufwendig sein, insbesondere wenn die zu verschlüsselnden Daten große Objekte sind. Statt Rohdaten mit verschiedenen Schlüsseln mehrmals neu zu verschlüsseln, können Sie einfach die Datenschlüssel, die die Rohdaten schützen, neu verschlüsseln.

  • Kombination der Stärken mehrerer Algorithmen

    Im Allgemeinen sind symmetrische Schlüsselalgorithmen schneller und erzeugen kleinere Verschlüsselungstexte als öffentliche Schlüsselalgorithmen. Algorithmen mit öffentlichem Schlüssel unterstützen jedoch eine inhärente Rollentrennung und eine einfachere Schlüsselverwaltung. Die Envelope-Verschlüsselung vereint die Stärken aller Strategien.

Verschlüsselungskontext

Alle kryptografischen Operationen von AWS KMS mit KMS-Schlüsseln mit symmetrischer Verschlüsselung akzeptieren einen Verschlüsselungskontext, einen optionalen Satz von nicht geheimen Schlüssel-Wert-Paaren, die zusätzliche Kontextinformationen zu den Daten enthalten können. AWS KMS verwendet den Verschlüsselungskontext als zusätzliche authentifizierte Daten (AAD) zur Unterstützung der authentifizierten Verschlüsselung.

Wenn Sie einen Verschlüsselungskontext in eine Verschlüsselungsanforderung einfügen, wird er kryptographisch an den Verschlüsselungstext gebunden. Daher ist zum Entschlüsseln (oder Entschlüsseln und erneuten Verschlüsseln) der Daten derselbe Verschlüsselungskontext erforderlich. Wenn der in der Entschlüsselungsanforderung angegebene Verschlüsselungskontext keine exakte Übereinstimmung ist (inkl. Groß-/Kleinschreibung), schlägt die Entschlüsselungsanforderung fehl. Nur die Reihenfolge der Schlüssel-Wert-Paare im Verschlüsselungskontext kann variieren.

Anmerkung

Sie können mit einem asymmetrische KMS-Schlüssel oder einem HMAC-KMS-Schlüssel keinen Verschlüsselungskontext in einer kryptografischen Produktion angeben. Asymmetrische Algorithmen und MAC-Algorithmen unterstützen keinen Verschlüsselungskontext.

Der Verschlüsselungskontext ist nicht geheim und nicht verschlüsselt. Er erscheint als Klartext in AWS CloudTrail-Protokollen, kann also zum Identifizieren und Kategorisieren der kryptografischen Operationen herangezogen werden. Ihr Verschlüsselungskontext sollte keine sensiblen Informationen enthalten. Wir empfehlen, dass Ihr Verschlüsselungskontext die zu verschlüsselnden oder zu entschlüsselnden Daten beschreibt. Wenn Sie z. B. eine Datei verschlüsseln, können Sie einen Teil des Dateipfads als Verschlüsselungskontext verwenden.

"encryptionContext": { "department": "10103.0" }

Wenn Sie beispielsweise Volumes und Snapshots verschlüsseln, die mit der Amazon Elastic Block Store (Amazon EBS)-CreateSnapshotOperation erstellt wurden, verwendet Amazon EBS die Volume-ID als Verschlüsselungskontextwert.

"encryptionContext": { "aws:ebs:id": "vol-abcde12345abc1234" }

Sie können den Verschlüsselungskontext außerdem verwenden, um den Zugriff auf AWS KMS keys in Ihrem Konto detailliert festzulegen oder einzuschränken. Sie können den Verschlüsselungskontext als Einschränkung in Erteilungen und als Bedingung in Richtlinien verwenden.

Informationen zur Verwendung des Verschlüsselungskontexts zum Schutz der Integrität verschlüsselter Daten finden Sie im Beitrag So schützen Sie die Integrität Ihrer verschlüsselten Daten mithilfe von AWS Key Management Service und EncryptionContext im -AWSSicherheitsblog.

Weitere Informationen zum Verschlüsselungskontext.

AWS KMS erzwingt die folgenden Regeln für Verschlüsselungskontextschlüssel und -werte.

  • Der Schlüssel und der Wert in einem Verschlüsselungskontextpaar müssen einfache Literalzeichenfolgen sein. Wenn Sie einen anderen Typ verwenden, z. B. eine Ganzzahl oder Gleitkommazahl, interpretiert AWS KMS ihn als Zeichenfolge.

  • Die Schlüssel und Werte in einem Verschlüsselungskontext können Unicode-Zeichen enthalten. Wenn ein Verschlüsselungskontext Zeichen enthält, die in Schlüsselrichtlinien oder IAM-Richtlinien nicht zulässig sind, können Sie den Verschlüsselungskontext nicht in Richtlinienbedingungsschlüsseln angeben, z. B. kms:EncryptionContext:context-key und kms:EncryptionContextKeys. Weitere Informationen zu Dokumentenregeln für Schlüsselrichtlinien finden Sie unter Schlüsselrichtlinienformat. Weitere Informationen zu Regeln für IAM-Richtliniendokumente finden Sie unter Anforderungen für den IAM-Namen im IAM Benutzerhandbuch.

Der Verschlüsselungskontext wird hauptsächlich verwendet, um Integrität und Authentizität zu überprüfen. Sie können den Verschlüsselungskontext aber auch verwenden, um den Zugriff auf AWS KMS keys mit symmetrischer Verschlüsselung in Schlüsselrichtlinien und IAM-Richtlinien zu kontrollieren.

Die Bedingungsschlüssel kms:EncryptionContext: und kms:EncryptionContextKeys erlauben (oder verweigern) eine Berechtigung nur, wenn die Anforderung bestimmte Verschlüsselungskontextschlüssel oder Schlüssel-Wert-Paare enthält.

Die folgende Schlüsselrichtlinienanweisung erlaubt es beispielsweise der RoleForExampleApp-Rolle, den KMS-Schlüssel in Decrypt-Operationen zu verwenden. Sie verwendet den kms:EncryptionContext:context-key-Bedingungsschlüssel, um diese Berechtigung nur zu erlauben, wenn der Verschlüsselungskontext in der Anforderung ein AppName:ExampleApp-Verschlüsselungskontextpaar enthält.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" } } }

Weitere Informationen zu diesen Bedingungskontextschlüsseln finden Sie unter Zustandstasten für AWS KMS.

Wenn Sie eine Erteilung erstellen, können Sie Einschränkungen für Erteilungen setzten, die Bedingungen für die Erteilungsberechtigungen festlegen. AWS KMS unterstützt zwei Erteilungseinschränkungen, EncryptionContextEquals und EncryptionContextSubset, die beide den Verschlüsselungskontext in einer Anforderung für eine kryptografische Operation mit einbeziehen. Wenn Sie diese Erteilungseinschränkungen verwenden, sind die Berechtigungen in der Erteilung nur dann wirksam, wenn der Verschlüsselungskontext in der Anforderung für die kryptografische Operation die Anforderungen der Erteilungseinschränkungen erfüllt.

Sie können beispielsweise eine EncryptionContextEquals Erteilungseinschränkung zu einer Erteilung hinzufügen, die den GenerateDataKey Vorgang zulässt. Bei dieser Einschränkung erlaubt die Erteilung die Operation nur dann, wenn der Verschlüsselungskontext in der Anforderung mit dem Verschlüsselungskontext in der Erteilungseinschränkung übereinstimmen (inkl. Groß-/Kleinschreibung).

$ aws kms create-grant \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --grantee-principal arn:aws:iam::111122223333:user/exampleUser \ --retiring-principal arn:aws:iam::111122223333:role/adminRole \ --operations GenerateDataKey \ --constraints EncryptionContextEquals={Purpose=Test}

Eine Anforderung wie die folgende vom Empfänger-Prinzipal würde die EncryptionContextEquals-Einschränkung zulassen.

$ aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-spec AES_256 \ --encryption-context Purpose=Test

Weitere Informationen über die Erteilungseinschränkungen finden Sie unter Verwenden von Erteilungs-Einschränkungen. Ausführliche Informationen zu Erteilungen finden Sie unter Erteilungen in AWS KMS.

AWS KMS verwendet AWS CloudTrail zum Protokollieren des Verschlüsselungskontext, sodass Sie bestimmen können, auf welche KMS-Schlüssel und Daten zugegriffen wurde. Das bedeutet, dass der Protokolleintrag genau anzeigt, welcher KMS-Schlüssel verwendet wurde, um spezifische Daten, auf die der Verschlüsselungskontext im Protokolleintrag hinweist, zu verschlüsseln oder entschlüsseln.

Wichtig

Da der Verschlüsselungskontext protokolliert wird, sollte er keine vertraulichen Informationen enthalten.

Um die Verwendung eines beliebigen Verschlüsselungskontextes beim Aufruf der Operationen Decrypt oder ReEncrypt zu vereinfachen, können Sie den Verschlüsselungskontext neben den verschlüsselten Daten speichern. Wir empfehlen, dass Sie nur so viel vom Verschlüsselungskontext speichern, dass Sie den vollständigen Verschlüsselungskontext erstellen können, wenn Sie ihn für die Ver- oder Entschlüsselung benötigen.

Wenn der Verschlüsselungskontext beispielsweise der vollständig qualifizierte Pfad zu einer Datei ist, speichern Sie nur einen Teil dieses Pfades mit dem verschlüsselten Dateiinhalt. Wenn Sie dann den vollständigen Verschlüsselungstext benötigen, können Sie ihn aus dem gespeicherten Fragment rekonstruieren. Wenn jemand die Datei verändert (sie beispielsweise umbenennt oder an einen anderen Ort verschiebt), ändert sich der Wert des Verschlüsselungskontextes und die Entschlüsselungsanforderung schlägt fehl.

Schlüsselrichtlinie

Wenn Sie einen KMS-Schlüssel erstellen, legen Sie fest, wer diesen KMS-Schlüssel verwenden und verwalten darf. Diese Berechtigungen werden in einem Dokument namens Schlüsselrichtlinie festgehalten. Sie können die Schlüsselrichtlinie verwenden, um Berechtigungen für einen kundenverwalteten KMS-Schlüssel jederzeit hinzuzufügen, zu entfernen oder zu ändern. Sie können die Schlüsselrichtlinie für einen Von AWS verwaltete Schlüssel jedoch nicht bearbeiten. Weitere Informationen finden Sie unter Wichtige Richtlinien in AWS KMS.

Gewährung

Eine Erteilung ist ein Richtlinien-Instrument, das es AWS-Prinzipalen erlaubt, AWS KMS keys in kryptografischen Operationen zu verwenden. Es kann ihnen auch erlauben, einen KMS-Schlüssel anzuzeigen (DescribeKey) und Erteilungen zu erstellen und zu verwalten. Bei der Autorisierung des Zugriffs auf einen KMS-Schlüssel werden Erteilungen zusammen mit Schlüsselrichtlinien und IAM-Richtlinien berücksichtigt. Erteilungen werden häufig für temporäre Berechtigungen verwendet, da Sie eine erstellen, deren Berechtigungen verwenden und sie dann wieder löschen können, ohne Ihre Schlüsselrichtlinien oder IAM-Richtlinien zu ändern. Da Erteilungen sehr spezifisch sein können und einfach zu erstellen und zu widerrufen sind, werden sie häufig verwendet, um temporäre Berechtigungen oder detailliertere Berechtigungen bereitzustellen.

Ausführliche Informationen zu Erteilungen, einschließlich der Terminologie für Erteilungen, finden Sie unter Erteilungen in AWS KMS.

Prüfung der KMS-Schlüsselnutzung

Sie können verwendenAWS CloudTrail, um die Schlüsselnutzung zu überprüfen. CloudTrail erstellt Protokolldateien, die einen Verlauf von AWS API-Aufrufen und zugehörigen Ereignissen für Ihr Konto enthalten. Diese Protokolldateien enthalten alle AWS KMS-API-Anforderungen, die über die AWS-Managementkonsole, AWS-SDKs und Befehlszeilen-Tools erfolgen. Die Protokolldateien enthalten auch Anforderungen an AWS KMS, die AWS-Services in Ihrem Namen stellen. Sie können diese Protokolldateien verwenden, um wichtige Informationen zu finden, z. B. wann der KMS-Schlüssel verwendet wurde, die angeforderte Operation, die Identität des Anforderers und die Quell-IP-Adresse. Weitere Informationen finden Sie im Protokollierung mit AWS CloudTrail und dem AWS CloudTrail-Benutzerhandbuch.

Schlüsselverwaltungsinfrastruktur

Eine gängige Praxis in der Kryptographie besteht darin, Ver- und Entschlüsselungen mit einem öffentlich verfügbaren und von Kollegen überprüften Algorithmus wie AES (Advanced Encryption Standard) und einem geheimen Schlüssel vorzunehmen. Eines der größten Probleme bei der Kryptographie ist, dass es sehr schwierig ist, einen Schlüssel geheim zu halten. Dies ist in der Regel die Aufgabe einer Schlüsselverwaltungs-Infrastruktur (Key Management Infrastructure, KMI). AWS KMS betreibt die Schlüsselinfrastruktur für Sie. AWS KMS erstellt Ihre Stammschlüssel (AWS KMS keys genannt) und speichert sie auf sichere Weise. Weitere Informationen darüber, wie AWS KMS funktioniert, finden Sie im Whitepaper AWS Key Management Service – Kryptographische Details.