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.
Themen
- AWS KMS keys
- Kundenschlüssel und AWS-Schlüssel
- KMS-Schlüssel zur symmetrischen Verschlüsselung
- Asymmetrische KMS-Schlüssel
- HMAC-KMS-Schlüssel
- Datenschlüssel
- Datenschlüsselpaare
- Aliasnamen
- Benutzerdefinierte Schlüsselspeicher
- Kryptografische Operationen
- Wichtige Identifikatoren () KeyId
- Schlüsselmaterial
- Ursprung des Schlüsselmaterials
- Schlüsselspezifikation
- Schlüsselnutzung
- Envelope-Verschlüsselung
- Verschlüsselungskontext
- Schlüsselrichtlinie
- Grant
- Prüfung der KMS-Schlüsselnutzung
- Schlüsselverwaltungsinfrastruktur
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
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. Verwenden Sie die DescribeKeyOperation, um einen vom Kunden verwalteten Schlüssel definitiv zu identifizieren. 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
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
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/
, wie z. B. service-name
aws/redshift
, identifiziert werden. Um eine definitiv zu identifizierenVon AWS verwaltete Schlüssel, verwenden Sie die DescribeKeyOperation. Für 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
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
Rufen Sie die GenerateDataKeyOperation auf, um einen Datenschlüssel zu erstellen. AWS KMSgeneriert 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.

AWS KMSunterstützt auch den GenerateDataKeyWithoutPlaintextVorgang, der 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.

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.

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:
-
Löschen des Schlüsselmaterials aus einem KMS-Schlüssel mit importiertem Schlüsselmaterial oder Ablaufenlassen des importierten Schlüsselmaterials
-
Trennen des AWS CloudHSM-Schlüsselspeichers, der den KMS-Schlüssel hostet, oder Löschen des Schlüssels aus dem AWS CloudHSM-Cluster, der als Schlüsselmaterial für den KMS-Schlüssel dient
-
Trennen des externen Schlüsselspeichers, der den KMS-Schlüssel hostet, oder jede andere Aktion, die Verschlüsselungs- und Entschlüsselungsanforderungen an den Proxy des externen Schlüsselspeichers beeinträchtigt, einschließlich der Löschung des externen Schlüssels aus seinem externen Schlüsselmanager
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:
-
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.
-
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/O auf dem EBS-Volume verantwortlich ist. Der Datenschlüssel verbleibt in der Nitro-Hardware, während das EBS-Volume an die EC2-Instance angehängt ist.
-
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-I/O zu verschlüsseln, während das Volume an die Instance angeschlossen ist.
-
Wenn das verschlüsselte EBS-Volume jedoch 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 GenerateDataKeyPairWithoutPlaintextOperationen GenerateDataKeyPairoder 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.

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.

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.

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
Das folgende Diagramm zeigt, wie Sie den privaten Schlüssel in einem Datenschlüsselpaar verwenden, um eine Nachricht zu signieren.

Ü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.

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 Konsole. 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 in einem Aliasnamen keine vertraulichen oder vertraulichen Informationen an. Aliase können in CloudTrail Protokollen und anderen Ausgaben im Klartext erscheinen.
Weitere Informationen:
-
Ausführliche Informationen zu Aliassen finden Sie unter Verwenden von Aliassen.
-
Informationen zu den Formaten von Schlüsselbezeichner, einschließlich Aliasse, finden Sie unter Wichtige Identifikatoren () KeyId.
-
Hilfe zum Auffinden der Aliasse, die einem KMS-Schlüssel zugeordnet sind, finden Sie unter Suchen des Aliasnamens und des Alias-ARN
-
Beispiele zur Erstellung und Verwaltung von Aliassen in verschiedenen Programmiersprachen finden Sie unter Arbeiten mit Aliasen.
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. | – |
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.
Wichtige Identifikatoren () 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äfixmrk-
. 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 materiellen Ursprung eines KMS-Schlüssels zu ermitteln, verwenden Sie die DescribeKeyOperation oder sehen Sie sich den Origin-Wert auf der Registerkarte Kryptografische Konfiguration der Detailseite für einen KMS-Schlüssel in der Konsole an. AWS KMS 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 alsCustomerMasterKeySpec
bezeichnet. DerCustomerMasterKeySpec
Parameter der CreateKeyOperation ist veraltet. Verwenden Sie stattdessen denKeySpec
-Parameter, der auf dieselbe Weise funktioniert. Um grundlegende Änderungen zu verhindern, umfasst die Antwort der DescribeKeyOperationenCreateKey
und jetzt sowohlKeySpec
Elemente als auchCustomerMasterKeySpec
Elemente 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 den DescribeKeyVorgang oder suchen Sie in der Konsole auf der Detailseite auf der Registerkarte Kryptografische Konfiguration nach einem KMS-Schlüssel. AWS KMS Hilfe finden Sie unter Anzeigen von Schlüsseln.
Um die Schlüsselspezifikationen einzuschränken, die Schulleiter beim Erstellen von KMS-Schlüsseln verwenden können, verwenden Sie den Schlüssel kms: KeySpec condition. 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 einerRSA_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 die Art 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 den DescribeKeyVorgang oder wählen Sie auf der Detailseite für einen KMS-Schlüssel in der Konsole die Registerkarte Kryptografische Konfiguration. AWS KMS 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.

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

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 AWS KMS kryptografischen Operationen mit symmetrischer Verschlüsselung von KMS-Schlüsseln akzeptieren einen Verschlüsselungskontext, einen optionalen Satz nicht geheimer Schlüssel-Wert-Paare, die zusätzliche Kontextinformationen über die Daten enthalten können. AWS KMSverwendet den Verschlüsselungskontext als zusätzliche authentifizierte Daten (AAD), um authentifizierte Verschlüsselung zu unterstützen.
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 dem Amazon Elastic Block Store (Amazon EBS) CreateSnapshot-Vorgang erstellt wurden, verwendet Amazon EBS die Volume-ID als Wert für den Verschlüsselungskontext.
"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.
Um zu erfahren, wie Sie den Verschlüsselungskontext verwenden, um die Integrität verschlüsselter Daten zu schützen, lesen Sie den Beitrag So schützen Sie die Integrität Ihrer verschlüsselten Daten mithilfe von AWS Key Management Service und EncryptionContext
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 kmsEncryptionContext:: und kms: EncryptionContextKeys gewähren (oder verweigern) eine Berechtigung nur, wenn die Anforderung bestimmte Schlüssel für den Verschlüsselungskontext 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 Bedingungsschlüssel 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 einem EncryptionContextEquals
Grant, der den GenerateDataKeyVorgang ermöglicht, eine Zuschussbeschränkung hinzufügen. 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 Schlüsselrichtlinien in AWS KMS.
Grant
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 AWS CloudTrail verwenden, um die Schlüsselnutzung zu überprüfen. CloudTrail erstellt Protokolldateien, die einen Verlauf der AWS-API-Aufrufe 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 Protokollieren 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.