Beispiele für die Verwendung von AWS KMS mit AWS CLI
Die folgenden Codebeispiele zeigen, wie Sie Aktionen durchführen und gängige Szenarien implementieren, indem Sie die AWS Command Line Interface mit AWS KMS nutzen.
Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Während Aktionen Ihnen zeigen, wie Sie einzelne Service-Funktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien anzeigen.
Jedes Beispiel enthält einen Link zum vollständigen Quellcode, wo Sie Anleitungen zum Einrichten und Ausführen des Codes im Kontext finden.
Themen
Aktionen
Das folgende Codebeispiel zeigt, wie cancel-key-deletion verwendet wird.
- AWS CLI
-
So brechen Sie die geplante Löschung eines kundenseitig verwalteten Schlüssels ab
Im folgenden Beispiel für
cancel-key-deletionwird die geplante Löschung eines kundenseitig verwalteten KMS-Schlüssels abgebrochen.aws kms cancel-key-deletion \ --key-id1234abcd-12ab-34cd-56ef-1234567890abAusgabe:
{ "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }Wenn der Befehl
cancel-key-deletionerfolgreich ist, wird das geplante Löschen abgebrochen. Der Schlüsselstatus des KMS-Schlüssels ist jedochDisabled, sodass Sie den KMS-Schlüssel nicht in kryptografischen Vorgängen verwenden können. Verwenden Sie denenable-keyBefehl, um die Funktionalität wiederherzustellen.Weitere Informationen finden Sie unter Planen und Abbrechen des Löschens von Schlüsseln im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter CancelKeyDeletion
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie connect-custom-key-store verwendet wird.
- AWS CLI
-
So stellen Sie eine Verbindung zu einem benutzerdefinierten Schlüsselspeicher her
Im folgenden Beispiel für
connect-custom-key-storewird die Verbindung zum angegebenen benutzerdefinierten Schlüsselspeicher erneut hergestellt. Sie können einen Befehl wie diesen zur erstmaligen Herstellung einer Verbindung zu einem benutzerdefinierten Schlüsselspeicher oder zur erneuten Verbindung eines getrennten Schlüsselspeicher verwenden.Mit diesem Befehl können Sie die Verbindung zu einem AWS-CloudHSM-Schlüsselspeicher oder externen Schlüsselspeicher herstellen.
aws kms connect-custom-key-store \ --custom-key-store-idcks-1234567890abcdef0Dieser Befehl gibt keine Ausgabe zurück. Verwenden Sie den Befehl
describe-custom-key-stores, um zu überprüfen, ob der Befehl wirksam war.Informationen zum Herstellen der Verbindung zu einem AWS-CloudHSM-Schlüsselspeicher finden Sie unter Herstellen und Trennen der Verbindung zu einem AWS-CloudHSM-Schlüsselspeicher im Entwicklerhandbuch zu AWS Key Management Service.
Informationen zum Herstellen einer Verbindung zu einem externen Schlüsselspeicher finden Sie unter Herstellen und Trennen der Verbindung zu einem externen Schlüsselspeicher im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter ConnectCustomKeyStore
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie create-alias verwendet wird.
- AWS CLI
-
So erstellen Sie einen Alias für einen KMS-Schlüssel
Der folgende
create-aliasBefehl erstellt einen Alias namensexample-aliasfür den KMS-Schlüssel, der durch die Schlüssel-ID1234abcd-12ab-34cd-56ef-1234567890abidentifiziert wird.Aliasnamen müssen mit
alias/beginnen. Verwenden Sie keine Aliasnamen, die mitalias/awsbeginnen. Diese sind für die Verwendung durch AWSreserviert.aws kms create-alias \ --alias-namealias/example-alias\ --target-key-id1234abcd-12ab-34cd-56ef-1234567890abDieser Befehl gibt keine Ausgabe zurück. Verwenden Sie den Befehl
list-aliases, um den neuen Alias anzuzeigen.Weitere Informationen finden Sie unter Aliasnamen verwenden im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter CreateAlias
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie create-custom-key-store verwendet wird.
- AWS CLI
-
Beispiel 1: So erstellen Sie einen AWS-CloudHSM-Schlüsselspeicher
Im folgenden Beispiel für
create-custom-key-storewird mithilfe der erforderlichen Parameter ein AWS-CloudHSM-Schlüsselspeicher erstellt, der von einem AWS-CloudHSM-Cluster unterstützt wird. Sie können auchcustom-key-store-type``parameter with the default value: ``AWS_CLOUDHSMhinzufügen verwenden.Um die Dateieingabe für den Befehl
trust-anchor-certificatein der AWS-CLI anzugeben, ist das Präfixfile://erforderlich.aws kms create-custom-key-store \ --custom-key-store-nameExampleCloudHSMKeyStore\ --cloud-hsm-cluster-idcluster-1a23b4cdefg\ --key-store-passwordkmsPswd\ --trust-anchor-certificatefile://customerCA.crtAusgabe:
{ "CustomKeyStoreId": cks-1234567890abcdef0 }Weitere Informationen finden Sie unter Erstellen eines AWS-CloudHSM-Schlüsselspeichers im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 2: So erstellen Sie einen externen Schlüsselspeicher mit der Konnektivität eines öffentlichen Endpunkts
Im folgenden Beispiel für
create-custom-key-storewird ein externer Schlüsselspeicher (XKS) erstellt, der mit AWS KMS über das Internet kommuniziert.In diesem Beispiel verwendet der
XksProxyUriPathdas optionale Präfixexample-prefix.HINWEIS: Wenn Sie AWS-CLI-Version 1.0 verwenden, führen Sie den folgenden Befehl aus, bevor Sie einen Parameter mit einem HTTP- oder HTTPS-Wert angeben, wie beispielsweise den Parameter „XksProxyUriEndpoint“.
aws configure setcli_follow_urlparamfalseAndernfalls ersetzt die AWS-CLI-Version 1.0 den Parameterwert durch den unter dieser URI-Adresse gefundenen Inhalt.
aws kms create-custom-key-store \ --custom-key-store-nameExamplePublicEndpointXKS\ --custom-key-store-typeEXTERNAL_KEY_STORE\ --xks-proxy-connectivityPUBLIC_ENDPOINT\ --xks-proxy-uri-endpoint"https://myproxy.xks.example.com"\ --xks-proxy-uri-path"/example-prefix/kms/xks/v1"\ --xks-proxy-authentication-credential"AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="Ausgabe:
{ "CustomKeyStoreId": cks-2234567890abcdef0 }Weitere Informationen finden Sie unter Erstellen eines externen Schlüsselspeichers im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 3: So erstellen Sie einen externen Schlüsselspeicher mit der Konnektivität eines VPC-Endpunkt-Service
Das folgende Beispiel für
create-custom-key-storeerstellt einen externen Schlüsselspeicher (XKS), der einen VPC-Endpunkt-Service von Amazon für die Kommunikation mit AWS KMS verwendet.HINWEIS: Wenn Sie AWS-CLI-Version 1.0 verwenden, führen Sie den folgenden Befehl aus, bevor Sie einen Parameter mit einem HTTP- oder HTTPS-Wert angeben, wie beispielsweise den Parameter „XksProxyUriEndpoint“.
aws configure setcli_follow_urlparamfalseAndernfalls ersetzt die AWS-CLI-Version 1.0 den Parameterwert durch den unter dieser URI-Adresse gefundenen Inhalt.
aws kms create-custom-key-store \ --custom-key-store-nameExampleVPCEndpointXKS\ --custom-key-store-typeEXTERNAL_KEY_STORE\ --xks-proxy-connectivityVPC_ENDPOINT_SERVICE\ --xks-proxy-uri-endpoint"https://myproxy-private.xks.example.com"\ --xks-proxy-uri-path"/kms/xks/v1"\ --xks-proxy-vpc-endpoint-service-name"com.amazonaws.vpce.us-east-1.vpce-svc-example1"\ --xks-proxy-authentication-credential"AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="Ausgabe:
{ "CustomKeyStoreId": cks-3234567890abcdef0 }Weitere Informationen finden Sie unter Erstellen eines externen Schlüsselspeichers im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter CreateCustomKeyStore
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie create-grant verwendet wird.
- AWS CLI
-
So erstellen Sie eine Erteilung
Im folgenden Beispiel für
create-grantwird eine Erteilung erstellt, die dem BenutzerexampleUserdie Verwendung des Befehlsdecryptim Beispiel-KMS-Schlüssel1234abcd-12ab-34cd-56ef-1234567890abermöglicht. Der zurückziehende Prinzipal ist dieadminRole-Rolle. Die Erteilung verwendet die ErteilungseinschränkungEncryptionContextSubset, um diese Berechtigung nur dann zuzulassen, wenn der Verschlüsselungskontext in der Anforderungdecryptdas Verschlüsselungskontextpaar"Department": "IT"enthält.aws kms create-grant \ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --grantee-principalarn:aws:iam::123456789012:user/exampleUser\ --operationsDecrypt\ --constraintsEncryptionContextSubset={Department=IT}\ --retiring-principalarn:aws:iam::123456789012:role/adminRoleAusgabe:
{ "GrantId": "1a2b3c4d2f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2", "GrantToken": "<grant token here>" }Verwenden Sie zum Anzeigen detaillierter Informationen zur Erteilung den Befehl
list-grants.Weitere Informationen finden Sie unter Erteilungen in AWS KMS im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter CreateGrant
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie create-key verwendet wird.
- AWS CLI
-
Beispiel 1: So erstellen Sie einen kundenseitig verwalteten KMS-Schlüssel in AWS KMS
Im folgenden Beispiel für
create-keywird ein KMS-Schlüssel für die symmetrische Verschlüsselung erstellt.Zum Erstellen des grundlegenden KMS-Schlüssels, einem symmetrischen Verschlüsselungsschlüssel, müssen Sie keine Parameter angeben. Die Standardwerte für diese Parameter erstellen einen symmetrischen Verschlüsselungsschlüssel.
Da dieser Befehl keine Schlüsselrichtlinie angibt, erhält der KMS-Schlüssel die Standardschlüsselrichtlinie für KMS-Schlüssel, die programmgesteuert erstellt werden. Verwenden Sie den Befehl
get-key-policy, um die Schlüsselrichtlinie anzuzeigen. Verwenden Sie den Befehlput-key-policy, um die Schlüsselrichtlinie zu ändern.aws kms create-keyDer Befehl
create-keygibt die wichtigsten Metadaten zurück, einschließlich der Schlüssel-ID und des ARN des neuen KMS-Schlüssels. Anhand dieser Werte können Sie den KMS-Schlüssel in anderen AWS-KMS-Vorgängen identifizieren. Die Ausgabe enthält keine Tags. Verwenden Sie denlist-resource-tags command, um die Tags für einen KMS-Schlüssel anzuzeigen.Ausgabe:
{ "KeyMetadata": { "AWSAccountId": "111122223333", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": "2017-07-05T14:04:55-07:00", "CurrentKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "Description": "", "Enabled": true, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "AWS_KMS" "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }Hinweis: Mit dem Befehl
create-keykönnen Sie keinen Alias angeben. Verwenden Sie den Befehlcreate-alias, um einen Alias für den neuen KMS-Schlüssel zu erstellen.Weitere Informationen finden Sie unter Erstellen von Schlüsseln im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 2: So erstellen Sie einen asymmetrischen RSA-KMS-Schlüssel für die Verschlüsselung und Entschlüsselung
Im folgenden Beispiel für
create-keywird ein KMS-Schlüssel erstellt, der ein asymmetrisches RSA-Schlüsselpaar für die Verschlüsselung und Entschlüsselung enthält. Die Schlüsselspezifikation und -verwendung können nach dem Erstellen des Schlüssels nicht geändert werden.aws kms create-key \ --key-specRSA_4096\ --key-usageENCRYPT_DECRYPTAusgabe:
{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2021-04-05T14:04:55-07:00", "CustomerMasterKeySpec": "RSA_4096", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "RSA_4096", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "AWS_KMS" } }Weitere Informationen finden Sie unter Asymmetrische Schlüssel in AWS KMS im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 3: So erstellen Sie einen KMS-Schlüssel mit asymmetrischer Elliptic-Curve für die Signatur und Verifizierung
Um einen asymmetrischen KMS-Schlüssel zu erstellen, der ein asymmetrisches Schlüsselpaar mit elliptischer Kurve (ECC) für Signatur und Verifizierung enthält. Der Parameter
--key-usageist erforderlich, obwohlSIGN_VERIFYder einzig gültige Wert für ECC-KMS-Schlüssel ist. Die Schlüsselspezifikation und -verwendung können nach dem Erstellen des Schlüssels nicht geändert werden.aws kms create-key \ --key-specECC_NIST_P521\ --key-usageSIGN_VERIFYAusgabe:
{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2019-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "ECC_NIST_P521", "Description": "", "Enabled": true, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "ECC_NIST_P521", "KeyState": "Enabled", "KeyUsage": "SIGN_VERIFY", "MultiRegion": false, "Origin": "AWS_KMS", "SigningAlgorithms": [ "ECDSA_SHA_512" ] } }Weitere Informationen finden Sie unter Asymmetrische Schlüssel in AWS KMS im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 4: So erstellen Sie einen asymmetrischen ML-DSA-KMS-Schlüssel für Signatur und Verifizierung
In diesem Beispiel wird ein ML-DSA-Schlüssel (Module-Lattice Digital Signature Algorithm) für Signatur und Verifizierung erstellt. Der Schlüsselnutzungsparameter ist erforderlich, obwohl
SIGN_VERIFYder einzig gültige Wert für ML-DSA-Schlüssel ist.aws kms create-key \ --key-specML_DSA_65\ --key-usageSIGN_VERIFYAusgabe:
{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2019-12-02T07:48:55-07:00", "Description": "", "Enabled": true, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "ML_DSA_65", "KeyState": "Enabled", "KeyUsage": "SIGN_VERIFY", "MultiRegion": false, "Origin": "AWS_KMS", "SigningAlgorithms": [ "ML_DSA_SHAKE_256" ] } }Weitere Informationen finden Sie unter Asymmetrische Schlüssel in AWS KMS im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 5: So erstellen Sie einen HMAC-KMS-Schlüssel
Im folgenden Beispiel für
create-keywird ein HMAC-KMS-Schlüssel von 384 Bit erstellt. Der WertGENERATE_VERIFY_MACfür den Parameter--key-usageist erforderlich, obwohl er der einzig gültige Wert für HMAC-KMS-Schlüssel ist.aws kms create-key \ --key-specHMAC_384\ --key-usageGENERATE_VERIFY_MACAusgabe:
{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2022-04-05T14:04:55-07:00", "CustomerMasterKeySpec": "HMAC_384", "Description": "", "Enabled": true, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "HMAC_384", "KeyState": "Enabled", "KeyUsage": "GENERATE_VERIFY_MAC", "MacAlgorithms": [ "HMAC_SHA_384" ], "MultiRegion": false, "Origin": "AWS_KMS" } }Weitere Informationen finden Sie unter HMAC-Schlüssel in AWS KMS im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 6: So erstellen Sie einen multiregionalen KMS-Schlüssel
Im folgenden Beispiel für
create-keywird ein multiregionaler Primärschlüssel erstellt. Da die Standardwerte für alle Parameter einen symmetrischen Verschlüsselungsschlüssel erzeugen, ist nur der Parameter--multi-regionfür diesen KMS-Schlüssel erforderlich. Geben Sie in der AWS CLI nur den Parameternamen an, um darauf hinzuweisen, dass ein boolescher Parameter „true“ ist.aws kms create-key \ --multi-regionAusgabe:
{ "KeyMetadata": { "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab", "AWSAccountId": "111122223333", "CreationDate": "2021-09-02T016:15:21-09:00", "CurrentKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "mrk-1234abcd12ab34cd56ef12345678990ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": true, "MultiRegionConfiguration": { "MultiRegionKeyType": "PRIMARY", "PrimaryKey": { "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab", "Region": "us-west-2" }, "ReplicaKeys": [] }, "Origin": "AWS_KMS" } }Weitere Informationen finden Sie unter Asymmetrische Schlüssel in AWS KMS im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 7: So erstellen Sie einen KMS-Schlüssel für importiertes Schlüsselmaterial
Im folgenden Beispiel für
create-keywird ein KMS-Schlüssel ohne Schlüsselmaterial erstellt. Wenn der Vorgang abgeschlossen ist, können Sie Ihr eigenes Schlüsselmaterial in den KMS-Schlüssel importieren. Um diesen KMS-Schlüssel zu erstellen, legen Sie den Parameter--originaufEXTERNALfest.aws kms create-key \ --originEXTERNALAusgabe:
{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2019-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "Description": "", "Enabled": false, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "PendingImport", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "EXTERNAL" } }Weitere Informationen finden Sie unter Importieren von Schlüsselmaterial in AWS-KMS-Schlüssel im Entwicklerhandbuch zu AWS KMS Key Management Service.
Beispiel 6: So erstellen Sie einen Schlüssel in einem AWS CloudHSM-Schlüsselspeicher
Im folgenden Beispiel für
create-keywird ein KMS-Schlüssel im angegebenen AWS-CloudHSM-Schlüsselspeicher erstellt. Der Vorgang erstellt den KMS-Schlüssel und seine Metadaten in AWS KMS sowie das Schlüsselmaterial im AWS-CloudHSM-Cluster, der dem benutzerdefinierten Schlüsselspeicher zugeordnet ist. Die Parameter--custom-key-store-idund--originmüssen angegeben werden.aws kms create-key \ --originAWS_CLOUDHSM\ --custom-key-store-idcks-1234567890abcdef0Ausgabe:
{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CloudHsmClusterId": "cluster-1a23b4cdefg", "CreationDate": "2019-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "CustomKeyStoreId": "cks-1234567890abcdef0", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "AWS_CLOUDHSM" } }Weitere Informationen finden Sie unter AWS-CloudHSM-Schlüsselspeicher im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 8: So erstellen Sie einen KMS-Schlüssel in einem externen Schlüsselspeicher
Im folgenden Beispiel für
create-keywird ein KMS-Schlüssel im angegebenen externen Schlüsselspeicher erstellt. Die Parameter--custom-key-store-id,--originund--xks-key-idsind in diesem Befehl erforderlich.Der Parameter
--xks-key-idgibt die ID eines vorhandenen symmetrischen Verschlüsselungsschlüssels in Ihrem externen Schlüsselmanager an. Dieser Schlüssel dient als externes Schlüsselmaterial für den KMS-Schlüssel. Der Wert des Parameters--originmussEXTERNAL_KEY_STORElauten. Der Parametercustom-key-store-idmuss einen externen Schlüsselspeicher identifizieren, der mit dem Proxy seines externen Schlüsselspeichers verbunden ist.aws kms create-key \ --origin EXTERNAL_KEY_STORE \ --custom-key-store-id cks-9876543210fedcba9 \ --xks-key-id bb8562717f809024Ausgabe:
{ "KeyMetadata": { "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": "2022-12-02T07:48:55-07:00", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "CustomKeyStoreId": "cks-9876543210fedcba9", "Description": "", "Enabled": true, "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeySpec": "SYMMETRIC_DEFAULT", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "MultiRegion": false, "Origin": "EXTERNAL_KEY_STORE", "XksKeyConfiguration": { "Id": "bb8562717f809024" } } }Weitere Informationen finden Sie unter Externe Schlüsselspeicher im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter CreateKey
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie decrypt verwendet wird.
- AWS CLI
-
Beispiel 1: So verschlüsseln Sie eine verschlüsselte Nachricht mit einem symmetrischen KMS-Schlüssel (Linux und macOS)
Das folgende Beispiel für einen
decrypt-Befehl zeigt die empfohlene Methode zum Entschlüsseln von Daten mit der AWS CLI. Diese Version zeigt, wie Daten unter einem symmetrischen KMS-Schlüssel entschlüsselt werden.Geben Sie den Geheimtext in einer Datei an. Verwenden Sie im Wert des
--ciphertext-blobParameters dasfileb://Präfix, das die CLI anweist, die Daten aus einer Binärdatei zu lesen. Wenn sich die Datei nicht im aktuellen Verzeichnis befindet, geben Sie den vollständigen Dateipfad ein. Weitere Informationen zum Lesen von AWS-CLI-Parameterwerten aus einer Datei finden Sie unter „Laden von AWS-CLI-Parameter aus einer Datei“ <https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-file.html> im Benutzerhandbuch zur AWS-Befehlszeilenschnittstelle und unter „Best Practices für lokale Dateiparameter“ <https://aws.amazon.com/blogs/developer/best-practices-for-local-file-parameters/> im Tool-Blog zur AWS-Befehlszeilenschnittstelle. Geben Sie den KMS-Schlüssel an, um den Geheimtext zu entschlüsseln. Der Parameter--key-idist nicht erforderlich, wenn eine Entschlüsselung mit einem symmetrischen KMS-Schlüssel erfolgt. AWS KMS kann die Schlüssel-ID des KMS-Schlüssels abrufen, der zum Verschlüsseln der Daten aus den Metadaten im Geheimtext verwendet wurde. Es ist jedoch immer eine bewährte Methode, den von Ihnen verwendeten KMS-Schlüssel anzugeben. Diese Methode stellt sicher, dass Sie den beabsichtigten KMS-Schlüssel verwenden, und verhindert, dass Sie versehentlich einen Geheimtext mit einem KMS-Schlüssel entschlüsseln, dem Sie nicht vertrauen. Fordern Sie die Klartextausgabe als Textwert an. Der Parameter--queryweist die CLI an, nur den Wert des FeldsPlaintextaus der Ausgabe abzurufen. Der Parameter--outputgibt die Ausgabe als Text zurück. Base64-dekodieren Sie den Klartext und speichern Sie ihn in einer Datei. Im folgenden Beispiel wird der Wert des ParametersPlaintextüber eine Pipe (|) an das Base64-Dienstprogramm weitergeleitet, das ihn dekodiert. Anschließend erfolgt eine Umleitung (>) der dekodierten Ausgabe in die DateiExamplePlaintext.Bevor Sie diesen Befehl ausführen, ersetzen Sie die Beispielschlüssel-ID durch eine gültige aus Ihrem AWS-Konto.
aws kms decrypt \ --ciphertext-blobfileb://ExampleEncryptedFile\ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --outputtext\ --queryPlaintext|base64\ --decode>ExamplePlaintextFileMit diesem Befehl wird keine Ausgabe zurückgegeben. Die Ausgabe des Befehls
decryptwird Base64-dekodiert und in einer Datei gespeichert.Weitere Informationen finden Sie unter Verschlüsseln in der API-Referenz zu AWS Key Management Service.
Beispiel 2: Um eine verschlüsselte Nachricht mit einem symmetrischen KMS-Schlüssel zu entschlüsseln (Windows-Befehlszeile)
Das folgende Beispiel ist mit dem vorherigen identisch, mit dem Unterschied, dass es das Dienstprogramm
certutilzur Base64-Decodierung der Klartextdaten verwendet. Für dieses Verfahren sind zwei Befehle erforderlich, wie in den folgenden Beispielen gezeigt.Bevor Sie diesen Befehl ausführen, ersetzen Sie die Beispielschlüssel-ID durch eine gültige aus Ihrem AWS-Konto.
aws kms decrypt^--ciphertext-blobfileb://ExampleEncryptedFile^--key-id1234abcd-12ab-34cd-56ef-1234567890ab^--outputtext^--queryPlaintext>ExamplePlaintextFile.base64Führen Sie den Befehl
certutilaus.certutil -decode ExamplePlaintextFile.base64 ExamplePlaintextFileAusgabe:
Input Length = 18 Output Length = 12 CertUtil: -decode command completed successfully.Weitere Informationen finden Sie unter Verschlüsseln in der API-Referenz zu AWS Key Management Service.
Beispiel 3: So verschlüsseln Sie eine verschlüsselte Nachricht mit einem asymmetrischen KMS-Schlüssel (Linux und macOS)
Das folgende Beispiel für den Befehl
decryptzeigt, wie Daten entschlüsselt werden, die unter einem asymmetrischen RSA-KMS-Schlüssel verschlüsselt wurden.Bei Verwendung eines asymmetrischen KMS-Schlüssels ist der Parameter
encryption-algorithmerforderlich, der den Algorithmus zum Verschlüsseln des Klartextes angibt.Bevor Sie diesen Befehl ausführen, ersetzen Sie die Beispielschlüssel-ID durch eine gültige aus Ihrem AWS-Konto.
aws kms decrypt \ --ciphertext-blobfileb://ExampleEncryptedFile\ --key-id0987dcba-09fe-87dc-65ba-ab0987654321\ --encryption-algorithmRSAES_OAEP_SHA_256\ --outputtext\ --queryPlaintext|base64\ --decode>ExamplePlaintextFileMit diesem Befehl wird keine Ausgabe zurückgegeben. Die Ausgabe des Befehls
decryptwird Base64-dekodiert und in einer Datei gespeichert.Weitere Informationen finden Sie unter Asymmetrische Schlüssel in AWS KMS im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter Decrypt
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie delete-alias verwendet wird.
- AWS CLI
-
So löschen Sie einen AWS-KMS-Alias
Das folgende Beispiel für
delete-aliaslöscht die Tabellealias/example-alias. Der Aliasname muss mit „alias/“ beginnen.aws kms delete-alias \ --alias-namealias/example-aliasMit diesem Befehl wird keine Ausgabe zurückgegeben. Verwenden Sie den Befehl
list-aliases, um den Alias zu suchen.Weitere Informationen finden Sie unter Löschen eines Alias im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter DeleteAlias
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie delete-custom-key-store verwendet wird.
- AWS CLI
-
So löschen Sie einen benutzerdefinierten Schlüsselspeicher
Das folgende Beispiel für
delete-custom-key-storelöscht den angegebenen benutzerdefinierten Schlüsselspeicher.Das Löschen eines AWS-CloudHSM-Schlüsselspeichers hat keine Auswirkungen auf den zugehörigen CloudHSM-Cluster. Das Löschen eines externen Schlüsselspeichers hat keine Auswirkungen auf den zugehörigen externen Schlüsselspeicher-Proxy, den externen Schlüsselmanager oder die externen Schlüssel.
HINWEIS: Bevor Sie einen benutzerdefinierten Schlüsselspeicher löschen können, müssen Sie das Löschen aller KMS-Schlüssel im benutzerdefinierten Schlüsselspeicher planen und dann warten, bis diese KMS-Schlüssel gelöscht sind. Trennen Sie anschließend den benutzerdefinierten Schlüsselspeicher. Hilfe zum Suchen der KMS-Schlüssel in Ihrem benutzerdefinierten Schlüsselspeicher finden Sie unter Löschen eines AWS-CloudHSM-Schlüsselspeichers (API) im Entwicklerhandbuch zu AWS Key Management Service.
delete-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0Dieser Befehl gibt keine Ausgabe zurück. Um zu überprüfen, ob der benutzerdefinierte Schlüsselspeicher gelöscht wurde, verwenden Sie den Befehl
describe-custom-key-stores.Weitere Informationen zum Löschen eines AWS-CloudHSM-Schlüsselspeichers finden Sie unter Löschen eines AWS-CloudHSM-Schlüsselspeichers im Entwicklerhandbuch zu AWS Key Management Service.
Weitere Informationen zum Löschen eines externen Schlüsselspeichers finden Sie unter Löschen eines externen Schlüsselspeichers im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter DeleteCustomKeyStore
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie delete-imported-key-material verwendet wird.
- AWS CLI
-
So löschen Sie importiertes Schlüsselmaterial aus einem KMS-Schlüssel
Im folgenden Beispiel für
delete-imported-key-materialwird Schlüsselmaterial gelöscht, das in einen KMS-Schlüssel importiert wurde.aws kms delete-imported-key-material \ --key-id1234abcd-12ab-34cd-56ef-1234567890abAusgabe:
{ "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" }Weitere Informationen finden Sie unter Löschen von importiertem Schlüsselmaterial im Entwicklerhandbuch zu AWS KMS Key Management Service.
-
API-Details finden Sie unter DeleteImportedKeyMaterial
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie derive-shared-secret verwendet wird.
- AWS CLI
-
So leiten Sie ein freigegebenes Secret ab
Im folgenden Beispiel für
derive-shared-secretwird ein gemeinsamer geheimer Schlüssel mithilfe eines Schlüsselvereinbarungsalgorithmus abgeleitet.Sie müssen ein asymmetrisches KMS-Schlüsselpaar mit einer vom NIST empfohlenen elliptischen Kurve (ECC) oder SM2 (nur Regionen in China) mit einem
KeyUsage-Wert vonKEY_AGREEMENTverwenden, um DeriveSharedSecret aufzurufen.aws kms derive-shared-secret \ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --key-agreement-algorithmECDH\ --public-key"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvH3Yj0wbkLEpUl95Cv1cJVjsVNSjwGq3tCLnzXfhVwVvmzGN8pYj3U8nKwgouaHbBWNJYjP5VutbbkKS4Kv4GojwZBJyHN17kmxo8yTjRmjR15SKIQ8cqRA2uaERMLnpztIXdZp232PQPbWGxDyXYJ0aJ5EFSag"Ausgabe:
{ "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "SharedSecret": "MEYCIQCKZLWyTk5runarx6XiAkU9gv3lbwPO/pHa+DXFehzdDwIhANwpsIV2g/9SPWLLsF6p/hiSskuIXMTRwqrMdVKWTMHG", "KeyAgreementAlgorithm": "ECDH", "KeyOrigin": "AWS_KMS" }Weitere Informationen finden Sie unter DeriveSharedSecret in der API-Referenz zu AWS Key Management Service.
-
API-Details finden Sie unter DeriveSharedSecret
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie describe-custom-key-stores verwendet wird.
- AWS CLI
-
Beispiel 1: So rufen Sie Details zu einem AWS-CloudHSM-Schlüsselspeicher ab
Im folgenden Beispiel für
describe-custom-key-storewerden die Details zum angegebenen AWS-CloudHSM-Schlüsselspeicher angezeigt. Der Befehl ist für alle Arten von benutzerdefinierten Schlüsselspeichern identisch, aber die Ausgabe unterscheidet sich je nach Schlüsselspeichertyp und, bei einem externen Schlüsselspeicher, je nach dessen Verbindungsoption.Diese Funktion zeigt standardmäßig Informationen zu allen benutzerdefinierten Schlüsselspeichern im Konto und in der Region an. Verwenden Sie den Parameter
custom-key-store-nameodercustom-key-store-id, um Informationen zu einem bestimmten benutzerdefinierten Schlüsselspeicher anzuzeigen.aws kms describe-custom-key-stores \ --custom-key-store-nameExampleCloudHSMKeyStoreDie Ausgabe dieses Befehls enthält nützliche Informationen zum AWS-CloudHSM-Schlüsselspeicher, einschließlich seines Verbindungsstatus (
ConnectionState). Wenn der VerbindungsstatusFAILEDlautet, enthält die Ausgabe das FeldConnectionErrorCodemit einer Beschreibung des Problems.Ausgabe:
{ "CustomKeyStores": [ { "CloudHsmClusterId": "cluster-1a23b4cdefg", "ConnectionState": "CONNECTED", "CreationDate": "2022-04-05T14:04:55-07:00", "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleExternalKeyStore", "TrustAnchorCertificate": "<certificate appears here>" } ] }Weitere Informationen finden Sie unter Anzeigen eines AWS-CloudHSM-Schlüsselspeichers im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 2: So rufen Sie Details zu einem externen Schlüsselspeicher mit öffentlicher Endpunkt-Konnektivität ab
Im folgenden Beispiel für
describe-custom-key-storewerden Details zum angegebenen externen Schlüsselspeicher angezeigt. Der Befehl ist für alle Arten von benutzerdefinierten Schlüsselspeichern identisch, aber die Ausgabe unterscheidet sich je nach Schlüsselspeichertyp und, bei einem externen Schlüsselspeicher, je nach dessen Verbindungsoption.Diese Funktion zeigt standardmäßig Informationen zu allen benutzerdefinierten Schlüsselspeichern im Konto und in der Region an. Verwenden Sie den Parameter
custom-key-store-nameodercustom-key-store-id, um Informationen zu einem bestimmten benutzerdefinierten Schlüsselspeicher anzuzeigen.aws kms describe-custom-key-stores \ --custom-key-store-idcks-9876543210fedcba9Die Ausgabe dieses Befehls enthält nützliche Informationen über den externen Schlüsselspeicher, einschließlich seines Verbindungsstatus (
ConnectionState). Wenn der VerbindungsstatusFAILEDlautet, enthält die Ausgabe das FeldConnectionErrorCodemit einer Beschreibung des Problems.Ausgabe:
{ "CustomKeyStores": [ { "CustomKeyStoreId": "cks-9876543210fedcba9", "CustomKeyStoreName": "ExampleXKS", "ConnectionState": "CONNECTED", "CreationDate": "2022-12-02T07:48:55-07:00", "CustomKeyStoreType": "EXTERNAL_KEY_STORE", "XksProxyConfiguration": { "AccessKeyId": "ABCDE12345670EXAMPLE", "Connectivity": "PUBLIC_ENDPOINT", "UriEndpoint": "https://myproxy.xks.example.com", "UriPath": "/example-prefix/kms/xks/v1" } } ] }Weitere Informationen finden Sie unter Anzeigen eines externen Schlüsselspeichers im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 3: So rufen Sie Details zu einem externen Schlüsselspeicher mit der Konnektivität eines VPC-Endpunkt-Service
Im folgenden Beispiel für
describe-custom-key-storewerden Details zum angegebenen externen Schlüsselspeicher angezeigt. Der Befehl ist für alle Arten von benutzerdefinierten Schlüsselspeichern identisch, aber die Ausgabe unterscheidet sich je nach Schlüsselspeichertyp und, bei einem externen Schlüsselspeicher, je nach dessen Verbindungsoption.Diese Funktion zeigt standardmäßig Informationen zu allen benutzerdefinierten Schlüsselspeichern im Konto und in der Region an. Verwenden Sie den Parameter
custom-key-store-nameodercustom-key-store-id, um Informationen zu einem bestimmten benutzerdefinierten Schlüsselspeicher anzuzeigen.aws kms describe-custom-key-stores \ --custom-key-store-idcks-2234567890abcdef0Die Ausgabe dieses Befehls enthält nützliche Informationen über den externen Schlüsselspeicher, einschließlich seines Verbindungsstatus (
ConnectionState). Wenn der VerbindungsstatusFAILEDlautet, enthält die Ausgabe das FeldConnectionErrorCodemit einer Beschreibung des Problems.Ausgabe:
{ "CustomKeyStores": [ { "CustomKeyStoreId": "cks-3234567890abcdef0", "CustomKeyStoreName": "ExampleVPCExternalKeyStore", "ConnectionState": "CONNECTED", "CreationDate": "2022-12-22T07:48:55-07:00", "CustomKeyStoreType": "EXTERNAL_KEY_STORE", "XksProxyConfiguration": { "AccessKeyId": "ABCDE12345670EXAMPLE", "Connectivity": "VPC_ENDPOINT_SERVICE", "UriEndpoint": "https://myproxy-private.xks.example.com", "UriPath": "/kms/xks/v1", "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example1" } } ] }Weitere Informationen finden Sie unter Anzeigen eines externen Schlüsselspeichers im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter DescribeCustomKeyStores
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie describe-key verwendet wird.
- AWS CLI
-
Beispiel 1: So finden Sie detaillierte Informationen zu einem KMS-Schlüssel
Im folgenden Beispiel für
describe-keywerden detaillierte Informationen zu dem von AWS verwalteten Schlüssel für Amazon S3 im Beispielkonto und in der Beispielregion abgerufen. Mit diesem Befehl können Sie Details zu Schlüsseln suchen, die von AWS und von Kunden verwaltet werden.Verwenden Sie den Parameter
key-id, um den KMS-Schlüssel anzugeben. In diesem Beispiel wird der Wert für einen Aliasnamen verwendet, Sie können in diesem Befehl jedoch eine Schlüssel-ID, einen Schlüssel-ARN, einen Aliasnamen oder einen Alias-ARN verwenden.aws kms describe-key \ --key-idalias/aws/s3Ausgabe:
{ "KeyMetadata": { "AWSAccountId": "846764612917", "KeyId": "b8a9477d-836c-491f-857e-07937918959b", "Arn": "arn:aws:kms:us-west-2:846764612917:key/b8a9477d-836c-491f-857e-07937918959b", "CurrentKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", "CreationDate": 2017-06-30T21:44:32.140000+00:00, "Enabled": true, "Description": "Default KMS key that protects my S3 objects when no other key is defined", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "AWS", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }Weitere Informationen finden Sie unter Anzeigen von Schlüsseln im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 2: So rufen Sie Details zu einem asymmetrischen RSA-KMS-Schlüssel ab
Im folgenden Beispiel für
describe-keywerden detaillierte Informationen zu einem asymmetrischen RSA-KMS-Schlüssel abgerufen, der für Signatur und Verifizierung verwendet wird.aws kms describe-key \ --key-id1234abcd-12ab-34cd-56ef-1234567890abAusgabe:
{ "KeyMetadata": { "AWSAccountId": "111122223333", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": "2019-12-02T19:47:14.861000+00:00", "CustomerMasterKeySpec": "RSA_2048", "Enabled": false, "Description": "", "KeyState": "Disabled", "Origin": "AWS_KMS", "MultiRegion": false, "KeyManager": "CUSTOMER", "KeySpec": "RSA_2048", "KeyUsage": "SIGN_VERIFY", "SigningAlgorithms": [ "RSASSA_PKCS1_V1_5_SHA_256", "RSASSA_PKCS1_V1_5_SHA_384", "RSASSA_PKCS1_V1_5_SHA_512", "RSASSA_PSS_SHA_256", "RSASSA_PSS_SHA_384", "RSASSA_PSS_SHA_512" ] } }Beispiel 3: So rufen Sie Details zu einem Replikatschlüssel für mehrere Regionen ab
Im folgenden Beispiel für
describe-keywerden Metadaten für einen multiregionalen Replikatschlüssel abgerufen. Der multiregionale Schlüssel ist ein symmetrischer Verschlüsselungsschlüssel. Die Ausgabe einesdescribe-key-Befehls für einen beliebigen Schlüssel mit mehreren Regionen gibt Informationen zum Primärschlüssel und allen zugehörigen Replikaten zurück.aws kms describe-key \ --key-idarn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890abAusgabe:
{ "KeyMetadata": { "MultiRegion": true, "AWSAccountId": "111122223333", "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "CreationDate": "2021-06-28T21:09:16.114000+00:00", "CurrentKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", "Description": "", "Enabled": true, "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab", "KeyManager": "CUSTOMER", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "Origin": "AWS_KMS", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegionConfiguration": { "MultiRegionKeyType": "PRIMARY", "PrimaryKey": { "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "us-west-2" }, "ReplicaKeys": [ { "Arn": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "eu-west-1" }, { "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "ap-northeast-1" }, { "Arn": "arn:aws:kms:sa-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab", "Region": "sa-east-1" } ] } } }Beispiel 4: So rufen Sie Details zu einem asymmetrischen HMAC-KMS-Schlüssel ab
Im folgenden Beispiel für
describe-keywerden detaillierte Informationen zu einem HMAC-KMS-Schlüssel abgerufen.aws kms describe-key \ --key-id1234abcd-12ab-34cd-56ef-1234567890abAusgabe:
{ "KeyMetadata": { "AWSAccountId": "123456789012", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Arn": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": "2022-04-03T22:23:10.194000+00:00", "Enabled": true, "Description": "Test key", "KeyUsage": "GENERATE_VERIFY_MAC", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "HMAC_256", "MacAlgorithms": [ "HMAC_SHA_256" ], "MultiRegion": false } }-
API-Details finden Sie unter DescribeKey
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie disable-key-rotation verwendet wird.
- AWS CLI
-
So deaktivieren Sie die automatische Drehung eines KMS-Schlüssels
Im folgenden Beispiel für
disable-key-rotationwird die automatische Rotation eines kundenseitig verwalteten KMS-Schlüssels deaktiviert. Verwenden Sie den Befehlenable-key-rotation, um die automatische Rotation erneut zu aktivieren.aws kms disable-key-rotation \ --key-idarn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890abMit diesem Befehl wird keine Ausgabe zurückgegeben. Verwenden Sie den Befehl
get-key-rotation-status, um zu überprüfen, ob die automatische Rotation für den KMS-Schlüssel deaktiviert ist.Weitere Informationen finden Sie unter Rotieren von Schlüsseln im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter DisableKeyRotation
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie disable-key verwendet wird.
- AWS CLI
-
So deaktivieren Sie einen KMS-Schlüssel vorübergehend
Der folgende Befehl
disable-keydeaktiviert einen kundenseitig verwalteten KMS-Schlüssel. Verwenden Sie den Befehlenable-key, um den KMS-Schlüssel erneut zu aktivieren.aws kms disable-key \ --key-id1234abcd-12ab-34cd-56ef-1234567890abMit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter Aktivieren und Deaktivieren von Schlüsseln im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter DisableKey
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie disconnect-custom-key-store verwendet wird.
- AWS CLI
-
So trennen Sie einen benutzerdefinierten Schlüsselspeicher
Im folgenden Beispiel für
disconnect-custom-key-storewird die Verbindung eines benutzerdefinierten Schlüsselspeichers zu seinem AWS-CloudHSM-Cluster getrennt. Sie können die Verbindung zu einem Schlüsselspeicher trennen, um ein Problem zu beheben, seine Einstellungen zu aktualisieren oder um zu verhindern, dass KMS-Schlüssel im Schlüsselspeicher für kryptografische Vorgänge verwendet werden.Dieser Befehl ist für alle benutzerdefinierten Schlüsselspeicher identisch, einschließlich AWS-CloudHSM-Schlüsselspeicher und externer Schlüsselspeicher.
Vor der Ausführung dieses Befehls müssen Sie die Beispiel-ID des benutzerdefinierten Schlüsselspeichers durch eine gültige ID ersetzen.
$ aws kms disconnect-custom-key-store \ --custom-key-store-id cks-1234567890abcdef0Dieser Befehl erzeugt keine Ausgabe. Vergewissern Sie sich, dass der Befehl wirksam war, und verwenden Sie den Befehl
describe-custom-key-stores.Weitere Informationen zum Trennen eines AWS-CloudHSM-Schlüsselspeichers finden Sie unter Verbinden und Trennen eines AWS-CloudHSM-Schlüsselspeichers im Entwicklerhandbuch zu AWS Key Management Service.
Weitere Informationen zum Trennen eines externen Schlüsselspeichers finden Sie unter Herstellen und Trennen der Verbindung zu einem externen Schlüsselspeicher im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter DisconnectCustomKeyStore
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie enable-key-rotation verwendet wird.
- AWS CLI
-
So aktivieren Sie die automatische Rotation eines KMS-Schlüssels
Das folgende Beispiel für
enable-key-rotationermöglicht die automatische Rotation eines kundenseitig verwalteten KMS-Schlüssels mit einem Rotationszeitraum von 180 Tagen. Der KMS-Schlüssel wird ab dem Datum, an dem dieser Befehl abgeschlossen wurde, ein Jahr (ungefähr 365 Tage) rotiert, und danach jedes Jahr.Der Parameter
--key-ididentifiziert den KMS-Schlüssel. In diesem Beispiel wird ein Schlüssel-ARN-Wert verwendet, Sie können jedoch entweder die Schlüssel-ID oder den ARN des KMS-Schlüssels verwenden. Der Parameter--rotation-period-in-daysgibt die Anzahl der Tage zwischen den einzelnen Rotationsdatumsangaben an. Geben Sie einen Wert zwischen 90 und 2560 an. Wenn kein Wert angegeben wird, lautet der Standardwert 365 Tage.aws kms enable-key-rotation \ --key-idarn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\ --rotation-period-in-days180Mit diesem Befehl wird keine Ausgabe zurückgegeben. Verwenden Sie den Befehl
get-key-rotation-status, um zu überprüfen, ob der KMS-Schlüssel aktiviert ist.Weitere Informationen finden Sie unter Rotieren von Schlüsseln im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter EnableKeyRotation
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie enable-key verwendet wird.
- AWS CLI
-
So aktivieren Sie einen KMS-Schlüssel
Das folgende Beispiel für
enable-keyaktiviert einen kundenseitig verwalteten Schlüssel. Sie können einen Befehl wie diesen verwenden, um einen KMS-Schlüssel zu aktivieren, den Sie mit dem Befehldisable-keyvorübergehend deaktiviert haben. Sie können ihn auch verwenden, um einen deaktivierten KMS-Schlüssel zu aktivieren, er zum Löschen vorgesehen war und der Löschvorgang abgebrochen wurde.Verwenden Sie den Parameter
key-id, um den KMS-Schlüssel anzugeben. In diesem Beispiel wird ein Schlüssel-ID-Wert verwendet, Sie können jedoch eine Schlüssel-ID- oder einen Schlüssel-ARN-Wert in diesem Befehl verwenden.Ersetzen Sie vor Ausführung dieses Befehls die Beispielschlüssel-ID durch eine gültige.
aws kms enable-key \ --key-id1234abcd-12ab-34cd-56ef-1234567890abMit diesem Befehl wird keine Ausgabe zurückgegeben. Verwenden Sie den Befehl
describe-key, um zu überprüfen, ob der KMS-Schlüssel aktiviert ist. Sehen Sie sich die Werte der FelderKeyStateundEnabledund in der Ausgabe vondescribe-keyan.Weitere Informationen finden Sie unter Aktivieren und Deaktivieren von Schlüsseln im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter EnableKey
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie encrypt verwendet wird.
- AWS CLI
-
Beispiel 1: So verschlüsseln Sie den Inhalt einer Datei unter Linux oder MacOS
Das folgende Befehl
encryptzeigt die empfohlene Methode zum erneuten Verschlüsseln von Daten mit der AWS CLI.aws kms encrypt \ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --plaintextfileb://ExamplePlaintextFile\ --outputtext\ --queryCiphertextBlob|base64\ --decode>ExampleEncryptedFileDer Befehl führt mehrere Aktionen aus:
Er verwendet den Parameter
--plaintext, um die zu verschlüsselnden Daten anzugeben. Dieser Parameterwert muss Base64-kodiert sein. Der Wert des Parametersplaintextmuss Base64-kodiert sein, oder Sie müssen das Präfixfileb://verwenden, das die AWS CLI anweist, Binärdaten aus der Datei zu lesen. Wenn sich die Datei nicht im aktuellen Verzeichnis befindet, geben Sie den vollständigen Dateipfad ein. Beispiel:fileb:///var/tmp/ExamplePlaintextFileoderfileb://C:\Temp\ExamplePlaintextFile. Weitere Informationen zum Lesen von AWS-CLI-Parameterwerten aus einer Datei finden Sie unter Laden von Parametern aus einer Datei im Benutzerhandbuch zur AWS-Befehlszeilenschnittstelle und unter Best Practices für lokale Dateiparameterim Tool-Blog zur AWS-Befehlszeile. Verwendet die Parameter --outputund--query, um die Ausgabe des Befehls zu steuern. Diese Parameter extrahieren die verschlüsselten Daten, den so genannten Geheimtext, aus der Befehlsausgabe. Weitere Informationen zur Steuerung der Ausgabe finden Sie unter Steuern der Befehlsausgabe im Benutzerhandbuch zur AWS-Befehlszeilenschnittstelle. Er verwendet das Dienstprogrammbase64, um die extrahierte Ausgabe in Binärdaten zu dekodieren. Der Geheimtext, der von einem erfolgreichenencrypt-Befehl zurückgegeben wird, ist Base64-codierter Text. Sie müssen diesen Text dekodieren, bevor Sie ihn mit der AWS CLI entschlüsseln können. Speichert den binären Geheimtext in einer Datei. Der letzte Teil des Befehls (> ExampleEncryptedFile) speichert den binären Geheimtext in einer Datei, um die Entschlüsselung zu vereinfachen. Einen Beispielbefehl, der die AWS CLI zum Entschlüsseln von Daten verwendet, finden Sie in den Entschlüsselungsbeispielen.Beispiel 2: Verwenden der AWS CLI zum Verschlüsseln von Daten unter Windows
Dieses Beispiel ist mit dem vorherigen identisch, mit dem Unterschied, dass es das Tool
certutilanstelle vonbase64verwendet. Für dieses Verfahren sind zwei Befehle erforderlich, wie in den folgenden Beispielen gezeigt.aws kms encrypt \ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --plaintextfileb://ExamplePlaintextFile\ --outputtext\ --queryCiphertextBlob>C:\Temp\ExampleEncryptedFile.base64certutil-decodeC:\Temp\ExampleEncryptedFile.base64 C:\Temp\ExampleEncryptedFileBeispiel 3: Verschlüsseln mit einem asymmetrischen KMS-Schlüssel
Der folgende Befehl
encryptzeigt, wie Klartext mit einem asymmetrischen KMS-Schlüssel verschlüsselt wird. Der Parameter--encryption-algorithmmuss angegeben werden. Wie bei allenencrypt-CLI-Befehlen muss der ParameterplaintextBase64-codiert sein, oder Sie müssen das Präfixfileb://verwenden, das die AWS CLI anweist, Binärdaten aus der Datei zu lesen.aws kms encrypt \ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --encryption-algorithmRSAES_OAEP_SHA_256\ --plaintextfileb://ExamplePlaintextFile\ --outputtext\ --queryCiphertextBlob|base64\ --decode>ExampleEncryptedFileMit diesem Befehl wird keine Ausgabe zurückgegeben.
-
API-Details finden Sie unter Encrypt
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie generate-data-key-pair-without-plaintext verwendet wird.
- AWS CLI
-
So generieren Sie ein asymmetrisches Datenschlüsselpaar vom Typ ECC NIST P384
Im folgenden Beispiel für
generate-data-key-pair-without-plaintextwird ein ECC-NIST-P384-Schlüsselpaar zur Verwendung außerhalb von AWS angefordert.Der Befehl gibt einen öffentlichen Klartextschlüssel und eine mit dem angegebenen KMS-Schlüssel verschlüsselte Kopie des privaten Schlüssels zurück. Es gibt keinen privaten Klartext-Schlüssel zurück. Sie können den verschlüsselten privaten Schlüssel sicher zusammen mit den verschlüsselten Daten speichern und AWS KMS aufrufen, um den privaten Schlüssel zu entschlüsseln, wenn Sie ihn benötigen.
Um ein asymmetrisches ECC-NIST-P384-Datenschlüsselpaar anzufordern, verwenden Sie den Parameter
key-pair-specmit dem WertECC_NIST_P384.Bei dem von Ihnen angegebenen KMS-Schlüssel muss es sich um einen KMS-Schlüssel mit symmetrischer Verschlüsselung handeln, d. h. um einen KMS-Schlüssel mit einem
KeySpec-Wert vonSYMMETRIC_DEFAULT.HINWEIS: Die Werte in der Ausgabe dieses Beispiels sind zur Anzeige gekürzt.
aws kms generate-data-key-pair-without-plaintext \ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --key-pair-specECC_NIST_P384Ausgabe:
{ "PrivateKeyCiphertextBlob": "AQIDAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAFFxmiD134doUDzMGmfCEtcAAAHaTCCB2UGCSqGSIb3DQEHBqCCB1...", "PublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3A3eGMyPrvSn7+LdlJE1oUoQV5HpEuHAVbdOyND+NmYDH/mL1OSIEuLrcdZ5hrMH4pk83r40l...", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", "KeyPairSpec": "ECC_NIST_P384" }PublicKeyundPrivateKeyCiphertextBlobwerden im Base64-kodierten Format zurückgegeben.Weitere Informationen finden Sie unter Datenschlüsselpaare im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter GenerateDataKeyPairWithoutPlaintext
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie generate-data-key-pair verwendet wird.
- AWS CLI
-
So generieren Sie ein asymmetrisches 2048-Bit-RSA-Datenschlüsselpaar
Im folgenden Beispiel für
generate-data-key-pairwird ein asymmetrisches 2048-Bit-RSA-Datenschlüsselpaar zur Verwendung außerhalb von angefordert. AWS Der Befehl gibt einen öffentlichen und einen privaten Klartextschlüssel zur sofortigen Verwendung und Löschung sowie eine Kopie des privaten Schlüssels zurück, die unter dem angegebenen KMS-Schlüssel verschlüsselt ist. Sie können den verschlüsselten Privatschlüssel sicher mit den verschlüsselten Daten speichern.Um ein asymmetrisches 2048-Bit-RSA-Datenschlüsselpaar anzufordern, verwenden Sie den Parameter
key-pair-specmit dem WertRSA_2048.Bei dem von Ihnen angegebenen KMS-Schlüssel muss es sich um einen KMS-Schlüssel mit symmetrischer Verschlüsselung handeln, d. h. um einen KMS-Schlüssel mit einem
KeySpec-Wert vonSYMMETRIC_DEFAULT.HINWEIS: Die Werte in der Ausgabe dieses Beispiels sind zur Anzeige gekürzt.
aws kms generate-data-key-pair \ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --key-pair-specRSA_2048Ausgabe:
{ "PrivateKeyCiphertextBlob": "AQIDAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAFFxmiD134doUDzMGmfCEtcAAAHaTCCB2UGCSqGSIb3DQEHBqCCB1...", "PrivateKeyPlaintext": "MIIG/QIBADANBgkqhkiG9w0BAQEFAASCBucwggbjAgEAAoIBgQDcDd4YzI+u9Kfv4t2UkTWhShBXkekS4cBVt07I0P42ZgMf+YvU5IgS4ut...", "PublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3A3eGMyPrvSn7+LdlJE1oUoQV5HpEuHAVbdOyND+NmYDH/mL1OSIEuLrcdZ5hrMH4pk83r40l...", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" "KeyPairSpec": "RSA_2048" }PublicKey,PrivateKeyPlaintextundPrivateKeyCiphertextBlobwerden im Base64-kodierten Format zurückgegeben.Weitere Informationen finden Sie unter Datenschlüsselpaare im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter GenerateDataKeyPair
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie generate-data-key-without-plaintext verwendet wird.
- AWS CLI
-
So generieren Sie einen symmetrischen 256-Bit-Datenschlüssel ohne Klartextschlüssel
Im folgenden Beispiel für
generate-data-key-without-plaintextwird ein symmetrisches 256-Bit-RSA-Datenschlüsselpaar zur Verwendung außerhalb von AWS angefordert. Sie können AWS KMS aufrufen, um den Datenschlüssel zu entschlüsseln, wenn Sie bereit sind, ihn zu verwenden.Um einen 256-Bit-Datenschlüssel anzufordern, verwenden Sie den Parameter
key-specmit dem WertAES_256. Um einen 128-Bit-Datenschlüssel anzufordern, verwenden Sie den Parameterkey-specmit dem WertAES_128. Verwenden Sie für alle anderen Datenschlüssellängen den Parameternumber-of-bytes.Bei dem von Ihnen angegebenen KMS-Schlüssel muss es sich um einen KMS-Schlüssel mit symmetrischer Verschlüsselung handeln, d. h. um einen KMS-Schlüssel mit dem Wert SYMMETRIC_DEFAULT.
aws kms generate-data-key-without-plaintext \ --key-id"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"\ --key-specAES_256Ausgabe:
{ "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogL", "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" }Der
CiphertextBlob(verschlüsselte Datenschlüssel) wird im Base64-codierten Format zurückgegeben.Weitere Informationen finden Sie unter Datenschlüssel im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter GenerateDataKeyWithoutPlaintext
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie generate-data-key verwendet wird.
- AWS CLI
-
Beispiel 1: So generieren Sie einen symmetrischen 256-Bit-Datenschlüssel
Im folgenden Beispiel für
generate-data-keywird ein symmetrischer 256-Bit-Datenschlüssel zur Verwendung außerhalb von AWS angefordert. Der Befehl gibt einen Klartextdatenschlüssel zur sofortigen Verwendung und Löschung sowie eine Kopie dieses Datenschlüssels zurück, die unter dem angegebenen KMS-Schlüssel verschlüsselt ist. Sie können den verschlüsselten Datenschlüssel sicher neben den verschlüsselten Daten speichern.Um einen 256-Bit-Datenschlüssel anzufordern, verwenden Sie den Parameter
key-specmit dem WertAES_256. Um einen 128-Bit-Datenschlüssel anzufordern, verwenden Sie den Parameterkey-specmit dem WertAES_128. Verwenden Sie für alle anderen Datenschlüssellängen den Parameternumber-of-bytes.Bei dem von Ihnen angegebenen KMS-Schlüssel muss es sich um einen KMS-Schlüssel mit symmetrischer Verschlüsselung handeln, d. h. um einen KMS-Schlüssel mit dem Wert SYMMETRIC_DEFAULT.
aws kms generate-data-key \ --key-idalias/ExampleAlias\ --key-specAES_256Ausgabe:
{ "Plaintext": "VdzKNHGzUAzJeRBVY+uUmofUGGiDzyB3+i9fVkh3piw=", "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6", "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogLqPWZconQhwHAIBEIA7d9AC7GeJJM34njQvg4Wf1d5sw0NIo1MrBqZa+YdhV8MrkBQPeac0ReRVNDt9qleAt+SHgIRF8P0H+7U=" }Der
Plaintext(Klartextdatenschlüssel) und derCiphertextBlob(verschlüsselte Datenschlüssel) werden im Base64-codierten Format zurückgegeben.Weitere Informationen finden Sie unter Datenschlüssel im Entwicklerhandbuch zu AWS Key Management Service. Beispiel 2: So generieren Sie einen symmetrischen 512-Bit-Datenschlüssel
Im folgenden Beispiel für
generate-data-keywird ein symmetrischer 512-Bit-Datenschlüssel für Ver- und Entschlüsselung angefordert. Der Befehl gibt einen Klartextdatenschlüssel zur sofortigen Verwendung und Löschung sowie eine Kopie dieses Datenschlüssels zurück, die unter dem angegebenen KMS-Schlüssel verschlüsselt ist. Sie können den verschlüsselten Datenschlüssel sicher neben den verschlüsselten Daten speichern.Verwenden Sie den Parameter
number-of-bytes, um eine andere Schlüssellänge als 128 oder 256 Bit anzufordern. Um einen 512-Bit-Datenschlüssel anzufordern, verwendet das folgende Beispiel den Parameternumber-of-bytesmit einem Wert von 64 (Byte).Bei dem von Ihnen angegebenen KMS-Schlüssel muss es sich um einen KMS-Schlüssel mit symmetrischer Verschlüsselung handeln, d. h. um einen KMS-Schlüssel mit dem Wert SYMMETRIC_DEFAULT.
HINWEIS: Die Werte in der Ausgabe dieses Beispiels sind zur Anzeige gekürzt.
aws kms generate-data-key \ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --number-of-bytes64Ausgabe:
{ "CiphertextBlob": "AQIBAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAEnX/QQNmMwDfg2korNMEc8AAACaDCCAmQGCSqGSIb3DQEHBqCCAlUwggJRAgEAMIICSgYJKoZ...", "Plaintext": "ty8Lr0Bk6OF07M2BWt6qbFdNB+G00ZLtf5MSEb4al3R2UKWGOp06njAwy2n72VRm2m7z/Pm9Wpbvttz6a4lSo9hgPvKhZ5y6RTm4OovEXiVfBveyX3DQxDzRSwbKDPk/...", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" }Der
Plaintext(Klartextdatenschlüssel) und derCiphertextBlob(verschlüsselte Datenschlüssel) werden im Base64-codierten Format zurückgegeben.Weitere Informationen finden Sie unter Datenschlüssel im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter GenerateDataKey
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie generate-mac verwendet wird.
- AWS CLI
-
Beispiel 1: So generieren Sie einen HMAC für eine Nachricht
Der folgende Befehl
generate-macgeneriert einen HMAC für eine Nachricht, einen HMAC-KMS-Schlüssel und einen MAC-Algorithmus. Der Algorithmus muss vom angegebenen HMAC-KMS-Schlüssel unterstützt werden.In AWS CLI v2 muss der Wert des Parameters
messageBase64-codiert sein. Oder Sie können die Nachricht in einer Datei speichern und das Präfixfileb://verwenden, das die AWS CLI anweist, Binärdaten aus der Datei zu lesen.Bevor Sie diesen Befehl ausführen, ersetzen Sie die Beispielschlüssel-ID durch eine gültige aus Ihrem AWS-Konto. Die Schlüssel-ID muss einen HMAC-KMS-Schlüssel mit der Schlüsselverwendung von
GENERATE_VERIFY_MACdarstellen.msg=(echo 'Hello World' | base64) aws kms generate-mac \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --message fileb://Message \ --mac-algorithm HMAC_SHA_384Ausgabe:
{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Mac": "<HMAC_TAG>", "MacAlgorithm": "HMAC_SHA_384" }Weitere Informationen zum Verwenden von HMAC-KMS-Schlüsseln in AWS KMS finden Sie unter HMAC-Schlüssel in AWS KMS im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 2: So speichern Sie einen HMAC in einer Datei (Linux und macOs)
Das folgende Beispiel für
generate-macgeneriert einen HMAC für eine Kurznachricht, die in einer lokalen Datei gespeichert ist. Der Befehl ruft auch die EigenschaftMacaus der Antwort ab, dekodiert sie mit Base64 und speichert sie in der ExampleMac-Datei. Sie können die MAC-Datei in einemverify-mac-Befehl verwenden, der den MAC verifiziert.Der Befehl
generate-macerfordert eine Base64-codierte Nachricht und einen MAC-Algorithmus, den Ihr HMAC-KMS-Schlüssel unterstützt. Verwenden Sie den Befehldescribe-key, um die MAC-Algorithmen abzurufen, die Ihr KMS-Schlüssel unterstützt.Bevor Sie diesen Befehl ausführen, ersetzen Sie die Beispielschlüssel-ID durch eine gültige aus Ihrem AWS-Konto. Die Schlüssel-ID muss einen asymmetrischen KMS-Schlüssel mit der Schlüsselverwendung GENERATE_VERIFY_MAC darstellen.
echo 'hello world' | base64 > EncodedMessage aws kms generate-mac \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --message fileb://EncodedMessage \ --mac-algorithm HMAC_SHA_384 \ --output text \ --query Mac | base64 --decode > ExampleMacMit diesem Befehl wird keine Ausgabe zurückgegeben. In diesem Beispiel wird die Eigenschaft
Macder Ausgabe extrahiert und in einer Datei gespeichert.Weitere Informationen zum Verwenden von HMAC-KMS-Schlüsseln in AWS KMS finden Sie unter HMAC-Schlüssel in AWS KMS im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter GenerateMac
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie generate-random verwendet wird.
- AWS CLI
-
Beispiel 1: So generieren Sie eine 256-Bit-Zufallsbytezeichenfolge (Linux oder macOs)
Das folgende Beispiel für
generate-randomgeneriert eine Base64-kodierte 256-Bit-Zufallsbytezeichenfolge (32 Byte). Das Beispiel dekodiert die Bytezeichenfolge und speichert sie in der Zufallsdatei.Wenn Sie diesen Befehl ausführen, müssen Sie den Parameter
number-of-bytesverwenden, um die Länge des Zufallswerts in Byte anzugeben.Sie geben keinen KMS-Schlüssel an, wenn Sie diesen Befehl ausführen. Die Zufallsbytezeichenfolge steht in keinem Zusammenhang mit einem KMS-Schlüssel.
Standardmäßig generiert AWS KMS die Zufallszahl. Wenn Sie jedoch einen benutzerdefinierten Schlüsselspeicher angeben, wird die zufällige Bytezeichenfolge in dem AWS-CloudHSM-Cluster generiert, der dem benutzerdefinierten Schlüsselspeicher zugeordnet ist.
Im folgenden Beispiel werden die folgenden Parameter und Werte verwendet:
Es verwendet den erforderlichen Parameter
--number-of-bytesmit dem Wert32, um eine 32-Byte-Zeichenfolge (256-Bit) anzufordern. Es verwendet den Parameter--outputmit dem Wert vontext, um die AWS CLI anzuweisen, die Ausgabe als Text und nicht als JSON zurückzugeben. Es verwendet den--query parameter, um den Wert der EigenschaftPlaintextaus der Antwort zu extrahieren. Es leitet die Ausgabe über eine Pipe ( | ) der Ausgabe des Befehls an das Dienstprogrammbase64weiter, das die extrahierte Ausgabe dekodiert. Es verwendet den Umleitungsoperator ( > ), um die dekodierte Bytezeichenfolge in der DateiExampleRandomzu speichern. Es verwendet den Umleitungsoperator ( > ), um den binären Geheimtext in einer Datei zu speichern.aws kms generate-random \ --number-of-bytes 32 \ --output text \ --query Plaintext | base64 --decode > ExampleRandomMit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter GenerateRandom in der API-Referenz zu AWS Key Management Service.
Beispiel 2: So generieren Sie eine 256-Bit-Zufallszahl zu generieren (Windows-Befehlszeile)
Das folgende Beispiel verwendet den Befehl
generate-random, um eine Base64-kodierte 256-Bit-Zufallsbytezeichenfolge (32 Byte) zu generieren. Das Beispiel dekodiert die Bytezeichenfolge und speichert sie in der Zufallsdatei. Dieses Beispiel ist mit dem vorherigen Beispiel identisch, mit dem Unterschied, dass es das Dienstprogrammcertutilin Windows verwendet, um die zufällige Bytefolge vor dem Speichern in einer Datei mit Base64 zu dekodieren.Generieren Sie zunächst eine Base64-kodierte Zufallsbytezeichenfolge und speichern Sie sie in einer temporären Datei,
ExampleRandom.base64.aws kms generate-random \ --number-of-bytes32\ --outputtext\ --queryPlaintext>ExampleRandom.base64Da die Ausgabe des Befehls
generate-randomin einer Datei gespeichert wird, erzeugt dieses Beispiel keine Ausgabe.Verwenden Sie nun den Befehl
certutil -decode, um die Base64-kodierte Bytezeichenfolge in der DateiExampleRandom.base64zu dekodieren. Anschließend wird die dekodierte Bytezeichenfolge in der DateiExampleRandomgespeichert.certutil -decode ExampleRandom.base64 ExampleRandomAusgabe:
Input Length = 18 Output Length = 12 CertUtil: -decode command completed successfully.Weitere Informationen finden Sie unter GenerateRandom in der API-Referenz zu AWS Key Management Service.
-
API-Details finden Sie unter GenerateRandom
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-key-policy verwendet wird.
- AWS CLI
-
So kopieren Sie eine Schlüsselrichtlinie von einem KMS-Schlüssel in einen anderen
Im folgenden Beispiel für
get-key-policywird die Schlüsselrichtlinie von einem KMS-Schlüssel abgerufen und in einer Textdatei gespeichert. Anschließend wird die Richtlinie eines anderen KMS-Schlüssels ersetzt, wobei die Textdatei als Richtlinieneingabe verwendet wird.Da für den Parameter
--policyvonput-key-policyeine Zeichenfolge erforderlich ist, müssen Sie die Option--output textverwenden, um die Ausgabe als Textzeichenfolge statt als JSON zurückzugeben.aws kms get-key-policy \ --policy-namedefault\ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --queryPolicy\ --outputtext>policy.txtawskmsput-key-policy\ --policy-namedefault\ --key-id0987dcba-09fe-87dc-65ba-ab0987654321\ --policyfile://policy.txtMit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter PutKeyPolicy in der AWS-KMS-API-Referenz.
-
API-Details finden Sie unter GetKeyPolicy
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-key-rotation-status verwendet wird.
- AWS CLI
-
So rufen Sie den Rotationsstatus für einen KMS-Schlüssel ab
Im folgenden Beispiel für
get-key-rotation-statuswerden Informationen zum Rotationsstatus des angegebenen KMS-Schlüssels zurückgegeben, einschließlich der Angabe, ob die automatische Rotation aktiviert ist, des Rotationszeitraums und des nächsten geplanten Rotationsdatums. Sie können diesen Befehl für kundenseitig verwaltete und von AWS verwaltete KMS-Schlüssel verwenden. Alle von AWS verwalteten KMS-Schlüssel werden jedoch automatisch alle drei Jahre rotiert.aws kms get-key-rotation-status \ --key-id1234abcd-12ab-34cd-56ef-1234567890abAusgabe:
{ "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyRotationEnabled": true, "NextRotationDate": "2024-02-14T18:14:33.587000+00:00", "RotationPeriodInDays": 365 }Weitere Informationen finden Sie unter Rotieren von Schlüsseln im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter GetKeyRotationStatus
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-parameters-for-import verwendet wird.
- AWS CLI
-
So rufen Sie die Elemente ab, die für den Import von Schlüsselmaterial in einen KMS-Schlüssel erforderlich sind
Im folgenden Beispiel für
get-parameters-for-importwerden der öffentliche Schlüssel und Import-Token abgerufen, die Sie zum Importieren von Schlüsselmaterial in einen KMS-Schlüssel benötigen. Achten Sie bei Verwendung des Befehlsimport-key-materialdarauf, dass Sie das Import-Token und das mit dem öffentlichen Schlüssel verschlüsselte Schlüsselmaterial verwenden, die im selben Befehlget-parameters-for-importzurückgegeben wurden. Außerdem muss es sich bei dem in diesem Befehl angegebenen Wrapping-Algorithmus um einen Algorithmus handeln, mit Sie das Schlüsselmaterial mit dem öffentlichen Schlüssel verschlüsseln.Verwenden Sie den Parameter
key-id, um den KMS-Schlüssel anzugeben. In diesem Beispiel wird eine Schlüssel-ID verwendet, Sie können jedoch eine Schlüssel-ID oder einen Schlüssel-ARN in diesem Befehl verwenden.aws kms get-parameters-for-import \ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --wrapping-algorithmRSAES_OAEP_SHA_256\ --wrapping-key-specRSA_2048Ausgabe:
{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "PublicKey": "<public key base64 encoded data>", "ImportToken": "<import token base64 encoded data>", "ParametersValidTo": 1593893322.32 }Weitere Informationen finden Sie unter Herunterladen des öffentlichen Schlüssels und Importieren des Tokens im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter GetParametersForImport
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-public-key verwendet wird.
- AWS CLI
-
Beispiel 1: So laden Sie den öffentlichen Schlüssel eines asymmetrischen KMS-Schlüssels herunter
Im folgenden Beispiel für
get-public-keyladen Sie den öffentlichen Schlüssel eines asymmetrischen KMS-Schlüssels herunter.Die Ausgabe enthält nicht nur den öffentlichen Schlüssel, sondern auch Informationen, die Sie benötigen, um den öffentlichen Schlüssel sicher außerhalb von AWS KMS zu verwenden, einschließlich der Schlüsselnutzung und der unterstützten Verschlüsselungsalgorithmen.
aws kms get-public-key \ --key-id1234abcd-12ab-34cd-56ef-1234567890abAusgabe:
{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "PublicKey": "jANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAl5epvg1/QtJhxSi2g9SDEVg8QV/...", "CustomerMasterKeySpec": "RSA_4096", "KeyUsage": "ENCRYPT_DECRYPT", "EncryptionAlgorithms": [ "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256" ] }Weitere Informationen zum Verwenden von asymmetrischen KMS-Schlüsseln in AWS KMS finden Sie unter Asymmetrische Schlüssel in AWS KMS im Entwicklerhandbuch zu AWS Key Management Service. Beispiel 2: So konvertieren Sie einen öffentlichen Schlüssel in das DER-Format (Linux und macOS)
Im folgenden Beispiel für
get-public-keywird der öffentliche Schlüssel eines asymmetrischen KMS-Schlüssels heruntergeladen und in einer DER-Datei gespeichert.Wenn Sie den Befehl
get-public-keyin der AWS CLI verwenden, gibt er einen DER-codierten öffentlichen X.509-Schlüssel zurück, der Base64-kodiert ist. In diesem Beispiel wird der Wert der EigenschaftPublicKeyals Text abgerufen.PublicKeywird Base64-dekodiert und in der Dateipublic_key.dergespeichert. Der Parameteroutputgibt die Ausgabe als Text statt als JSON zurück. Der Parameter--queryruft nur die EigenschaftPublicKeyab, und nicht die Eigenschaften, die Sie zum sicheren Abrufen des öffentlichen Schlüssels außerhalb von AWS KMS benötigen.Bevor Sie diesen Befehl ausführen, ersetzen Sie die Beispielschlüssel-ID durch eine gültige aus Ihrem AWS-Konto.
aws kms get-public-key \ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --outputtext\ --queryPublicKey|base64--decode>public_key.derMit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen zum Verwenden von asymmetrischen KMS-Schlüsseln in AWS KMS finden Sie unter Asymmetrische Schlüssel in AWS KMS im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter GetPublicKey
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie import-key-material verwendet wird.
- AWS CLI
-
So importieren Sie Schlüsselmaterial in einen KMS-Schlüssel
Im folgenden Beispiel für
import-key-materialwird Schlüsselmaterial in einen KMS-Schlüssel hochgeladen, der ohne Schlüsselmaterial erstellt wurde. Der Schlüsselstatus des KMS-Schlüssels mussPendingImportlauten.Dieser Befehl verwendet Schlüsselmaterial, das Sie mit dem öffentlichen Schlüssel verschlüsselt haben, den der
get-parameters-for-importBefehl zurückgegeben hat. Außerdem wird das Import-Token aus demselben Befehlget-parameters-for-importverwendet.Der Parameter
expiration-modelgibt an, dass das Schlüsselmaterial automatisch zu der durch den Parametervalid-toangegebenen Datums- und Uhrzeitangabe abläuft. Wenn das Schlüsselmaterial abgelaufen ist, löscht AWS KMS das Schlüsselmaterial, der Schlüsselstatus des KMS-Schlüssels ändert sichPending importund der KMS-Schlüssel kann nicht mehr verwendet werden. Um den Schlüssel wiederherzustellen, müssen Sie dasselbe Schlüsselmaterial erneut in den Schlüssel importieren. Um anderes Schlüsselmaterial zu verwenden, müssen Sie einen neuen KMS-Schlüssel erstellen.Bevor Sie diesen Befehl ausführen, ersetzen Sie die Beispielschlüssel-ID durch eine gültige Schlüssel-ID oder einen gültigen Schlüssel-ARN aus Ihrem AWS-Konto.
aws kms import-key-material \ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --encrypted-key-materialfileb://EncryptedKeyMaterial.bin\ --import-tokenfileb://ImportToken.bin\ --expiration-modelKEY_MATERIAL_EXPIRES\ --valid-to2021-09-21T19:00:00ZAusgabe:
{ "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6" }Weitere Informationen zum Importieren von Schlüsselmaterial finden Sie unter Importieren von Schlüsselmaterial im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter ImportKeyMaterial
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie list-aliases verwendet wird.
- AWS CLI
-
Beispiel 1: So listen Sie alle Aliasnamen in einem Konto und einer Region von AWS auf
Im folgenden Beispiel wird der Befehl
list-aliasesverwendet, um alle Aliasnamen in der Standardregion des AWS- Kontos aufzulisten. Die Ausgabe enthält Aliasnamen, die mit KMS-Schlüsseln verknüpft sind, die von AWS verwaltet werden, und von KMS-Schlüsseln, die kundenseitig verwalteten werden.aws kms list-aliasesAusgabe:
{ "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/testKey", "AliasName": "alias/testKey", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/FinanceDept", "AliasName": "alias/FinanceDept", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/dynamodb", "AliasName": "alias/aws/dynamodb", "TargetKeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/ebs", "AliasName": "alias/aws/ebs", "TargetKeyId": "0987ab65-43cd-21ef-09ab-87654321cdef" }, ... ] }Beispiel 2: So listen Sie alle Aliasnamen für einen bestimmten KMS-Schlüssel auf
Im folgenden Beispiel werden der Befehl
list-aliasesund sein Parameterkey-idverwendet, um alle Aliasname aufzulisten, die einem bestimmten KMS-Schlüssel zugeordnet sind.Jeder Alias ist nur mit einem KMS-Schlüssel verbunden, ein KMS-Schlüssel kann jedoch über mehrere Aliasse verfügen. Dieser Befehl ist sehr hilfreich, da die AWS-KMS-Konsole nur einen Alias für jeden KMS-Schlüssel auflistet. Um alle Aliasnamen für einen KMS-Schlüssel zu suchen, müssen Sie den Befehl
list-aliasesverwenden.In diesem Beispiel wird die Schlüssel-ID des KMS-Schlüssels für den Parameter
--key-idverwendet. Sie können in diesem Befehl jedoch eine Schlüssel-ID, einen Schlüssel-ARN, einen Aliasnamen oder einen Alias-ARN verwenden.aws kms list-aliases --key-id1234abcd-12ab-34cd-56ef-1234567890abAusgabe:
{ "Aliases": [ { "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/oregon-test-key", "AliasName": "alias/oregon-test-key" }, { "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/project121-test", "AliasName": "alias/project121-test" } ] }Weitere Informationen finden Sie unter Arbeiten mit Aliasnamen im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter ListAliases
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie list-grants verwendet wird.
- AWS CLI
-
So zeigen Sie die Erteilungen für einen AWS-KMS-Schlüssel an
Im folgenden Beispiel für
list-grantswerden alle Erteilungen für den angegebenen von AWS verwalteten KMS-Schlüssel für Amazon DynamoDB in Ihrem Konto angezeigt. Diese Erteilung ermöglicht es DynamoDB, den KMS-Schlüssel in Ihrem Namen zu verwenden, um eine DynamoDB-Tabelle zu verschlüsseln, bevor sie auf die Festplatte geschrieben wird. Sie können einen Befehl wie diesen verwenden, um die Erteilungen für die von AWS und die vom Kunden verwalteten KMS-Schlüssel im Konto und in der Region von AWS anzuzeigen.Dieser Befehl verwendet den Parameter
key-idmit einer Schlüssel-ID, um den KMS-Schlüssel zu identifizieren. Sie können den KMS-Schlüssel mit einer Schlüssel-ID oder einem Schlüssel-ARN identifizieren. Verwenden Sie den Befehl AWS oder den Befehllist-keys, um die Schlüssel-ID oder den Schlüssel-ARN eines vonlist-aliasesverwalteten KMS-Schlüssels abzurufen.aws kms list-grants \ --key-id1234abcd-12ab-34cd-56ef-1234567890abDie Ausgabe zeigt, dass Amazon DynamoDB durch die Erteilung dazu berechtigt ist, den KMS-Schlüssel für kryptografische Vorgänge zu verwenden und Details zum KMS-Schlüssel (
DescribeKey) anzuzeigen und Erteilungen (RetireGrant) zurückzuziehen. Die EinschränkungEncryptionContextSubsetbeschränkt diese Berechtigung auf Anforderungen, die die angegebenen Verschlüsselungskontextpaare enthalten. Daher sind die Berechtigungen in der Erteilung nur für das angegebene Konto und die angegebene DynamoDB-Tabelle wirksam.{ "Grants": [ { "Constraints": { "EncryptionContextSubset": { "aws:dynamodb:subscriberId": "123456789012", "aws:dynamodb:tableName": "Services" } }, "IssuingAccount": "arn:aws:iam::123456789012:root", "Name": "8276b9a6-6cf0-46f1-b2f0-7993a7f8c89a", "Operations": [ "Decrypt", "Encrypt", "GenerateDataKey", "ReEncryptFrom", "ReEncryptTo", "RetireGrant", "DescribeKey" ], "GrantId": "1667b97d27cf748cf05b487217dd4179526c949d14fb3903858e25193253fe59", "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "RetiringPrincipal": "dynamodb.us-west-2.amazonaws.com", "GranteePrincipal": "dynamodb.us-west-2.amazonaws.com", "CreationDate": "2021-05-13T18:32:45.144000+00:00" } ] }Weitere Informationen finden Sie unter Erteilungen in AWS KMS im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter ListGrants
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie list-key-policies verwendet wird.
- AWS CLI
-
So rufen Sie die Namen von Schlüsselrichtlinien für einen KMS-Schlüssel ab
Im folgenden Beispiel für
list-key-policieswerden die Namen der Schlüsselrichtlinien für einen kundenseitig verwalteten Schlüssel im Beispielkonto und in der Beispielregion abgerufen. Mit diesem Befehl können Sie die Namen der von AWS und der kundenseitig verwalteten Schlüsselrichtlinien suchen.Da der einzige gültige Name der Schlüsselrichtlinie
defaultlautet, ist dieser Befehl nicht hilfreich.Verwenden Sie den Parameter
key-id, um den KMS-Schlüssel anzugeben. In diesem Beispiel wird ein Schlüssel-ID-Wert verwendet, Sie können jedoch eine Schlüssel-ID oder einen Schlüssel-ARN in diesem Befehl verwenden.aws kms list-key-policies \ --key-id1234abcd-12ab-34cd-56ef-1234567890abAusgabe:
{ "PolicyNames": [ "default" ] }Weitere Informationen zu Schlüsselrichtlinien von AWS KMS finden Sie unter Verwenden von Schlüsselrichtlinien in AWS KMS im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter ListKeyPolicies
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie list-key-rotations verwendet wird.
- AWS CLI
-
So rufen Sie Informationen zu allen abgeschlossenen Rotationen von Schlüsselmaterialen ab
Im folgenden Beispiel für
list-key-rotationswerden Informationen zu allen abgeschlossenen Rotationen von Schlüsselmaterialien für den angegebenen KMS-Schlüssel aufgeführt.aws kms list-key-rotations \ --key-id1234abcd-12ab-34cd-56ef-1234567890abAusgabe:
{ "Rotations": [ { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "RotationDate": "2024-03-02T10:11:36.564000+00:00", "RotationType": "AUTOMATIC" }, { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "RotationDate": "2024-04-05T15:14:47.757000+00:00", "RotationType": "ON_DEMAND" } ], "Truncated": false }Weitere Informationen finden Sie unter Rotieren von Schlüsseln im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter ListKeyRotations
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie list-keys verwendet wird.
- AWS CLI
-
So rufen Sie die KMS-Schlüssel für ein Konto und eine Region ab
Im folgenden Beispiel für
list-keyswerden die KMS-Schlüssel für ein Konto und eine Region abgerufen. Der Befehl gibt sowohl von AWS als auch kundenseitig verwaltete Schlüssel zurück.aws kms list-keysAusgabe:
{ "Keys": [ { "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, { "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321" }, { "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", "KeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" } ] }Weitere Informationen finden Sie unter Anzeigen von Schlüsseln im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter ListKeys
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie list-resource-tags verwendet wird.
- AWS CLI
-
So rufen Sie die Tags eines KMS-Schlüssels ab
Das folgende Beispiel für
list-resource-tagsruft die Tags für einen KMS-Schlüssel ab. Verwenden Sie den Befehltag-resource, um Ressourcen-Tags zu KMS-Schlüsseln hinzuzufügen oder zu ersetzen. Die Ausgabe zeigt, dass dieser KMS-Schlüssel über zwei Ressourcentags mit jeweils einem Schlüssel und einem Wert verfügt.Verwenden Sie den Parameter
key-id, um den KMS-Schlüssel anzugeben. In diesem Beispiel wird ein Schlüssel-ID-Wert verwendet, Sie können jedoch eine Schlüssel-ID oder einen Schlüssel-ARN in diesem Befehl verwenden.aws kms list-resource-tags \ --key-id1234abcd-12ab-34cd-56ef-1234567890abAusgabe:
{ "Tags": [ { "TagKey": "Dept", "TagValue": "IT" }, { "TagKey": "Purpose", "TagValue": "Test" } ], "Truncated": false }Weitere Informationen zum Verwenden von Tags in AWS KMS finden Sie unter Kennzeichnen von Schlüsseln im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter ListResourceTags
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie list-retirable-grants verwendet wird.
- AWS CLI
-
So zeigen Sie die Erteilungen an, die ein Prinzipal zurückziehen kann
Im folgenden Beispiel für
list-retirable-grantswerden alle Erteilungen angezeigt, die der BenutzerExampleAdminmit den KMS-Schlüsseln in einem Konto oder einer Region von AWS zurückziehen kann. Sie können einen Befehl wie diesen verwenden, um die Erteilungen anzuzeigen, die jeder Konto-Prinzipal für KMS-Schlüssel im Konto oder in der Region von AWS zurückziehen kann.Der Wert des erforderlichen Parameters
retiring-principalmuss der Amazon-Ressourcenname (ARN) eines Kontos, eines Benutzers oder einer Rolle sein.Sie können in diesem Befehl keinen Service für den Wert
retiring-principalangeben, auch wenn ein Service der zurückziehende Prinzipal sein kann. Verwenden Sie den Befehllist-grants, um die Erteilungen zu ermitteln, in denen ein bestimmter Service der zurückziehende Prinzipal ist.Die Ausgabe zeigt, dass der Benutzer
ExampleAdminberechtigt ist, Erteilungen für zwei verschiedene KMS-Schlüssel im Konto und in der Region zurückzuziehen. Zusätzlich zum zurückziehenden Prinzipal ist das Konto berechtigt, jede Erteilung im Konto zurückzuziehen.aws kms list-retirable-grants \ --retiring-principalarn:aws:iam::111122223333:user/ExampleAdminAusgabe:
{ "Grants": [ { "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "GrantId": "156b69c63cb154aa21f59929ff19760717be8d9d82b99df53e18b94a15a5e88e", "Name": "", "CreationDate": 2021-01-14T20:17:36.419000+00:00, "GranteePrincipal": "arn:aws:iam::111122223333:user/ExampleUser", "RetiringPrincipal": "arn:aws:iam::111122223333:user/ExampleAdmin", "IssuingAccount": "arn:aws:iam::111122223333:root", "Operations": [ "Encrypt" ], "Constraints": { "EncryptionContextSubset": { "Department": "IT" } } }, { "KeyId": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "GrantId": "8c94d1f12f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2", "Name": "", "CreationDate": "2021-02-02T19:49:49.638000+00:00", "GranteePrincipal": "arn:aws:iam::111122223333:role/ExampleRole", "RetiringPrincipal": "arn:aws:iam::111122223333:user/ExampleAdmin", "IssuingAccount": "arn:aws:iam::111122223333:root", "Operations": [ "Decrypt" ], "Constraints": { "EncryptionContextSubset": { "Department": "IT" } } } ], "Truncated": false }Weitere Informationen finden Sie unter Erteilungen in AWS KMS im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter ListRetirableGrants
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie put-key-policy verwendet wird.
- AWS CLI
-
So ändern Sie die Schlüsselrichtlinie für einen KMS-Schlüssel
Im folgenden Beispiel für
put-key-policywird die Schlüsselrichtlinie für einen kundenseitig verwalteten Schlüssel geändert.Erstellen Sie zunächst eine Schlüsselrichtlinie und speichern Sie sie in einer lokalen JSON-Datei. In diesem Beispiel handelt es sich um die Datei
key_policy.json. Sie können die Schlüsselrichtlinie auch als Zeichenfolgenwert des Parameterspolicyangeben.Die erste Anweisung in dieser Schlüsselrichtlinie erteilt dem AWS-Konto die Berechtigung, IAM-Richtlinien zur Steuerung des Zugriffs auf den KMS-Schlüssel zu verwenden. Die zweite Anweisung erteilt dem Benutzer
test-userdie Berechtigung, die Befehledescribe-keyundlist-keysauf dem KMS-Schlüssel auszuführen.Inhalt von
key_policy.json:{ "Version":"2012-10-17", "Id" : "key-default-1", "Statement" : [ { "Sid" : "Enable IAM User Permissions", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" }, { "Sid" : "Allow Use of Key", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:user/test-user" }, "Action" : [ "kms:DescribeKey", "kms:ListKeys" ], "Resource" : "*" } ] }In diesem Beispiel wird der KMS-Schlüssel mit der Schlüssel-ID identifiziert, Sie können jedoch auch einen Schlüssel-ARN verwenden. Der Befehl verwendet den Parameter
policy, um die Schlüsselrichtlinie festzulegen. Um anzugeben, dass sich die Richtlinie in einer Datei befindet, wird das erforderliche Präfixfile://verwendet. Dieses Präfix ist erforderlich, um Dateien auf allen unterstützten Betriebssystemen zu identifizieren. Schließlich verwendet der Befehl den Parameterpolicy-namemit dem Wertdefault. Wenn kein Richtlinienwert angegeben wird, lautet der Standardwertdefault. Der einzige gültige Wert istdefault.aws kms put-key-policy \ --policy-namedefault\ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --policyfile://key_policy.jsonDieser Befehl erzeugt keine Ausgabe. Verwenden Sie den Befehl, um zu überprüfen, ob der Befehl
get-key-policywirksam war. Mit dem folgenden Beispielbefehl wird die Schlüsselrichtlinie für denselben KMS-Schlüssel abgerufen. Der Parameteroutputmit dem Werttextgibt ein leicht lesbares Textformat zurück.aws kms get-key-policy \ --policy-namedefault\ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --outputtextAusgabe:
{ "Version":"2012-10-17", "Id" : "key-default-1", "Statement" : [ { "Sid" : "Enable IAM User Permissions", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" }, { "Sid" : "Allow Use of Key", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:user/test-user" }, "Action" : [ "kms:Describe", "kms:List" ], "Resource" : "*" } ] }Weitere Informationen finden Sie unter Ändern einer Schlüsselrichtlinie im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter PutKeyPolicy
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie re-encrypt verwendet wird.
- AWS CLI
-
Beispiel 1: So verschlüsseln Sie eine verschlüsselte Nachricht unter einem symmetrischen KMS-Schlüssel (Linux und macOS) erneut.
Das folgende Beispiel für einen
re-encrypt-Befehl zeigt die empfohlene Methode zum erneuten Verschlüsseln von Daten mit der AWS CLI.Geben Sie den Geheimtext in einer Datei an. Verwenden Sie im Wert des
--ciphertext-blobParameters dasfileb://Präfix, das die CLI anweist, die Daten aus einer Binärdatei zu lesen. Wenn sich die Datei nicht im aktuellen Verzeichnis befindet, geben Sie den vollständigen Dateipfad ein. Weitere Informationen zum Lesen von AWS-CLI-Parameterwerten aus einer Datei finden Sie unter Laden von AWS-CLI-Parametern aus einer Datei im Benutzerhandbuch zu den AWS-Befehlszeilenschnittstelle und unter Best Practices für lokale Dateiparameterim Tool-Blog zur AWS-Befehlszeile. Geben Sie den KMS-Quellschlüssel an, der den Geheimtext entschlüsselt. Der Parameter --source-key-idist bei der Entschlüsselung mit KMS-Schlüsseln mit symmetrischer Verschlüsselung nicht erforderlich.AWS KMS kann den KMS-Schlüssel abrufen, der zum Verschlüsseln der Daten aus den Metadaten im Geheimtext-Blob verwendet wurde. Es ist jedoch immer eine bewährte Methode, den von Ihnen verwendeten KMS-Schlüssel anzugeben. Diese Methode stellt sicher, dass Sie den beabsichtigten KMS-Schlüssel verwenden, und verhindert, dass Sie versehentlich einen Geheimtext mit einem KMS-Schlüssel entschlüsseln, dem Sie nicht vertrauen. Geben Sie den KMS-Schlüssel an, der die Daten erneut verschlüsselt. Der Parameter--destination-key-idist immer erforderlich. In diesem Beispiel wird ein Schlüssel-ARN verwendet, Sie können jedoch jede gültige Schlüsselkennung verwenden. Fordern Sie die Klartextausgabe als Textwert an. Der Parameter--queryweist die CLI an, nur den Wert des FeldsPlaintextaus der Ausgabe abzurufen. Der Parameter--outputgibt die Ausgabe als Text zurück. Base64-dekodieren Sie den Klartext und speichern Sie ihn in einer Datei. Im folgenden Beispiel wird der Wert des ParametersPlaintextüber eine Pipe (|) an das Base64-Dienstprogramm weitergeleitet, das ihn dekodiert. Anschließend erfolgt eine Umleitung (>) der dekodierten Ausgabe in die DateiExamplePlaintext.Bevor Sie diesen Befehl ausführen, ersetzen Sie die Beispielschlüssel-IDs durch eine gültige aus Ihrem AWS-Konto.
aws kms re-encrypt \ --ciphertext-blobfileb://ExampleEncryptedFile\ --source-key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --destination-key-id0987dcba-09fe-87dc-65ba-ab0987654321\ --queryCiphertextBlob\ --outputtext|base64--decode>ExampleReEncryptedFileMit diesem Befehl wird keine Ausgabe zurückgegeben. Die Ausgabe des Befehls
re-encryptwird Base64-dekodiert und in einer Datei gespeichert.Weitere Informationen finden Sie unter ReEncrypt in der API-Referenz zu AWS Key Management Service.
Beispiel 2: So verschlüsseln Sie eine verschlüsselte Nachricht unter einem symmetrischen KMS-Schlüssel (Windows-Befehlszeile) erneut.
Das folgende Beispiel für den Befehl
re-encryptist mit dem vorherigen identisch, mit dem Unterschied, dass es das Dienstprogrammcertutilzur Base64-Decodierung der Klartextdaten verwendet. Für dieses Verfahren sind zwei Befehle erforderlich, wie in den folgenden Beispielen gezeigt.Bevor Sie diesen Befehl ausführen, ersetzen Sie die Beispielschlüssel-ID durch eine gültige aus Ihrem AWS-Konto.
aws kms re-encrypt^--ciphertext-blobfileb://ExampleEncryptedFile^--source-key-id1234abcd-12ab-34cd-56ef-1234567890ab^--destination-key-id0987dcba-09fe-87dc-65ba-ab0987654321^--queryCiphertextBlob^--outputtext>ExampleReEncryptedFile.base64Verwenden Sie dann das Dienstprogramm
certutil.certutil -decode ExamplePlaintextFile.base64 ExamplePlaintextFileAusgabe:
Input Length = 18 Output Length = 12 CertUtil: -decode command completed successfully.Weitere Informationen finden Sie unter ReEncrypt in der API-Referenz zu AWS Key Management Service.
-
API-Details finden Sie unter ReEncrypt
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie retire-grant verwendet wird.
- AWS CLI
-
So ziehen Sie eine Erteilung für einen Kundenhauptschlüssel zurück
Im folgenden Beispiel für
retire-grantwird eine Erteilung aus einem KMS-Schlüssel gelöscht.Der folgende Beispielbefehl legt die Parameter
grant-idundkey-idfest. Der Wert des Parameterskey-idmuss der Schlüssel-ARN des KMS-Schlüssels sein.aws kms retire-grant \ --grant-id1234a2345b8a4e350500d432bccf8ecd6506710e1391880c4f7f7140160c9af3\ --key-idarn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890abMit diesem Befehl wird keine Ausgabe zurückgegeben. Verwenden Sie den Befehl
list-grants, um zu bestätigen, dass die Erteilung zurückgezogen wurde.Weitere Informationen finden Sie unter Zurückziehen und Widerrufen von Erteilungen im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter RetireGrant
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie revoke-grant verwendet wird.
- AWS CLI
-
So ziehen Sie eine Erteilung für einen Kundenhauptschlüssel zurück
Im folgenden Beispiel für
revoke-grantwird eine Erteilung aus einem KMS-Schlüssel gelöscht. Der folgende Beispielbefehl legt die Parametergrant-idundkey-idfest. Der Wert des Parameterskey-idkann die Schlüssel-ID oder der Schlüssel-ARN des KMS-Schlüssels sein.aws kms revoke-grant \ --grant-id1234a2345b8a4e350500d432bccf8ecd6506710e1391880c4f7f7140160c9af3\ --key-id1234abcd-12ab-34cd-56ef-1234567890abMit diesem Befehl wird keine Ausgabe zurückgegeben. Verwenden Sie den Befehl
list-grants, um zu bestätigen, dass die Erteilung zurückgezogen wurde.Weitere Informationen finden Sie unter Zurückziehen und Widerrufen von Erteilungen im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter RevokeGrant
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie rotate-key-on-demand verwendet wird.
- AWS CLI
-
So führen Sie die On-Demand-Rotation eines KMS-Schlüssels durch
Im folgenden Beispiel für
rotate-key-on-demandwird sofort die Rotation des Schlüsselmaterials für den angegebenen KMS-Schlüssel initiiert.aws kms rotate-key-on-demand \ --key-id1234abcd-12ab-34cd-56ef-1234567890abAusgabe:
{ "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }Weitere Informationen finden Sie unter So führen Sie die Schlüsselrotation bei Bedarf durch im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter RotateKeyOnDemand
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie schedule-key-deletion verwendet wird.
- AWS CLI
-
So planen Sie das Löschen eines kundenseitig verwalteten KMS-Schlüssels.
Im folgenden Beispiel für
schedule-key-deletionwird geplant, dass der angegebene kundenseitig verwaltete KMS-Schlüssel innerhalb von 15 Tagen gelöscht wird.Der Parameter
--key-ididentifiziert den KMS-Schlüssel. In diesem Beispiel wird ein Schlüssel-ARN-Wert verwendet, Sie können jedoch entweder die Schlüssel-ID oder den ARN des KMS-Schlüssels verwenden. Der Parameter--pending-window-in-daysgibt die Dauer der Wartezeit von 7 bis 30 Tagen an. Die Wartezeit beträgt standardmäßig 30 Tage. In diesem Beispiel wird der Wert 15 angegeben, der AWS darüber informiert, dass der KMS-Schlüssel 15 Tage nach Abschluss des Befehls dauerhaft gelöscht werden soll.aws kms schedule-key-deletion \ --key-id arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab \ --pending-window-in-days 15Die Antwort enthält den Schlüssel-ARN, den Schlüsselstatus, die Wartezeit (
PendingWindowInDays) und das Löschdatum in Unix-Zeit. Verwenden Sie die AWS-KMS-Konsole, um das Löschdatum in Ortszeit anzuzeigen. KMS-Schlüssel im SchlüsselstatusPendingDeletionkönnen nicht in kryptografischen Vorgängen verwendet werden.{ "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "DeletionDate": "2022-06-18T23:43:51.272000+00:00", "KeyState": "PendingDeletion", "PendingWindowInDays": 15 }Weitere Informationen finden Sie unter Löschen von Schlüsseln im Entwicklerhandbuch zu AWSKey Management Service.
-
API-Details finden Sie unter ScheduleKeyDeletion
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie sign verwendet wird.
- AWS CLI
-
Beispiel 1: So generieren Sie eine digitale Signatur für eine Nachricht
Das folgende Beispiel für
signgeneriert eine kryptografische Signatur für eine Kurznachricht. Die Ausgabe des Befehls enthält das mit base-64 codiertes FeldSignature, das Sie mit dem Befehlverifyüberprüfen können.Sie müssen eine zu signierende Nachricht und einen Signierungsalgorithmus angeben, den Ihr asymmetrischer KMS-Schlüssel unterstützt. Verwenden Sie den Befehl
describe-key, um den Signierungsalgorithmus für Ihren KMS-Schlüssel abzurufen.In AWS CLI v2 muss der Wert des Parameters
messageBase64-codiert sein. Oder Sie können die Nachricht in einer Datei speichern und das Präfixfileb://verwenden, das die AWS CLI anweist, Binärdaten aus der Datei zu lesen.Bevor Sie diesen Befehl ausführen, ersetzen Sie die Beispielschlüssel-ID durch eine gültige aus Ihrem AWS-Konto. Die Schlüssel-ID muss einen asymmetrischen KMS-Schlüssel mit der Schlüsselverwendung SIGN_VERIFY darstellen.
msg=(echo 'Hello World' | base64) aws kms sign \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --message fileb://UnsignedMessage \ --message-type RAW \ --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256Ausgabe:
{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Signature": "ABCDEFhpyVYyTxbafE74ccSvEJLJr3zuoV1Hfymz4qv+/fxmxNLA7SE1SiF8lHw80fKZZ3bJ...", "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256" }Weitere Informationen zum Verwenden von asymmetrischen KMS-Schlüsseln in AWS KMS finden Sie unter Asymmetrische Schlüssel in AWS KMS im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 2: So speichern Sie eine digitale Signatur in einer Datei (Linux und macOs)
Das folgende Beispiel für
signgeneriert eine kryptografische Signatur für eine Kurznachricht, die in einer lokalen Datei gespeichert ist. Der Befehl ruft auch die EigenschaftSignatureaus der Antwort ab, dekodiert sie mit Base64 und speichert sie in der ExampleSignature-Datei. Sie können die Signaturdatei im Befehlverifyverwenden, der die Signatur verifiziert.Der Befehl
signerfordert eine Base64-codierte Nachricht und einen Signaturalgorithmus, den Ihr asymmetrischer KMS-Schlüssel unterstützt. Verwenden Sie den Befehldescribe-key, um den Signaturalgorithmus abzurufen, den Ihr KMS-Schlüssel unterstützt.Bevor Sie diesen Befehl ausführen, ersetzen Sie die Beispielschlüssel-ID durch eine gültige aus Ihrem AWS-Konto. Die Schlüssel-ID muss einen asymmetrischen KMS-Schlüssel mit der Schlüsselverwendung SIGN_VERIFY darstellen.
echo 'hello world' | base64 > EncodedMessage aws kms sign \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --message fileb://EncodedMessage \ --message-type RAW \ --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256 \ --output text \ --query Signature | base64 --decode > ExampleSignatureMit diesem Befehl wird keine Ausgabe zurückgegeben. In diesem Beispiel wird die Eigenschaft
Signatureder Ausgabe extrahiert und in einer Datei gespeichert.Weitere Informationen zum Verwenden von asymmetrischen KMS-Schlüsseln in AWS KMS finden Sie unter Asymmetrische Schlüssel in AWS KMS im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter Sign
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie tag-resource verwendet wird.
- AWS CLI
-
So fügen Sie einem KMS-Schlüssel ein Tag hinzu
Im folgenden Beispiel für
tag-resourcewerden einem kundenseitig verwalteten KMS-Schlüssel die Tags"Purpose":"Test"und"Dept":"IT"hinzugefügt. Sie können Tags wie diese verwenden, um KMS-Schlüssel zu kennzeichnen und Kategorien von KMS-Schlüsseln für Berechtigungen und Prüfungen zu erstellen.Verwenden Sie den Parameter
key-id, um den KMS-Schlüssel anzugeben. In diesem Beispiel wird ein Schlüssel-ID-Wert verwendet, Sie können jedoch eine Schlüssel-ID oder einen Schlüssel-ARN in diesem Befehl verwenden.aws kms tag-resource \ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --tags TagKey='Purpose',TagValue='Test' TagKey='Dept',TagValue='IT'Mit diesem Befehl wird keine Ausgabe zurückgegeben. Verwenden Sie den Befehl
list-resource-tags, um die Tags für einen AWS-KMS-KMS-Schlüssel anzuzeigen.Weitere Informationen zum Verwenden von Tags in AWS KMS finden Sie unter Kennzeichnen von Schlüsseln im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter TagResource
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie untag-resource verwendet wird.
- AWS CLI
-
So löschen Sie ein Tag aus einem KMS-Schlüssel
Im folgenden Beispiel für
untag-resourcewird das Tag mit dem Schlüssel"Purpose"aus einem kundenseitig verwalteten KMS-Schlüssel gelöscht.Verwenden Sie den Parameter
key-id, um den KMS-Schlüssel anzugeben. In diesem Beispiel wird ein Schlüssel-ID-Wert verwendet, Sie können jedoch eine Schlüssel-ID oder einen Schlüssel-ARN in diesem Befehl verwenden. Bevor Sie diesen Befehl ausführen, ersetzen Sie die Beispielschlüssel-ID durch eine gültige aus Ihrem AWS-Konto.aws kms untag-resource \ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --tag-key 'Purpose'Mit diesem Befehl wird keine Ausgabe zurückgegeben. Verwenden Sie den Befehl
list-resource-tags, um die Tags für einen AWS-KMS-KMS-Schlüssel anzuzeigen.Weitere Informationen zum Verwenden von Tags in AWS KMS finden Sie unter Kennzeichnen von Schlüsseln im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter UntagResource
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie update-alias verwendet wird.
- AWS CLI
-
So verknüpfen Sie einen Alias mit einem anderen KMS-Schlüssel
Im folgenden Beispiel für
update-aliaswird der Aliasalias/test-keyeinem anderen KMS-Schlüssel zugeordnet.Der Parameter
--alias-namegibt den Alias an. Der Wert des Aliasnamens muss mitalias/beginnen. Der Parameter--target-key-idgibt den KMS-Schlüssel an, der dem Alias zugeordnet werden soll. Sie müssen den aktuellen KMS-Schlüssel für den Alias nicht angeben.aws kms update-alias \ --alias-name alias/test-key \ --target-key-id 1234abcd-12ab-34cd-56ef-1234567890abMit diesem Befehl wird keine Ausgabe zurückgegeben. Verwenden Sie den Befehl
list-aliases, um den Alias zu suchen.Weitere Informationen finden Sie unter Aktualisieren von Aliasnamen im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter UpdateAlias
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie update-custom-key-store verwendet wird.
- AWS CLI
-
Beispiel 1: So bearbeiten Sie den Anzeigenamen eines benutzerdefinierten Schlüsselspeichers
Im folgenden Beispiel für
update-custom-key-storewird der Name des benutzerdefinierten Schlüsselspeichers geändert. Dieses Beispiel funktioniert für einen AWS-CloudHSM-Schlüsselspeicher oder einen externen Schlüsselspeicher.Verwenden Sie die
custom-key-store-id, um den Schlüsselspeicher zu identifizieren. Verwenden Sie den Parameternew-custom-key-store-name, um den neuen Anzeigenamen anzugeben.Um den Anzeigenamen eines AWS-CloudHSM-Schlüsselspeichers zu aktualisieren, müssen Sie zuerst die Verbindung zum Schlüsselspeicher trennen, z. B. mit dem Befehl
disconnect-custom-key-store. Sie können den Anzeigenamen eines externen Schlüsselspeichers aktualisieren, während er verbunden oder getrennt ist. Verwenden Sie den Befehldescribe-custom-key-store, um den Verbindungsstatus Ihres benutzerdefinierten Schlüsselspeichers zu ermitteln.aws kms update-custom-key-store \ --custom-key-store-idcks-1234567890abcdef0\ --new-custom-key-store-nameExampleKeyStoreDieser Befehl gibt keine Daten zurück. Verwenden Sie einen Befehl
describe-custom-key-stores, um zu überprüfen, ob der Befehl funktioniert hat.Weitere Informationen zum Aktualisieren eines AWS-CloudHSM-Schlüsselspeichers finden Sie unter Bearbeiten der Einstellungen für AWS-CloudHSM-Schlüsselspeicher im Entwicklerhandbuch zu AWS Key Management Service.
Weitere Informationen zum Aktualisieren eines externen Schlüsselspeichers finden Sie unter Bearbeiten der Eigenschaften eines externen Schlüsselspeichers im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 2: So bearbeiten Sie das kmsuser-Passwort eines AWS-CloudHSM-Schlüsselspeichers
Im folgenden Beispiel für
update-custom-key-storewird der Wert des Passwortskmsuserauf das aktuelle Passwort für denkmsuserim CloudHSM-Cluster aktualisiert, der dem angegebenen Schlüsselspeicher zugeordnet ist. Dieser Befehl ändert das Passwortkmsuserim Cluster nicht. Er teilt AWS KMS lediglich das aktuelle Passwort mit. Wenn KMS nicht über das aktuelle Passwortkmsuserverfügt, kann es keine Verbindung zum AWS-CloudHSM-Schlüsselspeicher herstellen.HINWEIS: Bevor Sie einen AWS-CloudHSM-Schlüsselspeicher aktualisieren, müssen Sie die Verbindung trennen. Verwenden Sie den
disconnect-custom-key-store-Befehl. Nachdem der Befehl abgeschlossen wurde, können Sie den AWS-CloudHSM-Schlüsselspeicher erneut verbinden. Verwenden Sie denconnect-custom-key-store-Befehl.aws kms update-custom-key-store \ --custom-key-store-idcks-1234567890abcdef0\ --key-store-passwordExamplePasswordDieser Befehl gibt keine Ausgabe zurück. Verwenden Sie den Befehl
describe-custom-key-stores, um zu überprüfen, ob die Änderung wirksam war.Weitere Informationen zum Aktualisieren eines AWS-CloudHSM-Schlüsselspeichers finden Sie unter Bearbeiten der Einstellungen für AWS-CloudHSM-Schlüsselspeicher im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 3: So bearbeiten Sie den AWS-CloudHSM-Cluster eines AWS-CloudHSM-Schlüsselspeichers
Im folgenden Beispiel wird der mit einem AWS-CloudHSM-Schlüsselspeicher verknüpfte AWS-CloudHSM-Cluster in einen verwandten Cluster geändert, z. B. eine andere Sicherung desselben Clusters.
HINWEIS: Bevor Sie einen AWS-CloudHSM-Schlüsselspeicher aktualisieren, müssen Sie die Verbindung trennen. Verwenden Sie den
disconnect-custom-key-store-Befehl. Nachdem der Befehl abgeschlossen wurde, können Sie den AWS-CloudHSM-Schlüsselspeicher erneut verbinden. Verwenden Sie denconnect-custom-key-store-Befehl.aws kms update-custom-key-store \ --custom-key-store-idcks-1234567890abcdef0\ --cloud-hsm-cluster-idcluster-1a23b4cdefgDieser Befehl gibt keine Ausgabe zurück. Verwenden Sie den Befehl
describe-custom-key-stores, um zu überprüfen, ob die Änderung wirksam war.Weitere Informationen zum Aktualisieren eines AWS-CloudHSM-Schlüsselspeichers finden Sie unter Bearbeiten der Einstellungen für AWS-CloudHSM-Schlüsselspeicher im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 4: So bearbeiten Sie die Proxy-Authentifizierungsanmeldeinformationen eines externen Schlüsselspeichers
Im folgenden Beispiel werden die Proxy-Authentifizierungsanmeldeinformationen für Ihren externen Schlüsselspeicher aktualisiert. Sie müssen den
raw-secret-access-keyund dieaccess-key-idauch dann angeben, wenn Sie nur einen der Werte ändern. Sie können dieses Feature verwenden, um ungültige Anmeldeinformationen zu korrigieren oder die Anmeldeinformationen zu ändern, wenn der externe Schlüsselspeicher-Proxy sie rotiert.Richten Sie die Proxy-Authentifizierungsanmeldeinformationen für AWS KMS auf Ihrem externen Schlüsselspeichers ein. Verwenden Sie dann diesen Befehl, um die Anmeldeinformationen für AWS KMS bereitzustellen. AWS KMS verwendet diese Anmeldeinformationen, um seine Anforderungen an den Proxy Ihres externen Schlüsselspeichers zu signieren.
Sie können die Anmeldeinformationen für die Proxy-Authentifizierung aktualisieren, während der externe Schlüsselspeicher verbunden oder getrennt ist. Verwenden Sie den Befehl
describe-custom-key-store, um den Verbindungsstatus Ihres benutzerdefinierten Schlüsselspeichers zu ermitteln.aws kms update-custom-key-store \ --custom-key-store-idcks-1234567890abcdef0\ --xks-proxy-authentication-credential"AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="Dieser Befehl gibt keine Ausgabe zurück. Verwenden Sie den Befehl
describe-custom-key-stores, um zu überprüfen, ob die Änderung wirksam war.Weitere Informationen zum Aktualisieren eines externen Schlüsselspeichers finden Sie unter Bearbeiten der Eigenschaften eines externen Schlüsselspeichers im Entwicklerhandbuch zu AWS Key Management Service.
Beispiel 5: So bearbeiten Sie die Proxy-Konnektivität eines externen Schlüsselspeichers
Im folgenden Beispiel wird die Proxy-Konnektivitätsoption des externen Schlüsselspeichers von der Konnektivität eines öffentlichen Endpunkts in die Konnektivität des VPC-Endpunkt-Service geändert. Zusätzlich zur Änderung des Werts
xks-proxy-connectivitymüssen Sie den Wertxks-proxy-uri-endpointso ändern, dass er den privaten DNS-Namen widerspiegelt, der dem VPC-Endpunktservice zugeordnet ist. Sie müssen auch den Wertxks-proxy-vpc-endpoint-service-namehinzufügen.HINWEIS: Bevor Sie die Konnektivität des Proxys eines externen Speichers aktualisieren, müssen Sie dessen Verbindung trennen. Verwenden Sie den Befehl
disconnect-custom-key-store. Nach Abschluss des Befehls können Sie den externen Schlüsselspeicher mit dem Befehlconnect-custom-key-storeerneut verbinden.aws kms update-custom-key-store \ --custom-key-store-idcks-1234567890abcdef0\ --xks-proxy-connectivityVPC_ENDPOINT_SERVICE\ --xks-proxy-uri-endpoint"https://myproxy-private.xks.example.com"\ --xks-proxy-vpc-endpoint-service-name"com.amazonaws.vpce.us-east-1.vpce-svc-example"Dieser Befehl gibt keine Ausgabe zurück. Verwenden Sie den Befehl
describe-custom-key-stores, um zu überprüfen, ob die Änderung wirksam war.Weitere Informationen zum Aktualisieren eines externen Schlüsselspeichers finden Sie unter Bearbeiten der Eigenschaften eines externen Schlüsselspeichers im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter UpdateCustomKeyStore
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie update-key-description verwendet wird.
- AWS CLI
-
Beispiel 1: So fügen Sie einem kundenseitig verwalteten KMS-Schlüssel eine Beschreibung hinzu oder ändern sie
Im folgenden Beispiel für
update-key-descriptionwird einem kundenseitig verwalteten KMS-Schlüssel eine Beschreibung hinzugefügt. Sie können denselben Befehl verwenden, um eine vorhandene Beschreibung zu ändern.Der Parameter
--key-ididentifiziert den KMS-Schlüssel im Befehl. In diesem Beispiel wird ein Schlüssel-ARN-Wert verwendet, Sie können jedoch entweder die Schlüssel-ID oder Schlüssel-ARN des KMS-Schlüssels verwenden. Der Parameter--descriptiongibt die neue Beschreibung an. Der Wert dieses Parameters ersetzt die aktuelle Beschreibung des KMS-Schlüssels, falls vorhanden.aws kms update-key-description \ --key-id arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab \ --description "IT Department test key"Mit diesem Befehl wird keine Ausgabe zurückgegeben. Verwenden Sie den Befehl
describe-key, um die Beschreibung eines KMS-Schlüssels anzuzeigen.Weitere Informationen finden Sie unter UpdateKeyDescription in der API-Referenz zu AWS Key Management Service.
Beispiel 2: So löschen Sie die Beschreibung eines kundenseitig verwalteten KMS-Schlüssels
Im folgenden Beispiel für
update-key-descriptionwird die Beschreibung eines kundenseitig verwalteten KMS-Schlüssels gelöscht.Der Parameter
--key-ididentifiziert den KMS-Schlüssel im Befehl. In diesem Beispiel wird ein Schlüssel-ID-Wert verwendet, Sie können jedoch entweder die Schlüssel-ID oder den Schlüssel-ARN des KMS-Schlüssels verwenden. Der Parameter--descriptionmit einem leeren Zeichenfolgenwert ('') löscht die vorhandene Beschreibung.aws kms update-key-description \ --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \ --description ''Mit diesem Befehl wird keine Ausgabe zurückgegeben. Verwenden Sie den Befehl „describe-key“, um die Beschreibung eines KMS-Schlüssels anzuzeigen.
Weitere Informationen finden Sie unter UpdateKeyDescription in der API-Referenz zu AWS Key Management Service.
-
API-Details finden Sie unter UpdateKeyDescription
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie verify-mac verwendet wird.
- AWS CLI
-
Beispiel 1: So überprüfen Sie einen HMAC
Der folgende Befehl
verify-macgeneriert einen HMAC für eine bestimmte Nachricht, HMAC-KMS-Schlüssel und den MAC-Algorithmus. Der Wert „true“ im MacValid-Wert in der Antwort gibt an, dass der HMAC gültig ist.In AWS CLI v2 muss der Wert des Parameters
messageBase64-codiert sein. Oder Sie können die Nachricht in einer Datei speichern und das Präfixfileb://verwenden, das die AWS CLI anweist, Binärdaten aus der Datei zu lesen.Der von Ihnen angegebene MAC kann nicht Base64-codiert sein. Hilfe zum Entschlüsseln der MAC-Adresse, die der Befehl
generate-maczurückgibt, finden Sie in den Beispielen für den Befehlgenerate-mac.Bevor Sie diesen Befehl ausführen, ersetzen Sie die Beispielschlüssel-ID durch eine gültige aus Ihrem AWS-Konto. Die Schlüssel-ID muss einen HMAC-KMS-Schlüssel mit der Schlüsselverwendung von
GENERATE_VERIFY_MACdarstellen.msg=(echo 'Hello World' | base64) aws kms verify-mac \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --message fileb://Message \ --mac-algorithm HMAC_SHA_384 \ --mac fileb://ExampleMacAusgabe:
{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "MacValid": true, "MacAlgorithm": "HMAC_SHA_384" }Weitere Informationen zum Verwenden von HMAC-KMS-Schlüsseln in AWS KMS finden Sie unter HMAC-Schlüssel in AWS KMS im Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter VerifyMac
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie verify verwendet wird.
- AWS CLI
-
So überprüfen Sie eine digitale Signatur
Der folgende Befehl
verifyüberprüft eine kryptografische Signatur für eine kurze, Base64-kodierte Nachricht. Die Schlüssel-ID, die Nachricht, der Nachrichtentyp und der Signaturalgorithmus müssen mit denen identisch sein, die zum Signieren der Nachricht verwendet wurden.In AWS CLI v2 muss der Wert des Parameters
messageBase64-codiert sein. Oder Sie können die Nachricht in einer Datei speichern und das Präfixfileb://verwenden, das die AWS CLI anweist, Binärdaten aus der Datei zu lesen.Die von Ihnen angegebene Signatur kann nicht Base64-codiert sein. Hilfe zum Entschlüsseln der Signatur, die der Befehl
signzurückgibt, finden Sie in den Beispielen für den Befehlsign.Die Ausgabe des Befehls enthält ein boolesches
SignatureValid-Feld, das angibt, dass die Signatur verifiziert wurde. Wenn die Signaturüberprüfung fehlschlägt, schlägt auch der Befehlverifyfehl.Bevor Sie diesen Befehl ausführen, ersetzen Sie die Beispielschlüssel-ID durch eine gültige aus Ihrem AWS-Konto.
aws kms verify \ --key-id1234abcd-12ab-34cd-56ef-1234567890ab\ --messagefileb://EncodedMessage\ --message-typeRAW\ --signing-algorithmRSASSA_PKCS1_V1_5_SHA_256\ --signaturefileb://ExampleSignatureAusgabe:
{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "SignatureValid": true, "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256" }Weitere Informationen zum Verwenden von asymmetrischen KMS-Schlüsseln in AWS KMS finden Sie unter Verwenden asymmetrischer Schlüssel in Entwicklerhandbuch zu AWS Key Management Service.
-
API-Details finden Sie unter Verify
in der AWS CLI-Befehlsreferenz.
-