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.
Generieren eines Datenschlüssels
Autorisierte Benutzer können die GenerateDataKey API (und verwandte Programme APIs) verwenden, um einen bestimmten Datenschlüsseltyp oder einen zufälligen Schlüssel beliebiger Länge anzufordern. Dieses Thema bietet eine vereinfachte Ansicht dieser API-Bedienung an. Einzelheiten finden Sie GenerateDataKey APIs in der AWS Key Management Service API-Referenz.
Das Folgende ist die GenerateDataKey
-Anforderungssyntax.
{ “EncryptionContext”: {“string” : “string”}, “GrantTokens”: [“string”], “KeyId”: “string”, “NumberOfBytes”: “number” }
Die Anforderung akzeptiert die folgenden Daten im JSON-Format.
- KeyId
-
Schlüssel-ID des Schlüssels, der zum Verschlüsseln des Datenschlüssels verwendet wird. Dieser Wert muss einen KMS-Schlüssel mit symmetrischer Verschlüsselung identifizieren.
Dieser Parameter muss angegeben werden.
- NumberOfBytes
-
Eine Ganzzahl, die die Anzahl der zu generierenden Bytes enthält. Dieser Parameter muss angegeben werden.
Der Anrufer muss entweder
KeySpec
oderNumberOfBytes
bereitstellen, aber nicht beides. - EncryptionContext
-
(Optional) Name-Wert-Paar, das zusätzliche Daten zur Authentifizierung während der Verschlüsselungs- und Entschlüsselungsprozesse enthält, die den Schlüssel verwenden.
- GrantTokens
-
(Optional) Eine Liste von Erteilungstoken, die Erteilungen darstellen, die Berechtigungen zum Generieren oder Verwenden eines Schlüssels bereitstellen. Weitere Informationen zu Gewährungen und Gewährungstoken finden Sie unter Authentifizierung und Zugriffssteuerung für AWS KMS im AWS Key Management Service -Entwicklerhandbuch.
Ruft nach der Authentifizierung des Befehls das aktuelle aktive EKT ab AWS KMS, das dem KMS-Schlüssel zugeordnet ist. Es leitet das EKT zusammen mit Ihrer angegebenen Anfrage und etwaigem Verschlüsselungskontext über eine geschützte Sitzung zwischen dem AWS KMS Host und einem HSM in der Domäne an ein HSM weiter.
Das HSM macht folgendes:
-
Erzeugt das angeforderte geheime Material und hält es im flüchtigen Speicher.
-
Entschlüsselt den EKT, der der Schlüssel-ID des KMS-Schlüssels entspricht, der in der Anforderung zum Abrufen des aktiven HBK = Decrypt(DKi, EKT) definiert ist.
-
Generiert eine Zufallszahl N.
-
Generiert einen 256-Bit-AES-GCM-abgeleiteten Verschlüsselungsschlüssel K aus HBK und N.
-
Verschlüsselt das geheime Material ciphertext = Encrypt(K, context, secret).
GenerateDataKey
gibt Ihnen das geheime Klartext-Material und den Chiffretext über den sicheren Kanal zwischen dem Host und dem HSM zurück. AWS KMS AWS KMS sendet es Ihnen dann über die TLS-Sitzung. AWS KMS behält den Klartext oder Chiffretext nicht bei. Ohne den Verschlüsselungstext, den Verschlüsselungskontext und die Berechtigung zur Verwendung des KMS-Schlüssels kann das zugrunde liegende Geheimnis nicht zurückgegeben werden.
Das Folgende ist die Antwortsyntax.
{ "CiphertextBlob": "blob", "KeyId": "string", "Plaintext": "blob" }
Die Verwaltung von Datenschlüsseln bleibt Ihnen als Anwendungsentwickler überlassen. Als bewährte Methode zur clientseitigen Verschlüsselung mit AWS KMS Datenschlüsseln (aber nicht mit Datenschlüsselpaaren) können Sie den verwenden. AWS Encryption SDK
Datenschlüssel können mit jeder Frequenz gedreht werden. Darüber hinaus kann der Datenschlüssel mithilfe der ReEncrypt
-API-Operation unter einem anderen KMS-Schlüssel oder einem rotierten KMS-Schlüssel neu verschlüsselt werden. Einzelheiten finden Sie ReEncryptin der AWS Key Management Service API-Referenz.