TLS-beëindiging met Key Vault-certificaten

Azure Key Vault is een door het platform beheerd geheim archief dat u kunt gebruiken om geheimen, sleutels en TLS/SSL-certificaten te beveiligen. Azure-toepassing Gateway ondersteunt integratie met Key Vault voor servercertificaten die zijn gekoppeld aan listeners met HTTPS-functionaliteit. Deze ondersteuning is beperkt tot de v2-SKU van Application Gateway.

Application Gateway biedt twee modellen voor TLS-beëindiging:

  • Geef TLS/SSL-certificaten op die zijn gekoppeld aan de listener. Dit model is de traditionele manier om TLS/SSL-certificaten door te geven aan Application Gateway voor TLS-beëindiging.
  • Geef een verwijzing op naar een bestaand Key Vault-certificaat of -geheim wanneer u een https-listener maakt.

Integratie van Application Gateway met Key Vault biedt veel voordelen, waaronder:

  • Sterkere beveiliging, omdat TLS/SSL-certificaten niet rechtstreeks worden verwerkt door het ontwikkelteam van de toepassing. Integratie biedt een afzonderlijk beveiligingsteam de volgende mogelijkheden:
    • Toepassingsgateways instellen.
    • Beheer de levenscyclus van application gateways.
    • Verken machtigingen aan geselecteerde toepassingsgateways voor toegang tot certificaten die zijn opgeslagen in uw Key Vault.
  • Ondersteuning voor het importeren van bestaande certificaten in uw Key Vault. Of gebruik Key Vault-API's om nieuwe certificaten te maken en te beheren met een van de vertrouwde Key Vault-partners.
  • Ondersteuning voor het automatisch vernieuwen van certificaten die zijn opgeslagen in uw Key Vault.

Ondersteunde certificaten

Application Gateway ondersteunt momenteel alleen softwarevalideerde certificaten. HSM-gevalideerde certificaten (Hardware Security Module) worden niet ondersteund.

Nadat Application Gateway is geconfigureerd voor het gebruik van Key Vault-certificaten, halen de exemplaren het certificaat op uit Key Vault en installeren ze lokaal voor TLS-beëindiging. De exemplaren peilen Key Vault met intervallen van vier uur om een vernieuwde versie van het certificaat op te halen, indien aanwezig. Als er een bijgewerkt certificaat wordt gevonden, wordt het TLS/SSL-certificaat dat is gekoppeld aan de HTTPS-listener automatisch geroteerd.

Tip

Elke wijziging in Application Gateway dwingt een controle af bij Key Vault om te zien of er nieuwe versies van certificaten beschikbaar zijn. Dit omvat, maar niet beperkt tot, wijzigingen in Front-end-IP-configuraties, listeners, regels, back-endpools, resourcetags en meer. Als er een bijgewerkt certificaat wordt gevonden, wordt het nieuwe certificaat onmiddellijk weergegeven.

Application Gateway gebruikt een geheime id in Key Vault om naar de certificaten te verwijzen. Voor Azure PowerShell, de Azure CLI of Azure Resource Manager raden we u ten zeerste aan een geheime id te gebruiken die geen versie opgeeft. Op deze manier draait Application Gateway het certificaat automatisch als er een nieuwere versie beschikbaar is in uw Key Vault. Een voorbeeld van een geheime URI zonder versie is https://myvault.vault.azure.net/secrets/mysecret/. U kunt de PowerShell-stappen in de volgende sectie raadplegen.

Azure Portal ondersteunt alleen Key Vault-certificaten, niet geheimen. Application Gateway ondersteunt nog steeds verwijzingen naar geheimen uit Key Vault, maar alleen via niet-portalresources zoals PowerShell, de Azure CLI, API's en ARM-sjablonen (Azure Resource Manager).

Verwijzingen naar Key Vaults in andere Azure-abonnementen worden ondersteund, maar moeten worden geconfigureerd via ARM-sjabloon, Azure PowerShell, CLI, Bicep, enzovoort. Sleutelkluisconfiguratie voor meerdere abonnementen wordt momenteel niet ondersteund door Application Gateway via Azure Portal.

Certificaatinstellingen in Key Vault

Voor TLS-beëindiging ondersteunt Application Gateway alleen certificaten in PFX-indeling (Personal Information Exchange). U kunt een bestaand certificaat importeren of een nieuw certificaat maken in uw Sleutelkluis. Als u fouten wilt voorkomen, moet u ervoor zorgen dat de status van het certificaat is ingesteld op Ingeschakeld in Key Vault.

Hoe integratie werkt

Application Gateway-integratie met Key Vault is een configuratieproces in drie stappen:

Diagram that shows three steps for integrating Application Gateway with Key Vault.

Notitie

Azure-toepassing Gateway-integratie met Key Vault biedt ondersteuning voor toegangsbeleid voor Zowel Vault als op rollen gebaseerd toegangsbeheer van Azure.

