Schnellstart: Erstellen Ihres ersten externen Schlüssels mithilfe der Azure CLI

In dieser Schnellstartanleitung verbinden Sie Ihr externes HSM mit Managed HSM, erstellen einen externen Schlüsselverweis und testen den Schlüsselschutzpfad. Anschließend verwenden Sie den URI des verwalteten HSM-Schlüssels, um die CMK-Verschlüsselung (Customer Managed Key) für ruhende Daten in einem kompatiblen Azure-Dienst zu konfigurieren.

Informationen zur Verschlüsselungsmodell und Dienstkompatibilität finden Sie unter Was ist die externe Schlüsselverwaltung für Managed HSM?

Wenn Sie lieber das Azure-Portal verwenden möchten, lesen Sie die Schnellstartanleitung: Erstellen Des ersten externen Schlüssels mithilfe des Azure Portals.

Voraussetzungen

Bevor Sie beginnen, benötigen Sie Folgendes:

  • Ein vorhandenes verwaltetes HSM, das in einer beliebigen öffentlichen Azure-Region bereitgestellt wird, in einem Abonnement, das für externes Schlüsselmanagement aktiviert ist. Informationen zum Erstellen eines verwalteten HSM finden Sie in der Schnellstartanleitung: Bereitstellen und Aktivieren eines verwalteten HSM mithilfe von Azure CLI.
  • Ein betriebsbereiter EKM-Proxy, der von Azure aus erreichbar ist. Der Proxy muss die EKM-Proxy-API-Spezifikation implementieren. Informationen zu unterstützten Anbietern finden Sie unter Was ist die Verwaltung von externen HSM-Schlüsseln?.
  • Ein schlüssel, der in Ihrem externen HSM mit einem bekannten bezeichner für externe Schlüssel erstellt wurde. Der Bezeichner des externen Schlüssels ist der Bezeichner, den Ihr Proxy zum Nachschlagen des Schlüssels verwendet.
  • Das Root-CA-Zertifikat (PEM-Format), das das TLS-Serverzertifikat Ihres Proxys signiert hat.
  • Azure CLI Version 2.x mit der neuesten installierten keyvault Erweiterung. Führen Sie az extension add --name keyvault oder az extension update --name keyvault aus, um die neueste Version zu erhalten.
  • Die Managed HSM EKM Administrator Rolle zum Verwalten externer Schlüsselverwaltungsverbindungen und die Managed HSM Crypto User Rolle zum Erstellen und Verwenden von Schlüsseln. Informationen zu Rollenzuweisungsschritten finden Sie unter Verwaltete HSM-Zugriffssteuerung.

Anmelden bei Azure

az login

Legen Sie Ihr Abonnement fest, wenn Sie mehrere haben:

az account set --subscription "<subscription-id>"

Anzeigen des verwalteten HSM-Clientzertifikats

Managed HSM legt Ihrem EKM-Proxy bei jeder eingehenden mTLS-Verbindung ein X.509-Clientzertifikat vor. Rufen Sie vor dem Erstellen der Verbindung zur externen Schlüsselverwaltung den Common Name (CN) des Zertifikatssubjekts und das Stammzertifikat der Zertifizierungsstelle ab und setzen Sie diese auf Ihrem Proxy auf die Zulassungsliste. Auf diese Weise kann der Proxy überprüfen, ob die Verbindung von Ihrem verwalteten HSM stammt, nicht von einem beliebigen Aufrufer.

az keyvault ekm-connection certificate show --hsm-name <Managed HSM Name>

Die Ausgabe sieht etwa so aus:

{
  "caCertificates": [
    "MIIDj...<truncated>...MrY="
  ],
  "subjectCommonName": "contoso.managedhsmclient.azure.net"
}

Konfigurieren Sie Ihren Proxy so, dass er Verbindungen vertraut, die ein Zertifikat mit dem subjectCommonName vorlegen und deren Vertrauenskette auf eines der Zertifikate in der obigen Liste caCertificates zurückgeht. Die genauen Schritte hängen von Ihrem Proxyanbieter ab.

