Freigeben über


TLS-Terminierung mit Key Vault-Zertifikaten

Azure Key Vault ist ein als Plattform verwalteter Geheimnisspeicher, mit dem Sie Geheimnisse, Schlüssel und TLS/SSL-Zertifikate schützen können. Azure Application Gateway unterstützt die Integration mit Key Vault für Serverzertifikate, die HTTPS-fähigen Listenern zugeordnet sind. Diese Unterstützung ist auf die v2-SKU von Application Gateway beschränkt.

Application Gateway bietet zwei Modelle für den TLS-Abschluss:

  • Bereitstellung von TLS/SSL-Zertifikaten, die an den Listener angefügt sind. Dies ist das traditionelle Modell für die Übergabe von TLS/SSL-Zertifikaten an Application Gateway für die TLS-Terminierung.
  • Bereitstellung eines Verweises auf ein vorhandenes Key Vault-Zertifikat oder -Geheimnis, wenn Sie einen HTTPS-fähigen Listener erstellen.

Die Application Gateway-Integration mit Key Vault bietet viele Vorteile. Zu diesen gehören:

  • Höhere Sicherheit, da TLS/SSL-Zertifikate nicht direkt vom Anwendungsentwicklungsteam gehandhabt werden. Die Integration ermöglicht einem getrennten Sicherheitsteam Folgendes:
    • Einrichten von Anwendungsgateways
    • Steuern von Application Gateway-Lebenszyklen
    • Erteilen von Berichtigungen für ausgewählte Gateways, damit diese auf Zertifikate zugreifen können, die in Ihrem Key Vault gespeichert sind.
  • Unterstützung des Imports vorhandener Zertifikate in Ihren Key Vault. Verwenden von Key Vault-APIs zum Erstellen und Verwalten neuer Zertifikate bei den vertrauenswürdigen Key Vault-Partnern
  • Unterstützung für die automatische Verlängerung von Zertifikaten, die in Ihrem Key Vault gespeichert sind.

Unterstützte Zertifikate

Application Gateway unterstützt derzeit nur per Software überprüfte Zertifikate. Durch das Hardwaresicherheitsmodul (HSM) überprüfte Zertifikate werden nicht unterstützt.

Nachdem Application Gateway für die Verwendung von Key Vault-Zertifikaten konfiguriert wurde, rufen die Instanzen die Zertifikate von Key Vault ab und installieren sie lokal für die TLS-Terminierung. Die Instanzen rufen Key Vault in 4-Stunden-Intervallen ab, um ggf. eine erneuerte Version des Zertifikats zu erhalten. Wenn ein aktualisiertes Zertifikat gefunden wurde, wird das dem HTTPS-Listener zugeordnete TLS/SSL-Zertifikat automatisch rotiert.

Tipp

Jede Änderung an Application Gateway erzwingt eine Überprüfung in Key Vault, um festzustellen, ob neue Versionen von Zertifikaten verfügbar sind. Dies schließt u. a. Änderungen an Front-End-IP-Konfigurationen, Listenern, Regeln, Back-End-Pools, Ressourcentags und mehr ein. Wenn ein aktualisiertes Zertifikat gefunden wurde, wird das neue Zertifikat sofort angezeigt.

Application Gateway verwendet einen Geheimnisbezeichner in Key Vault, um auf die Zertifikate zu verweisen. Für Azure PowerShell, die Azure CLI oder Azure Resource Manager wird dringend empfohlen, einen Geheimbezeichner zu verwenden, der keine Version angibt. Auf diese Weise rotiert Application Gateway das Zertifikat automatisch, wenn eine neuere Version in Ihrer Key Vault-Instanz verfügbar ist. Ein Beispiel für einen Geheimnis-URI ohne Version ist https://myvault.vault.azure.net/secrets/mysecret/. Sie können sich auch an den PowerShell-Schritten im nachfolgenden Abschnitt orientieren.

Das Azure-Portal unterstützt nur KeyVault-Zertifikate, keine Geheimnisse. Application Gateway unterstützt weiterhin das Verweisen auf Geheimnisse aus Key Vault, aber nur über Nicht-Portalressourcen wie PowerShell, Azure CLI, APIs und Azure Resource Manager-Vorlagen (ARM-Vorlagen). Key Vault-Zertifikate müssen über einen exportierbaren privaten Schlüssel verfügen, damit Application Gateway sie verwenden kann.

Verweise auf Key Vault-Instanzen in anderen Azure-Abonnements werden unterstützt, müssen jedoch über ARM-Vorlage, Azure PowerShell, CLI, Bicep usw. konfiguriert werden. Die schlüsseltresorübergreifende Konfiguration wird bisher nicht vom Anwendungsgateway über das Azure-Portal unterstützt.