Een door de gebruiker toegewezen beheerde identiteit verkrijgen

Application Gateway gebruikt een beheerde identiteit om namens u certificaten op te halen uit Key Vault.

U kunt een nieuwe door de gebruiker toegewezen beheerde identiteit maken of een bestaande identiteit opnieuw gebruiken met de integratie. Zie Een door de gebruiker toegewezen beheerde identiteit maken met behulp van Azure Portal om een nieuwe door de gebruiker toegewezen beheerde identiteit te maken.

Door de gebruiker toegewezen beheerde identiteit delegeren aan Key Vault

Toegangsbeleid definiëren voor het gebruik van de door de gebruiker toegewezen beheerde identiteit met uw Key Vault:

  1. Ga in Azure Portal naar Key Vault.

  2. Selecteer de sleutelkluis die uw certificaat bevat.

  3. Als u het toegangsbeleid voor de kluis van het machtigingsmodel gebruikt: selecteer Toegangsbeleid, selecteer + Toegangsbeleid toevoegen, selecteer Machtigingen ophalen voor geheim en kies uw door de gebruiker toegewezen beheerde identiteit voor select-principal. Selecteer vervolgens Opslaan.

    Als u op rollen gebaseerd toegangsbeheer van Azure gebruikt, volgt u het artikel Een beheerde identiteit toegang tot een resource toewijzen en de door de gebruiker toegewezen beheerde identiteit de rol Key Vault Secrets User toewijzen aan De Azure Key Vault.

Firewallmachtigingen voor Key Vault controleren

Vanaf 15 maart 2021 herkent Key Vault Application Gateway als een vertrouwde service door gebruik te maken van door gebruikers beheerde identiteiten voor verificatie bij Azure Key Vault. Met het gebruik van service-eindpunten en het inschakelen van de optie vertrouwde services voor de firewall van Key Vault, kunt u een veilige netwerkgrens in Azure bouwen. U kunt de toegang tot verkeer van alle netwerken (inclusief internetverkeer) naar Key Vault weigeren, maar Key Vault nog steeds toegankelijk maken voor een Application Gateway-resource onder uw abonnement.

Wanneer u een beperkte Key Vault gebruikt, gebruikt u de volgende stappen om Application Gateway te configureren voor het gebruik van firewalls en virtuele netwerken:

Tip

Stap 1-3 is niet vereist als uw Key Vault een privé-eindpunt heeft ingeschakeld. De toepassingsgateway heeft toegang tot key Vault met behulp van het privé-IP-adres.

Belangrijk

Als u privé-eindpunten gebruikt voor toegang tot Key Vault, moet u de privatelink.vaultcore.azure.net privé-DNS-zone, die de bijbehorende record bevat, koppelen aan de sleutelkluis waarnaar wordt verwezen naar het virtuele netwerk met Application Gateway. Aangepaste DNS-servers kunnen nog steeds worden gebruikt in het virtuele netwerk in plaats van de door Azure DNS geleverde resolvers, maar de privé-DNS-zone moet ook gekoppeld blijven aan het virtuele netwerk.

  1. Selecteer Netwerken in de Azure-portal in uw Key Vault.

  2. Selecteer Geselecteerde netwerken op het tabblad Firewalls en virtuele netwerken.

  3. Voor virtuele netwerken selecteert u + Bestaande virtuele netwerken toevoegen en voegt u vervolgens het virtuele netwerk en subnet voor uw Application Gateway-exemplaar toe. Als u hierom wordt gevraagd, controleert u of het selectievakje 'Microsoft.KeyVault'-service-eindpunten op dit moment niet is ingeschakeld om ervoor te zorgen dat het Microsoft.KeyVault service-eindpunt is ingeschakeld op het subnet.

  4. Selecteer Ja om vertrouwde services toe te staan de firewall van key vault te omzeilen.

    Screenshot that shows selections for configuring Application Gateway to use firewalls and virtual networks.

Notitie

Als u het Application Gateway-exemplaar implementeert via een ARM-sjabloon met behulp van de Azure CLI of PowerShell, of via een Azure-toepassing die is geïmplementeerd vanuit De Azure-portal, wordt het SSL-certificaat in de Key Vault opgeslagen als een PFX-bestand met Base64-codering. U moet de stappen in Azure Key Vault uitvoeren om tijdens de implementatie een veilige parameterwaarde door te geven.

Het is vooral belangrijk om in te stellen enabledForTemplateDeployment op true. Het certificaat heeft al dan niet een wachtwoord. Voor een certificaat met een wachtwoord toont het volgende voorbeeld een mogelijke configuratie voor de sslCertificates vermelding in properties voor de ARM-sjabloonconfiguratie voor Application Gateway.

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