Hinweis

Informationen zu den Rotationsschritten und Details zum Zertifikatslebenszyklus finden Sie unter Netzwerkkonfiguration und mTLS für die externe Schlüsselverwaltung für Managed HSM konfigurieren.

Erstellen Sie die Verbindung zur externen Schlüsselverwaltung

Die Verbindung zur Verwaltung externer Schlüssel bindet Ihr verwaltetes HSM an einen einzelnen EKM-Proxy. Sie enthält die Proxyadresse, den Vertrauensanker der Serverzertifizierungsstelle und ein optionales Pfadpräfix.

In diesem Abschnitt wird eine Verbindung über das öffentliche Internet erstellt. Folgen Sie für Private Link stattdessen "Konfigurieren des Azure Private Link Modells (Vorschau)", und fahren Sie dann mit "Überprüfen der Verbindung" fort.

az keyvault ekm-connection create \
    --hsm-name <Managed HSM Name> \
    --host <EKMProxy Host> \
    --server-ca-certificate <Root cert> \
    [--path-prefix <prefix>]

Parameterverweis:

  • --hsm-name: Der Name Ihres Managed HSM.
  • --host: Der vollqualifizierte Hostname Ihres EKM-Proxys. Beispiel: proxy.contoso.com Der Proxy muss auf TCP-Port 443 lauschen; Ein nicht standardmäßiger Port wird nicht unterstützt.
  • --server-ca-certificate: Gibt den Pfad zur Zertifikatdatei der Stammzertifizierungsstelle (PEM oder DER-Format) an, die zum Überprüfen des TLS-Serverzertifikats des Proxys verwendet wird.
  • --path-prefix (optional): Ein URL-Pfadpräfix, wenn Ihr Proxy mehrere Kunden oder Pools über den Pfad bündelt. Beispiel: /contoso/prod

Hinweis

Übergeben Sie das Zertifikat der Stammzertifizierungsstelle an --server-ca-certificate, nicht an das Blattzertifikat des Proxys. Managed HSM verwendet diese Zertifizierungsstelle, um die vollständige Zertifikatskette zu validieren, die von Ihrem Proxy während des mTLS-Handshakes vorgelegt wird. Das Übergeben des Blattzertifikats stattdessen führt dazu, dass der Handshake für eine Zertifikatverlängerung fehlschlägt.

Die Verbindung prüfen

Überprüfen Sie nach dem Erstellen der Verbindung, ob verwaltetes HSM Ihren Proxy erreichen kann:

az keyvault ekm-connection check --hsm-name <Managed HSM Name>

Dieser Befehl ruft den Endpunkt des Proxys /info über die konfigurierte Verbindung auf. Eine erfolgreiche Ausgabe sieht etwa so aus:

{
  "apiVersion": "1.0",
  "ekmProduct": "Contoso HSM v1.0.0",
  "ekmVendor": "Contoso HSM",
  "proxyName": "Contoso Proxy Service",
  "proxyVendor": "Contoso Proxy"
}

Häufige Fehlerursachen sind Firewallregeln, die den Proxyport blockieren, einen falschen --host Wert oder den Proxy, der das verwaltete HSM-Clientzertifikat ablehnt. Informationen zu Schritten zur Problembehebung finden Sie unter Problembehandlung für die Verwaltung externer Schlüssel in Managed HSM.

Erstellen des externen Schlüssels

Erstellen Sie einen verwalteten HSM-Schlüsselverweis, der auf den externen Schlüssel in Ihrem HSM verweist. Managed HSM generiert kein Schlüsselmaterial. Mit diesem Befehl wird ein Verweis auf einen vorhandenen Schlüssel registriert, der durch seinen externen Schlüsselbezeichner identifiziert wird.

az keyvault key create \
    --external-key-id <external-key-identifier> \
    --hsm-name <Managed HSM Name> \
    --name <key-ref-name>