Zertifikateinstellungen in Key Vault

Für den TLS-Abschluss unterstützt Application Gateway nur Zertifikate im PFX-Format (Personal Information Exchange). Sie können dann entweder ein vorhandenes Zertifikat importieren oder ein neues in Ihrem Key Vault erstellen. Um Ausfälle zu vermeiden, stellen Sie sicher, dass der Status des Zertifikats in Key Vault auf Aktiviert festgelegt ist.

Funktionsweise der Integration

Die Application Gateway-Integration in Key Vault erfolgt über einen Konfigurationsprozess in drei Schritten:

Diagramm, das drei Schritte zur Integration von Application Gateway in Key Vault zeigt.

Hinweis

Die Integration von Azure Application Gateway in Key Vault unterstützt sowohl die Zugriffsrichtlinie für den Tresor als auch die Berechtigungsmodelle der rollenbasierte Zugriffssteuerung in Azure.

Abrufen einer benutzerseitig zugewiesenen verwalteten Identität

Application Gateway verwendet eine verwaltete Identität, um in Ihrem Auftrag Zertifikate von Key Vault abzurufen.

Sie können entweder eine neue benutzerseitig zugewiesene verwaltete Identität erstellen oder eine vorhandene mit der Integration wiederverwenden. Weitere Informationen zum Erstellen einer benutzerseitig zugewiesenen verwalteten Identität finden Sie unter Erstellen einer benutzerseitig zugewiesenen verwalteten Identität über das Azure-Portal.

Delegieren einer benutzerseitig zugewiesenen verwalteten Identität an Key Vault

Definieren Sie Zugriffsrichtlinien, um die benutzerseitig zugewiesene verwaltete Identität mit Ihrem Key Vault zu verwenden:

  1. Wechseln Sie im Azure-Portal zu Key Vault.

  2. Wählen Sie den Key Vault aus, der Ihr Zertifikat enthält.

  3. Wenn Sie das Berechtigungsmodell Tresorzugriffsrichtlinie verwenden: Wählen Sie Zugriffsrichtlinien, + Zugriffsrichtlinie hinzufügen, für Geheimnisberechtigungen die Option Abrufen und dann für Prinzipal auswählen Ihre benutzerseitig zugewiesene verwaltete Identität aus. Klicken Sie dann auf Speichern.

    Wenn Sie die rollenbasierte Zugriffssteuerung in Azure verwenden, gehen Sie wie im Artikel Zuweisen des Zugriffs einer verwalteten Identität auf eine Ressource über das Azure-Portal vor, und weisen Sie der benutzerseitig zugewiesenen verwalteten Identität die Rolle Geheimnisbenutzer für Schlüsseltresore für die Azure Key Vault-Instanz zu.

Überprüfen der Firewallberechtigungen für Key Vault

Ab dem 15. März 2021 erkennt Key Vault Application Gateway als vertrauenswürdigen Dienst an, indem benutzerseitig verwaltete Identitäten für die Authentifizierung bei Azure Key Vault genutzt werden. Mit der Verwendung von Dienstendpunkten und der Aktivierung der Option für vertrauenswürdige Dienste für die Firewall des Key Vault können Sie eine sichere Netzwerkgrenze in Azure erstellen. Sie können den Zugriff auf Datenverkehr aus allen Netzwerken (einschließlich Internetdatenverkehr) auf Key Vault verweigern, aber weiterhin der Application Gateway-Ressource in Ihrem Abonnement den Zugriff auf Key Vault ermöglichen.

Wenn Sie einen eingeschränkten Key Vault verwenden, führen Sie die folgenden Schritte aus, um Application Gateway für die Verwendung von Firewalls und virtuellen Netzwerken zu konfigurieren:

Tipp

Die Schritte 1 bis 3 sind nicht erforderlich, wenn für Ihre Key Vault-Instanz ein privater Endpunkt aktiviert ist. Das Anwendungsgateway kann über die private IP-Adresse auf den Key Vault zugreifen.

Wichtig