De waarden van appGatewaySSLCertificateData en appGatewaySSLCertificatePassword worden opgezoekd vanuit de Key Vault, zoals beschreven in Referentiegeheimen met dynamische id. Volg de verwijzingen naar achteren parameters('secretName') om te zien hoe de zoekactie plaatsvindt. Als het certificaat wachtwoordloos is, laat u de password vermelding weg.

Application Gateway-listener configureren

Key Vault-toegangsbeleidsmodel voor kluismachtigingen

Navigeer naar uw Toepassingsgateway in Azure Portal en selecteer het tabblad Listeners . Selecteer Listener toevoegen (of selecteer een bestaande listener ) en geef HTTPS op voor het protocol.

Selecteer onder Een certificaat kiezen de optie Nieuw maken en selecteer vervolgens Een certificaat kiezen in Key Vault onder Https-instellingen.

Voor certificaatnaam typt u een beschrijvende naam voor het certificaat waarnaar moet worden verwezen in Key Vault. Kies uw beheerde identiteit, sleutelkluis en certificaat.

Nadat u dit hebt geselecteerd, selecteert u Toevoegen (indien gemaakt) of Opslaan (indien bewerken) om het key vault-certificaat waarnaar wordt verwezen toe te passen op de listener.

Machtigingsmodel voor op rollen gebaseerd toegangsbeheer van Key Vault in Azure

Application Gateway ondersteunt certificaten waarnaar wordt verwezen in Key Vault via het machtigingsmodel voor op rollen gebaseerd toegangsbeheer. De eerste paar stappen om naar de Sleutelkluis te verwijzen, moeten worden voltooid via een ARM-sjabloon, Bicep, CLI of PowerShell.

Notitie

Het opgeven van Azure Key Vault-certificaten die onderhevig zijn aan het machtigingsmodel voor toegangsbeheer op basis van rollen, wordt niet ondersteund via de portal.

In dit voorbeeld gebruiken we PowerShell om te verwijzen naar een nieuw Key Vault-geheim.

# 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

Zodra de opdrachten zijn uitgevoerd, kunt u naar uw Toepassingsgateway navigeren in De Azure-portal en het tabblad Listeners selecteren. Klik op Listener toevoegen (of selecteer een bestaande versie) en geef het protocol op voor HTTPS.

Selecteer onder Kies een certificaat het certificaat met de naam in de vorige stappen. Nadat u dit hebt geselecteerd, selecteert u Toevoegen (indien gemaakt) of Opslaan (indien bewerken) om het key vault-certificaat waarnaar wordt verwezen toe te passen op de listener.

Key Vault-fouten onderzoeken en oplossen

Notitie

Het is belangrijk om rekening te houden met eventuele gevolgen voor uw application gateway-resource bij het aanbrengen van wijzigingen of het intrekken van toegang tot uw Key Vault-resource. Als uw toepassingsgateway geen toegang heeft tot de gekoppelde sleutelkluis of het certificaatobject erin kan vinden, stelt de toepassingsgateway de listener automatisch in op een uitgeschakelde status.

U kunt deze door de gebruiker gestuurde gebeurtenis identificeren door de Resource Health voor uw toepassingsgateway weer te geven. Meer informatie.

Azure-toepassing Gateway peilt niet alleen naar de vernieuwde certificaatversie in Key Vault met een interval van vier uur. Ook worden eventuele fouten in logboeken opgeslagen en geïntegreerd met Azure Advisor om eventuele onjuiste configuratie weer te geven met een aanbeveling voor de oplossing.

  1. Aanmelden bij uw Azure-portal
  2. Advisor selecteren
  3. Selecteer de categorie Operational Excellence in het linkermenu.
  4. U vindt een aanbeveling met de titel Probleem met Azure Key Vault voor uw Toepassingsgateway oplossen als uw gateway dit probleem ondervindt. Zorg ervoor dat het juiste abonnement is geselecteerd in de bovenstaande vervolgkeuzelijsten.
  5. Selecteer deze om de foutdetails, de bijbehorende sleutelkluisresource en de gids voor probleemoplossing weer te geven om uw exacte probleem op te lossen.

Door een dergelijke gebeurtenis te identificeren via Azure Advisor of Resource Health, kunt u snel configuratieproblemen met uw Key Vault oplossen. We raden u ten zeerste aan om te profiteren van Azure Advisor - en Resource Health-waarschuwingen om op de hoogte te blijven wanneer er een probleem wordt gedetecteerd.

Gebruik voor advisor-waarschuwing 'Probleem met Azure Key Vault voor uw toepassingsgateway oplossen' in het weergegeven aanbevelingstype:
Diagram that shows steps for Advisor alert.

U kunt de resourcestatuswaarschuwing configureren zoals geïllustreerd:
Diagram that shows steps for Resource health alert.

Volgende stappen

TLS-beëindiging met Key Vault-certificaten configureren met behulp van Azure PowerShell