Parameterverweis:

  • --external-key-id: Die bei Ihrem Proxy registrierte Kennung des externen Schlüssels. Dies ist der Bezeichner, den der Proxy verwendet, um den richtigen Schlüssel in Ihrem externen HSM nachzuschlagen.
  • --hsm-name: Der Name Ihres Managed HSM.
  • --name: Der Name, den Sie dem verwalteten HSM-Schlüsselverweis zuweisen möchten. Dies wird Teil der Schlüssel-URI, die die Azure-Dienste verwenden.

Wichtig

Die ID des externen Schlüssels ist für die Lebensdauer einer Schlüsselversion unveränderlich . Sie können sie nach der Erstellung nicht mehr ändern. Um den Schlüssel zu rotieren, erstellen Sie eine neue Schlüsselversion mit einem neuen externen Schlüsselbezeichner unter Verwendung von az keyvault key create mit demselben --name. Der Schlüssel-URI (HSM-URI + Schlüsselname) bleibt über Versionen hinweg stabil; nur das Versionssegment ändert sich.

Der Befehl gibt den Schlüssel-URI im Formular https://<hsm-name>.managedhsm.azure.net/keys/<key-ref-name>/<version>zurück. Behalten Sie diesen URI für die Konfiguration Ihres Azure-Diensts bei.

Wrap/Unwrap überprüfen

Testen Sie den Schlüsselschutzpfad mit einem Wrap- und Unwrap-Roundtrip. Das externe HSM führt die Vorgänge über Ihren Proxy aus, und Managed HSM gibt das Ergebnis zurück. Dieser Test bestätigt, dass der Schlüsselpfad funktioniert. Es konfiguriert oder validiert die CMK-Integration eines Azure Diensts nicht.

Hinweis

Verwenden Sie für diesen Test die Datenebenenendpunkte wrapkey und unwrapkey mit az rest. az keyvault key encrypt ruft einen anderen Schlüssel-API-Vorgang auf und ist kein Ersatz für das Verpacken eines Datenverschlüsselungsschlüssels.

  1. Erstellen Sie einen Anforderungstext für den Wrap-Vorgang. Legen Sie den Wert von value auf das base64url-kodierte Schlüsselmaterial fest, das Sie wrappen möchten.

    {
      "alg": "RSA-OAEP-256",
      "value": "<base64url-encoded-plaintext-key>"
    }
    

    Speichern Sie es als wrapkey.json. Verwenden Sie "alg": "A256KW" für externe AES-Schlüssel anstelle von RSA-OAEP-256.

  2. Rufen Sie den wrapkey Endpunkt in Ihrem Schlüsselverweis auf:

    az rest --method POST \
        --uri "https://<Managed HSM Name>.managedhsm.azure.net/keys/<key-ref-name>/wrapkey?api-version=7.5" \
        --resource "https://managedhsm.azure.net" \
        --headers "Content-Type=application/json" \
        --body @wrapkey.json
    

    Die Antwort gibt die Schlüsselversion (kid) und ein value Feld zurück, das den base64url-codierten umschlossenen Schlüssel enthält. Kopieren Sie das value für den nächsten Schritt.

  3. Erstellen Sie einen Anforderungstext für den Unwrap-Vorgang, indem Sie den verpackten value aus dem vorherigen Schritt verwenden:

    {
      "alg": "RSA-OAEP-256",
      "value": "<wrapped-value-from-previous-step>"
    }
    

    Speichern Sie es als unwrapkey.json.

  4. Rufen Sie den unwrapkey-Endpunkt auf, um die Korrektheit der Roundtrip-Verarbeitung zu bestätigen:

    az rest --method POST \
        --uri "https://<Managed HSM Name>.managedhsm.azure.net/keys/<key-ref-name>/unwrapkey?api-version=7.5" \
        --resource "https://managedhsm.azure.net" \
        --headers "Content-Type=application/json" \
        --body @unwrapkey.json
    

    Eine erfolgreiche Antwort gibt den ursprünglichen Klartext value zurück, den Sie im ersten Schritt eingeschlossen haben. Wenn das Entpacken fehlschlägt, lesen Sie die Problembehandlung für die Verwaltung verwalteter HSM-externer Schlüssel für Proxyfehlercodes und Korrekturschritte.