Wenn Sie private Endpunkte verwenden, um auf Key Vault zuzugreifen, müssen Sie die private DNS-Zone „privatelink.vaultcore.azure.net“, die den entsprechenden Eintrag für die referenzierte Key Vault-Instanz enthält, mit dem virtuellen Netzwerk verknüpfen, das Application Gateway enthält. Benutzerdefinierte DNS-Server können weiterhin im virtuellen Netzwerk anstelle der bereitgestellten Azure DNS-Auflösungen verwendet werden, die private DNS-Zone muss jedoch ebenfalls mit dem virtuellen Netzwerk verknüpft bleiben.

  1. Wählen Sie im Azure-Portal in Ihrem Key Vault Netzwerk aus.

  2. Wählen Sie auf der Registerkarte Firewalls und virtuelle Netzwerke die Option Ausgewählte Netzwerke aus.

  3. Wählen Sie unter Virtuelle Netzwerke die Option + Vorhandene virtuelle Netzwerke hinzufügen aus, und fügen Sie dann das virtuelle Netzwerk und Subnetz für Ihre Application Gateway-Instanz hinzu. Wenn Sie dazu aufgefordert werden, stellen Sie sicher, dass das Kontrollkästchen Konfigurieren Sie zu diesem Zeitpunkt keine „Microsoft.KeyVault“-Dienstendpunkte deaktiviert ist, um sicherzustellen, dass der Dienstendpunkt Microsoft.KeyVault im Subnetz aktiviert ist.

  4. Wählen Sie Ja aus, um vertrauenswürdigen Diensten die Umgehung der Key Vault-Firewall zu gestatten.

    Screenshot, der die ausgewählten Optionen für die Konfiguration von Application Gateway für die Verwendung von Firewalls und virtuellen Netzwerken zeigt.

Hinweis

Wenn Sie die Application Gateway-Instanz über eine ARM-Vorlage, entweder mithilfe der Azure CLI oder mit PowerShell, oder über eine im Azure-Portal bereitgestellte Azure-Anwendung bereitstellen, wird das SSL-Zertifikat im Key Vault als Base64-codierte PFX-Datei gespeichert. Sie müssen die unter Verwenden von Azure Key Vault zum Übergeben eines sicheren Parameterwerts während der Bereitstellung aufgeführten Schritte durchführen.

Es ist besonders wichtig, enabledForTemplateDeployment auf true festzulegen. Das Zertifikat hat eventuell ein Kennwort. Im folgenden Beispiel wird eine mögliche Konfiguration für den sslCertificates-Eintrag in properties für die Konfiguration der ARM-Vorlage für App Gateway veranschaulicht, wenn ein Zertifikat mit einem Kennwort vorliegt.

"sslCertificates": [
     {
         "name": "appGwSslCertificate",
         "properties": {
             "data": "[parameters('appGatewaySSLCertificateData')]",
            "password": "[parameters('appGatewaySSLCertificatePassword')]"
        }
    }
]

Die Werte appGatewaySSLCertificateData und appGatewaySSLCertificatePassword werden, wie unter Referenzieren von Geheimnissen mit einer dynamischen ID beschrieben, im Key Vault gesucht. Sie können die Funktionsweise der Suche nachvollziehen, indem Sie die Verweise von parameters('secretName') zurückverfolgen. Wenn das Zertifikat Kennwortlos ist, lassen Sie den password-Eintrag aus.

Konfigurieren des Application Gateway-Listeners

Key Vault-Berechtigungsmodell „Tresorzugriffsrichtlinie“

Navigieren Sie im Azure-Portal zu Ihrer Application Gateway-Instanz, und wählen Sie die Registerkarte Listener aus. Wählen Sie Listener hinzufügen (oder einen vorhandenen Listener) aus, und geben Sie als Protokoll HTTPS an.

Wählen Sie unter Zertifikat auswählen die Option Neu erstellen und dann Unter HTTPS-Einstellungen die Option Zertifikat aus Key Vault auswählen aus.

Geben Sie als Zertifikatsnamen einen Anzeigenamen für das Zertifikat ein, auf das in Key Vault verwiesen werden soll. Wählen Sie Ihre verwaltete Identität, den Key Vault und das Zertifikat aus.

Wählen Sie nach der Auswahl Hinzufügen (bei Erstellung) oder Speichern (bei Bearbeitung) aus, um das referenzierte Key Vault-Zertifikat auf den Listener anzuwenden.

Key Vault-Berechtigungsmodell „Rollenbasierte Zugriffssteuerung in Azure“

Application Gateway unterstützt Zertifikate, auf die in Key Vault über das Berechtigungsmodell für die rollenbasierte Zugriffssteuerung verwiesen wird. Die ersten Schritte zum Verweisen auf den Key Vault müssen über eine ARM-Vorlage, Bicep, die Befehlszeilenschnittstelle oder PowerShell ausgeführt werden.

Hinweis

Das Angeben von Azure Key Vault-Zertifikaten für das Berechtigungsmodell „Rollenbasierte Zugriffssteuerung“ über das Portal wird nicht unterstützt.

