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
Lernen Sie die in AWS Key Management Service (AWS KMS) verwendeten grundlegenden Begriffe und Konzepte kennen und erfahren Sie, wie sie zusammen zum Schutz Ihrer Daten beitragen.
Themen
- AWS KMS keys
- Kundenschlüssel und Schlüssel AWS
- 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
- Schlüsselkennungen () KeyId
- Schlüsselmaterial
- Ursprung des Schlüsselmaterials
- Schlüsselspezifikation
- Schlüsselnutzung
- Envelope-Verschlüsselung
- Verschlüsselungskontext
- Schlüsselrichtlinie
- Gewährung
- Prüfung der KMS-Schlüsselnutzung
- Schlüsselverwaltungsinfrastruktur
AWS KMS keys
AWS KMS keys (KMS-Schlüssel) sind die primäre Ressource 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 verwenden können AWS KMS. 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 Customer Master Key (CMK) durch AWS KMS keyeinen KMS-Schlüssel. Das Konzept hat sich nicht geändert. Um bahnbrechende Änderungen zu verhindern, AWS KMS werden 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 AWS KMS FIPS-validierten Hardware-Sicherheitsmodulen
AWS KMS Erstellt standardmäßig 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 AWS exportieren 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 besitzen und außerhalb verwalten AWS.
AWS KMS unterstützt auch Schlüssel für mehrere Regionen, mit denen Sie Daten in einer Region verschlüsseln AWS-Region und in einer anderen entschlüsseln können. AWS-Region
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.
Kundenschlüssel und Schlüssel AWS
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 in Ihrem AWS Konto AWS -Services erstellt werden, sind Von AWS verwaltete Schlüssel. KMS-Schlüssel, die in einem Dienstkonto AWS -Services 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 meine verwendet AWS-Konto | 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 zahlen diese Gebühr für Sie) |
AWS-eigener Schlüssel | Nein | Nein | Nein | Variiert | Keine Gebühren |
AWS Dienste, die AWS KMS sich integrieren lassen, unterscheiden sich in ihrer Unterstützung für KMS-Schlüssel. Einige AWS Dienste verschlüsseln Ihre Daten standardmäßig mit einem AWS-eigener Schlüssel oder einem Von AWS verwalteter Schlüssel. Einige AWS Dienste unterstützen vom Kunden verwaltete Schlüssel. Andere AWS Dienste unterstützen alle Arten von KMS-Schlüsseln AWS-eigener Schlüssel, sodass Sie einen vom Kunden verwalteten Schlüssel einfach Von AWS verwalteter Schlüssel, sichtbar oder kontrollieren können. Ausführliche Informationen zu den Verschlüsselungsoptionen, die ein AWS Dienst bietet, finden Sie unter dem Thema Verschlüsselung im Ruhezustand im Benutzer- oder Entwicklerhandbuch für den Dienst.
Kundenverwaltete Schlüssel
Die von Ihnen erstellten KMS-Schlüssel sind kundenverwaltete Schlüssel. Von Kunden verwaltete Schlüssel sind KMS-Schlüssel in Ihrem AWS-Konto System, die Sie selbst 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 den DescribeKeyVorgang, um einen vom Kunden verwalteten Schlüssel eindeutig 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üsselsind KMS-Schlüssel in Ihrem Konto, die in Ihrem Namen von einem integrierten AWS Dienst
Bei einigen AWS Diensten können Sie einen Von AWS verwalteter Schlüssel oder einen vom Kunden verwalteten Schlüssel auswählen, um Ihre Ressourcen in diesem Dienst zu schützen. Generell gilt: Sofern Sie nicht selbst die Kontrolle über den Verschlüsselungsschlüssel haben müssen, der Ihre Ressourcen schützt, Von AWS verwalteter Schlüssel ist an 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 sind berechtigt, sie Von AWS verwaltete Schlüssel in Ihrem Konto einzusehen, ihre wichtigsten Richtlinien einzusehen und ihre Verwendung in AWS CloudTrail Protokollen zu überprüfen. Sie können jedoch keine Eigenschaften von ändern Von AWS verwaltete Schlüssel, sie rotieren, ihre wichtigsten Richtlinien ändern oder ihre Löschung planen. Und Sie können sie nicht direkt für kryptografische Operationen verwenden Von AWS verwaltete Schlüssel . Der Dienst, der sie erstellt, verwendet sie in Ihrem Namen.
Von AWS verwaltete Schlüssel erscheinen auf der Von AWS verwaltete SchlüsselSeite des Formulars AWS Management Console . AWS KMS Sie können es auch Von AWS verwaltete Schlüssel anhand ihrer Aliase identifizieren, die das Format habenaws/
, z. B. service-name
aws/redshift
Verwenden Sie die Operation Von AWS verwaltete Schlüssel, um einen eindeutig zu identifizieren. DescribeKey Für Von AWS verwaltete Schlüssel ist der Wert des KeyManager
-Felds der DescribeKey
-Antwort AWS
.
Alle Von AWS verwaltete Schlüssel werden jedes Jahr automatisch rotiert. Dieser Rotationsplan kann nicht geändert werden.
Anmerkung
Im Mai 2022 AWS KMS wurde der Rotationsplan Von AWS verwaltete Schlüssel von allen drei Jahren (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 danach ungefähr jedes Jahr rotiert.
Bestehende Von AWS verwaltete Schlüssel werden automatisch ein Jahr nach ihrer letzten Rotation und danach jedes Jahr gewechselt.
Es gibt keine monatliche Gebühr für Von AWS verwaltete Schlüssel. Für eine Nutzung, die über das kostenlose Kontingent hinausgeht, können Gebühren anfallen. Einige AWS Dienste übernehmen diese Kosten jedoch 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 die Anzahl der KMS-Schlüssel in jeder Region Ihres Kontos nicht auf die Ressourcenkontingente anrechnen. 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üsselsind eine Sammlung von KMS-Schlüsseln, die ein AWS Dienst besitzt und verwaltet, sodass sie in mehreren Fällen verwendet AWS-Konten werden können. Sie AWS-eigene Schlüssel gehören zwar nicht zu Ihrem AWS-Konto, können aber von einem AWS Dienst verwendet werden AWS-eigener Schlüssel , um die Ressourcen in Ihrem Konto zu schützen.
Bei einigen AWS Diensten können Sie einen AWS-eigener Schlüssel oder einen vom Kunden verwalteten Schlüssel auswählen. Generell gilt: Sofern Sie nicht verpflichtet sind, den Verschlüsselungsschlüssel, der Ihre Ressourcen schützt, zu überprüfen oder zu kontrollieren, AWS-eigener Schlüssel ist an eine gute Wahl. AWS-eigene Schlüssel sind völlig kostenlos (keine monatlichen Gebühren oder Nutzungsgebühren), sie werden nicht auf die AWS KMS Kontingente für Ihr Konto angerechnet und sie sind einfach zu verwenden. Sie müssen den Schlüssel oder seine Schlüsselrichtlinie nicht erstellen oder pflegen.
Die Rotation von AWS-eigene Schlüssel variiert je nach Dienst. Informationen zur Rotation eines bestimmten AWS-eigener Schlüssel Dienstes finden Sie unter dem Thema Verschlüsselung im Ruhezustand im Benutzer- oder Entwicklerhandbuch für den Dienst.
KMS-Schlüssel zur symmetrischen Verschlüsselung
Wenn Sie einen erstellen AWS KMS key, erhalten Sie standardmäßig einen KMS-Schlüssel für die symmetrische Verschlüsselung. Dies ist der grundlegende und am häufigsten verwendete KMS-Schlüsseltyp.
In AWS KMS steht ein KMS-Schlüssel mit symmetrischer Verschlüsselung für einen 256-Bit-AES-GCM-Verschlüsselungsschlüssel, außer in Regionen Chinas, wo er einen 128-Bit-SM4-Verschlüsselungsschlüssel darstellt. Symmetrisches Schlüsselmaterial bleibt niemals unverschlüsselt. AWS KMS Um einen KMS-Schlüssel mit symmetrischer Verschlüsselung zu verwenden, müssen Sie anrufen. AWS KMS 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 Dienste, die in integriert sind, AWS KMS verwenden nur KMS-Schlüssel mit
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 verwenden, um Daten AWS KMS zu verschlüsseln, zu entschlüsseln und erneut 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 wird niemals unverschlüsselt verlassen. AWS KMS Um den privaten Schlüssel zu verwenden, müssen Sie anrufen AWS KMS. Sie können den öffentlichen Schlüssel intern verwenden, AWS KMS indem Sie die AWS KMS API-Operationen aufrufen, oder Sie können den öffentlichen Schlüssel herunterladen und ihn außerhalb von verwenden AWS KMS. Sie können auch multiregionale asymmetrische KMS-Schlüssel erstellen.
Sie können asymmetrische KMS-Schlüssel erstellen, die RSA-Schlüsselpaare, Schlüsselpaare mit elliptischen Kurven oder SM2-Schlüsselpaare darstellen (nur Regionen Chinas). KMS-Schlüssel mit RSA-Schlüsselpaaren können verwendet werden, um Daten zu verschlüsseln oder zu entschlüsseln oder Nachrichten zu signieren und zu verifizieren (aber nicht beides). KMS-Schlüssel mit von NIST empfohlenen Schlüsselpaaren mit elliptischen Kurven können verwendet werden, um Nachrichten zu signieren und zu verifizieren oder gemeinsame geheime Schlüssel abzuleiten (aber nicht beides). KMS-Schlüssel mit ECC_SECG_P256K1
Schlüsselpaaren können nur zum Signieren und Überprüfen von Nachrichten verwendet werden. KMS-Schlüssel mit SM2-Schlüsselpaaren (nur Regionen Chinas) können entweder verwendet werden, um Daten zu verschlüsseln und zu entschlüsseln, Nachrichten zu signieren und zu verifizieren oder gemeinsame geheime Schlüssel abzuleiten (Sie müssen einen Schlüsselverwendungstyp wählen).
Weitere Informationen zum Erstellen und Verwenden von asymmetrischen KMS-Schlüsseln finden Sie unter Asymmetrische Tasten 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. Das Schlüsselmaterial für einen HMAC-Schlüssel bleibt niemals unverschlüsselt. AWS KMS 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 an Sie zurückgegeben, damit Sie sie außerhalb von verwenden können. AWS KMS
Beim AWS KMS Generieren von Datenschlüsseln werden ein Klartext-Datenschlüssel zur sofortigen Verwendung (optional) und eine verschlüsselte Kopie des Datenschlüssels zurückgegeben, die Sie sicher zusammen mit den Daten speichern können. Wenn Sie bereit sind, die Daten zu entschlüsseln, bitten Sie zunächst darum, den verschlüsselten Datenschlüssel AWS KMS zu entschlüsseln.
AWS KMS generiert, verschlüsselt und entschlüsselt Datenschlüssel. AWS KMS Speichert, verwaltet oder verfolgt Ihre Datenschlüssel jedoch nicht 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 den GenerateDataKeyVorgang auf, um einen Datenschlüssel zu erstellen. 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.
AWS KMS unterstützt auch den GenerateDataKeyWithoutPlaintextVorgang, der nur einen verschlüsselten Datenschlüssel zurückgibt. Wenn Sie den Datenschlüssel verwenden müssen, bitten Sie darum, ihn AWS KMS zu entschlüsseln.
Verschlüsseln von Daten mit einem Datenschlüssel
AWS KMS kann keinen Datenschlüssel 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 Ihre Daten zu entschlüsseln, übergeben Sie den verschlüsselten Datenschlüssel an den Vorgang Decrypt. AWS KMS verwendet Ihren KMS-Schlüssel, um den Datenschlüssel zu entschlüsseln, 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 der Verbindung zum AWS CloudHSM Schlüsselspeicher, 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 viele Unternehmen, die Datenschlüssel verwenden AWS -Services , um die Ressourcen zu schützen, die der Dienst verwaltet. 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 bittet Sie, Ihren KMS-Schlüssel AWS KMS zu verwenden, um einen verschlüsselten Datenschlüssel für das Volume zu generieren. 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 bleibt in der Nitro-Hardware erhalten, während das EBS-Volume mit der EC2-Instance verbunden 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-E/A zu verschlüsseln, während das Volume an die Instance angefügt ist.
-
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 für die clientseitige Verschlüsselung und Entschlüsselung oder für das Signieren und Verifizieren außerhalb von konzipiert. AWS KMS
Im Gegensatz zu den Datenschlüsselpaaren, die Tools wie OpenSSL generieren, AWS KMS schützt es den privaten Schlüssel in jedem Datenschlüsselpaar unter einem von Ihnen angegebenen symmetrischen Verschlüsselungs-KMS-Schlüssel. AWS KMS AWS KMS Speichert, verwaltet oder verfolgt Ihre Datenschlüsselpaare jedoch nicht 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. Elliptische Kurvenschlüssel werden häufig für digitale Signaturen oder zum Ableiten gemeinsamer Geheimnisse verwendet. ECC_SECG_P256K1-Schlüssel werden häufig für Kryptowährungen verwendet. AWS KMS empfiehlt, ECC-Schlüsselpaare zum Signieren und RSA-Schlüsselpaare entweder für die Verschlüsselung oder das Signieren zu verwenden, jedoch nicht für beide. AWS KMS Kann jedoch keine Einschränkungen für die Verwendung von Datenschlüsselpaaren außerhalb von erzwingen. AWS KMS
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 Sie Ihren privaten Schlüssel verschlüsseln, geben Sie den verschlüsselten privaten Schlüssel an den Vorgang Entschlüsseln weiter. AWS KMS verwendet Ihren KMS-Schlüssel, um den Datenschlüssel zu entschlüsseln, und gibt dann den privaten Klartext-Schlü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.
Leiten Sie ein gemeinsames Geheimnis mit Datenschlüsselpaaren ab
Durch die Schlüsselvereinbarung können zwei Peers, die jeweils über ein öffentlich-privates key pair mit elliptischer Kurve verfügen, ein gemeinsames Geheimnis über einen unsicheren Kanal einrichten. Um ein gemeinsames Geheimnis abzuleiten, müssen die beiden Peers ihre öffentlichen Schlüssel über den unsicheren Kommunikationskanal (wie das Internet) austauschen. Anschließend verwendet jede Partei ihren privaten Schlüssel und den öffentlichen Schlüssel ihres Peers, um dasselbe gemeinsame Geheimnis mithilfe eines Schlüsselvereinbarungsalgorithmus zu berechnen. Sie können den Wert des gemeinsamen geheimen Schlüssels verwenden, um einen symmetrischen Schlüssel abzuleiten, mit dem Daten, die zwischen den beiden Peers gesendet werden, ver- und entschlüsselt oder HMACs generiert und verifiziert werden können.
Anmerkung
AWS KMS empfiehlt dringend, zu überprüfen, ob der öffentliche Schlüssel, den Sie erhalten, von der erwarteten Partei stammt, bevor Sie ihn zur Ableitung eines gemeinsamen geheimen Schlüssels verwenden.
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. Bei einigen AWS KMS Vorgängen, einschließlich kryptografischer Operationen, können Sie einen Alias verwenden, um einen KMS-Schlüssel zu identifizieren. In Anwendungen können Sie jeweils AWS-Region einen einzigen Alias verwenden, um auf unterschiedliche KMS-Schlüssel 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 die attributebasierte Zugriffskontrolle (ABAC). Details hierzu finden Sie unter ABAC für AWS KMS.
In sind Aliase unabhängige Ressourcen AWS KMS, 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:
-
Ausführliche Informationen zu Aliassen finden Sie unter Verwenden von Aliassen.
-
Informationen zu den Formaten von Schlüsselbezeichner, einschließlich Aliasse, finden Sie unter Schlüsselkennungen () 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 unterstützt wird, der nicht Ihnen gehört und von AWS KMS dem Sie verwaltet werden. 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 von einem AWS CloudHSM Cluster unterstützt werden, und externe Schlüsselspeicher, die von einem externen Schlüsselmanager außerhalb von unterstützt werden AWS.
Weitere Informationen finden Sie unter Benutzerdefinierte Schlüsselspeicher.
Kryptografische Operationen
Bei AWS KMSkryptografischen Vorgängen handelt es sich um API-Operationen, die KMS-Schlüssel zum Schutz von Daten verwenden. Da KMS-Schlüssel im System verbleiben AWS KMS, müssen Sie anrufen, AWS KMS um einen KMS-Schlüssel für einen kryptografischen Vorgang zu verwenden.
Um kryptografische Operationen mit KMS-Schlüsseln 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 sind die AWS KMS kryptografischen Operationen 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 |
DeriveSharedSecret | Asymmetrisch | KEY_AGREEMENT |
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.
Damit alle Benutzer AWS KMS schnell reagieren und einen hohen Funktionsumfang haben, werden AWS KMS Kontingente für die Anzahl der pro Sekunde aufgerufenen kryptografischen Operationen eingerichtet. 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üsselkennungen. Wenn Sie einen KMS-Schlüssel erstellen, AWS KMS generiert er einen Schlüssel-ARN und eine Schlüssel-ID, die Eigenschaften des KMS-Schlüssels sind. Wenn Sie einen Alias erstellen, AWS KMS generiert er einen Alias-ARN auf der Grundlage des von Ihnen definierten Aliasnamens. Sie können den Schlüssel und die Alias-IDs in der AWS Management Console und in der AWS KMS API einsehen.
In der AWS KMS Konsole können Sie KMS-Schlüssel nach ihrem Schlüssel-ARN, ihrer Schlüssel-ID oder ihrem 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 haben die Parameter, die Sie zur Identifizierung eines KMS-Schlüssels verwenden, einen Namen KeyId
oder eine Variante, z. B. TargetKeyId
oderDestinationKeyId
. 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 die einzelnen Parameter finden Sie in der Parameterbeschreibung in der AWS Key Management Service API-Referenz.
Anmerkung
Achten Sie bei der Verwendung der AWS KMS API darauf, welche Schlüssel-ID Sie verwenden. 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üsselkennungen.
- 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 umfasst die AWS-Konto, 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 umfasst die AWS-Konto, 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 von Von AWS verwalteter Schlüssel für Amazon Simple Storage Service (Amazon S3) lautet beispielsweise wie folgt.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 wird, Schlüsselmaterial, das im 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 Rotation 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 ermitteln, verwenden Sie den DescribeKeyVorgang oder sehen Sie sich den Wert Origin 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.
Hilfe zum Erstellen von Schlüsseln mit Schlüsselmaterial von AWS KMS finden Sie unterErstellen 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 sichern und verwalten AWS KMS, 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 unterErstellen 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 bestimmt, 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 des CreateKeyVorgangs ist veraltet. Verwenden Sie stattdessen denKeySpec
-Parameter, der auf dieselbe Weise funktioniert. Um grundlegende Änderungen zu verhindern, umfasst die Antwort der DescribeKeyOperationenCreateKey
und jetzt sowohl als auchKeySpec
CustomerMasterKeySpec
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 ermitteln, verwenden Sie den DescribeKeyVorgang oder suchen Sie auf der Detailseite eines KMS-Schlüssels in der Konsole auf der Registerkarte Kryptografische Konfiguration nach. AWS KMS Hilfe finden Sie unter Anzeigen von Schlüsseln.
Um die Schlüsselspezifikationen einzuschränken, die Prinzipale bei der Erstellung von KMS-Schlüsseln verwenden können, verwenden Sie den Bedingungsschlüssel kms: KeySpec. Sie können den
kms:KeySpec
Bedingungsschlüssel auch verwenden, um es Prinzipalen zu ermöglichen, AWS KMS Operationen nur für KMS-Schlüssel mit einer bestimmten 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 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 eine Schlüsselverwendung vonENCRYPT_DECRYPT
, SIGN_VERIFY
GENERATE_VERIFY_MAC
, oder KEY_AGREEMENT
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üsselverwendung 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 AWS KMS Konsole die Registerkarte Kryptografische Konfiguration aus. 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, Ihre Verschlüsselungsschlüssel zu schützen, indem sie sicher gespeichert und verwaltet werden. Root-Schlüssel AWS KMS, die in den AWS KMS FIPS-validierten Hardware-Sicherheitsmodulen gespeichert sind (auch bekannt als) AWS KMS keys, verlassen diese niemals unverschlüsselt
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 kontextbezogene Informationen zu den Daten enthalten können. AWS KMS verwendet den Verschlüsselungskontext als zusätzliche authentifizierte Daten (AAD), um die 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" }
Bei der Verschlüsselung von Volumes und Snapshots, die mit dem Amazon Elastic Block Store (Amazon EBS) CreateSnapshot-Vorgang erstellt wurden, verwendet Amazon EBS beispielsweise die Volume-ID als Wert für den Verschlüsselungskontext.
"encryptionContext": { "aws:ebs:id": "
vol-abcde12345abc1234
" }
Sie können den Verschlüsselungskontext auch verwenden, um den Zugriff in Ihrem Konto zu verfeinern oder einzuschränken. AWS KMS keys Sie können den Verschlüsselungskontext als Einschränkung in Erteilungen und als Bedingung in Richtlinien verwenden.
Informationen zur Verwendung des Verschlüsselungskontextes zum Schutz der Integrität verschlüsselter Daten finden Sie im Beitrag So schützen Sie die Integrität Ihrer verschlüsselten Daten durch Verwendung AWS Key Management Service und EncryptionContext
Weitere Informationen zum Verschlüsselungskontext.
AWS KMS erzwingt die folgenden Regeln für Schlüssel und Werte im Verschlüsselungskontext.
-
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 eine Fließkommazahl, AWS KMS interpretiert er 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 EncryptionContextKeys Bedingungsschlüssel kmsEncryptionContext:: und kms: 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 Beschränkungen für die Gewährung einbeziehen, die Bedingungen für die Gewährungsberechtigungen festlegen. AWS KMS unterstützt zwei ErteilungsbeschränkungenEncryptionContextSubset
, EncryptionContextEquals
und beide beziehen den Verschlüsselungskontext in einer Anforderung für einen kryptografischen Vorgang mit ein. 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 einer EncryptionContextEquals
Grant, die den GenerateDataKeyVorgang ermöglicht, eine Grant-Beschrä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 Zuschüsse in AWS KMS.
AWS KMS verwendet AWS CloudTrail , um den Verschlüsselungskontext zu protokollieren, sodass Sie feststellen 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 eine jedoch nicht bearbeiten Von AWS verwaltete Schlüssel. Weitere Informationen finden Sie unter Wichtige Richtlinien in AWS KMS.
Gewährung
Ein Zuschuss ist ein politisches Instrument, das es AWS Prinzipalen ermöglicht, sie für kryptografische AWS KMS keys Operationen zu verwenden. Außerdem können sie damit einen KMS-Schlüssel (DescribeKey) einsehen und Zuschüsse erstellen und 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 Zuschüsse in AWS KMS.
Prüfung der KMS-Schlüsselnutzung
Sie können es verwenden AWS CloudTrail , um die Verwendung von Schlüsseln zu überprüfen. CloudTrail erstellt Protokolldateien, die einen Verlauf der AWS API-Aufrufe und verwandter Ereignisse für Ihr Konto enthalten. Diese Protokolldateien enthalten alle AWS KMS API-Anfragen, die mit der AWS Management Console, AWS SDKs und Befehlszeilentools gestellt wurden. Die Protokolldateien enthalten auch Anfragen an AWS KMS diese AWS Dienste, die in Ihrem Namen gestellt werden. 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üsselverwaltungsinfrastruktur (KMI). AWS KMS betreibt die wichtige Infrastruktur für Sie. AWS KMS erstellt und speichert sicher Ihre Root-Schlüssel, genannt AWS KMS keys. Weitere Informationen zur AWS KMS Funktionsweise finden Sie unter AWS Key Management Service Kryptografische Details.