Schlüssel mit einem Azure-Dienst verwenden

Führen Sie die Workloadintegration aus, indem Sie der CMK-Konfigurationsdokumentation Ihres Azure-Diensts folgen:

  1. Vergewissern Sie sich, dass der Dienst CMKs mit Managed HSM unterstützt und dass der Typ und Algorithmus des externen Schlüssels seinen Anforderungen entsprechen.
  2. Gewähren Sie der vom Dienst verwendeten Identität die erforderlichen lokalen RBAC-Berechtigungen für Managed HSM. Anleitungen zur Rollenzuweisung finden Sie unter Verwaltete HSM-Zugriffssteuerung.
  3. Konfigurieren Sie die CMK-Einstellungen des Diensts mit dem URI Ihres Managed HSM-Schlüssels. Verwenden Sie das versionsierte oder nichtversionierte URI-Format, das für diesen Dienst erforderlich ist. Informationen zu Azure Storage finden Sie unter Konfigurieren von vom Kunden verwalteten Schlüsseln mit Azure Key Vault Managed HSM.
  4. Vergewissern Sie sich, dass der Dienst die erwartete CMK-Konfiguration meldet, und führen Sie dann einen Lese-/Schreibvorgang für die geschützte Workload aus. Überprüfen Sie die Diagnoseprotokolle des Diensts und die Protokolle zur externen Schlüsselverwaltung von Managed HSM, wenn der Vorgang fehlschlägt.

Der Azure-Dienst verwendet seine vorhandene Managed HSM-Integration. Sie benötigt nicht die anbieterspezifische API oder Anmeldeinformationen Ihrer externen HSM.

Auditprotokolle anzeigen

Jeder EKM-Proxyaufruf erzeugt einen EkmProxyOperation Eintrag in Ihren verwalteten HSM-Diagnoseprotokollen. So fragen Sie diese in Log Analytics ab:

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.KEYVAULT"
| where OperationName contains "Ekm"
| project TimeGenerated, Resource, OperationName, requestUri_s, ResultType, ResultDescription

Das Protokoll enthält den Vorgangstyp (wrap oder unwrap), den externen Schlüsselbezeichner, den vom Proxy zurückgegebenen HTTP-Statuscode und die Round-Trip-Latenz. Die vollständige Anleitung zur Protokollierung und Überwachung, einschließlich Warnungskonfiguration und proxyseitiger Protokollkorrelation, finden Sie unter Protokollierung und Überwachung für die Verwaltung von externen HSM-Schlüsseln.

Bereinigen von Ressourcen

Wenn Sie einen Azure-Dienst für die Verwendung dieses Schlüssels konfiguriert haben, migrieren Sie den Workload auf einen anderen Schlüssel, bevor Sie den Verweis oder die Verbindung löschen. Behalten Sie den externen Schlüssel und die zugehörige Verbindung so lange bei, wie sie für die Daten, Sicherungen oder Momentaufnahmen der Workload benötigt werden.

So entfernen Sie die in dieser Schnellstartanleitung erstellten Ressourcen:

  1. Löschen Sie die Referenz des verwalteten HSM-Schlüssels:

    az keyvault key delete \
        --hsm-name <Managed HSM Name> \
        --name <key-ref-name>
    
  2. Löschen Sie die Verbindung zur externen Schlüsselverwaltung:

    az keyvault ekm-connection delete \
        --hsm-name <Managed HSM Name>
    

Das Löschen des Verweises auf den Managed HSM-Schlüssel wirkt sich nicht auf das Schlüsselmaterial in Ihrem externen HSM aus. Dieser Schlüssel verbleibt in Ihrem HSM, bis Sie ihn dort entfernen.

Nächste Schritte