In diesem Beispiel wird PowerShell verwendet, um auf ein neues Key Vault-Geheimnis zu verweisen.

# Get the Application Gateway we want to modify
$appgw = Get-AzApplicationGateway -Name MyApplicationGateway -ResourceGroupName MyResourceGroup
# Specify the resource id to the user assigned managed identity - This can be found by going to the properties of the managed identity
Set-AzApplicationGatewayIdentity -ApplicationGateway $appgw -UserAssignedIdentityId "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/MyResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyManagedIdentity"
# Get the secret ID from Key Vault
$secret = Get-AzKeyVaultSecret -VaultName "MyKeyVault" -Name "CertificateName"
$secretId = $secret.Id.Replace($secret.Version, "") # Remove the secret version so Application Gateway uses the latest version in future syncs
# Specify the secret ID from Key Vault 
Add-AzApplicationGatewaySslCertificate -KeyVaultSecretId $secretId -ApplicationGateway $appgw -Name $secret.Name
# Commit the changes to the Application Gateway
Set-AzApplicationGateway -ApplicationGateway $appgw

Navigieren Sie, nachdem die Befehle ausgeführt wurden, im Azure-Portal zu Ihrer Application Gateway-Instanz, und wählen Sie die Registerkarte „Listener“ aus. Klicken Sie auf „Listener hinzufügen“ (oder wählen Sie einen vorhandenen aus), und geben Sie als Protokoll „HTTPS“ an.

Wählen Sie unter Zertifikat auswählen das Zertifikat aus, das in den vorherigen Schritten benannt wurde. Wählen Sie nach der Auswahl Hinzufügen (bei Erstellung) oder Speichern (bei Bearbeitung) aus, um das referenzierte Key Vault-Zertifikat auf den Listener anzuwenden.

Untersuchen und Beheben von Key Vault-Fehlern

Hinweis

Es ist wichtig, alle Auswirkungen auf Ihre Application Gateway-Ressource zu berücksichtigen, wenn Sie Änderungen vornehmen oder den Zugriff auf Ihre Key Vault-Ressource widerrufen. Wenn Ihre Application Gateway-Instanz nicht auf den zugeordneten Schlüsseltresor zugreifen kann oder das Zertifikatobjekt darin nicht findet, legt Application Gateway den Listener automatisch auf einen deaktivierten Zustand fest.

Sie können dieses benutzergesteuerte Ereignis in Resource Health für Ihre Application Gateway-Instanz identifizieren. Weitere Informationen

Azure Application Gateway ruft nicht nur alle vier Stunden die erneuerte Zertifikatversion von Key Vault ab. Es protokolliert auch alle Fehler und ist in Azure Advisor integriert, um ggf. vorhandene Fehlkonfigurationen sowie eine Empfehlung für deren Korrektur anzuzeigen.

  1. Melden Sie sich beim Azure-Portal an.
  2. Wählen Sie „Advisor“ aus.
  3. Wählen Sie im linken Menü die Kategorie „Optimaler Betrieb“ aus.
  4. Sollte dieses Problem bei Ihrem Gateway auftreten, wird eine Empfehlung mit dem Titel Beheben eines Azure Key Vault-Problems für Ihre Application Gateway-Instanz angezeigt. Vergewissern Sie sich, dass in den obigen Dropdownoptionen das richtige Abonnement ausgewählt ist.
  5. Treffen Sie die entsprechende Auswahl, um die Fehlerdetails, die zugeordnete Schlüsseltresorressource und den Leitfaden zur Problembehandlung für Ihr spezifisches Problem anzuzeigen.

Durch die Identifizierung eines solchen Ereignisses über Azure Advisor oder Resource Health können Sie ggf. vorhandene Konfigurationsprobleme für Ihre Key Vault-Instanz schnell beheben. Es wird dringend empfohlen, Warnungen von Azure Advisor und Resource Health zu nutzen, um bei der Erkennung eines Problems auf dem Laufenden zu bleiben.

Verwenden Sie für die Advisor-Warnung „Beheben eines Azure Key Vault-Problems für Ihre Application Gateway-Instanz“ im Empfehlungstyp, wie nachstehend zu sehen:
Diagramm der Schritte für die Advisor-Warnung

Sie können die Resource Health-Benachrichtigung wie dargestellt konfigurieren:
Diagramm der Schritte für die Resource Health-Warnung

Nächste Schritte

Konfigurieren von TLS-Terminierung mit Key Vault-Zertifikaten mithilfe von Azure PowerShell