TLS-avslutning med Key Vault-certifikat

Azure Key Vault är ett plattformshanterat hemligt arkiv som du kan använda för att skydda hemligheter, nycklar och TLS/SSL-certifikat. Azure Application Gateway stöder integrering med Key Vault för servercertifikat som är kopplade till HTTPS-aktiverade lyssnare. Det här stödet är begränsat till v2-SKU:n för Application Gateway.

Application Gateway erbjuder två modeller för TLS-avslutning:

  • Ange TLS/SSL-certifikat som är kopplade till lyssnaren. Den här modellen är det traditionella sättet att skicka TLS/SSL-certifikat till Application Gateway för TLS-avslutning.
  • Ange en referens till ett befintligt Key Vault-certifikat eller en hemlighet när du skapar en HTTPS-aktiverad lyssnare.

Application Gateway-integrering med Key Vault har många fördelar, bland annat:

  • Starkare säkerhet eftersom TLS/SSL-certifikat inte hanteras direkt av programutvecklingsteamet. Med integrering kan ett separat säkerhetsteam:
    • Konfigurera programgatewayer.
    • Kontrollera programgatewayens livscykel.
    • Bevilja behörigheter till valda programgatewayer för att få åtkomst till certifikat som lagras i ditt Key Vault.
  • Stöd för att importera befintliga certifikat till ditt Key Vault. Eller använd Key Vault-API:er för att skapa och hantera nya certifikat med någon av de betrodda Key Vault-partnerna.
  • Stöd för automatisk förnyelse av certifikat som lagras i ditt Key Vault.

Certifikat som stöds

Application Gateway stöder för närvarande endast programvaruvaliderade certifikat. Maskinvarusäkerhetsmoduler (HSM)-verifierade certifikat stöds inte.

När Application Gateway har konfigurerats för att använda Key Vault-certifikat hämtar dess instanser certifikatet från Key Vault och installerar dem lokalt för TLS-avslutning. Instanserna avsöker Key Vault med fyra timmars intervall för att hämta en förnyad version av certifikatet, om det finns. Om ett uppdaterat certifikat hittas roteras TLS/SSL-certifikatet som är associerat med HTTPS-lyssnaren automatiskt.

Dricks

Alla ändringar i Application Gateway tvingar en kontroll mot Key Vault för att se om några nya versioner av certifikat är tillgängliga. Detta omfattar, men inte begränsat till, ändringar i IP-konfigurationer för klientdelen, lyssnare, regler, serverdelspooler, resurstaggar med mera. Om ett uppdaterat certifikat hittas visas det nya certifikatet omedelbart.

Application Gateway använder en hemlig identifierare i Key Vault för att referera till certifikaten. För Azure PowerShell, Azure CLI eller Azure Resource Manager rekommenderar vi starkt att du använder en hemlig identifierare som inte anger någon version. På så sätt roterar Application Gateway automatiskt certifikatet om en nyare version är tillgänglig i ditt Key Vault. Ett exempel på en hemlig URI utan en version är https://myvault.vault.azure.net/secrets/mysecret/. Du kan läsa PowerShell-stegen i följande avsnitt.

Azure-portalen stöder endast Key Vault-certifikat, inte hemligheter. Application Gateway har fortfarande stöd för att referera till hemligheter från Key Vault, men endast via resurser som inte är portalresurser som PowerShell, Azure CLI, API:er och Azure Resource Manager-mallar (ARM-mallar).

Referenser till Key Vaults i andra Azure-prenumerationer stöds, men måste konfigureras via ARM-mall, Azure PowerShell, CLI, Bicep osv. Konfiguration av nyckelvalv mellan prenumerationer stöds inte av Application Gateway via Azure-portalen i dag.

Certifikatinställningar i Key Vault

För TLS-avslutning stöder Application Gateway endast certifikat i PFX-format (Personal Information Exchange). Du kan antingen importera ett befintligt certifikat eller skapa ett nytt i ditt Key Vault. Om du vill undvika fel kontrollerar du att certifikatets status är inställd på Aktiverad i Key Vault.

Så här fungerar integrering

Application Gateway-integrering med Key Vault är en konfigurationsprocess i tre steg:

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

Kommentar

Azure Application Gateway-integrering med Key Vault stöder både behörighetsmodeller för valvåtkomst och rollbaserad åtkomstkontroll i Azure.

Skaffa en användartilldelad hanterad identitet

Application Gateway använder en hanterad identitet för att hämta certifikat från Key Vault åt dig.

Du kan antingen skapa en ny användartilldelad hanterad identitet eller återanvända en befintlig med integreringen. Information om hur du skapar en ny användartilldelad hanterad identitet finns i Skapa en användartilldelad hanterad identitet med hjälp av Azure-portalen.

Delegera användartilldelad hanterad identitet till Key Vault

Definiera åtkomstprinciper för att använda den användartilldelade hanterade identiteten med ditt Key Vault:

  1. Gå till Key Vault i Azure-portalen.

  2. Välj det Key Vault som innehåller certifikatet.

  3. Om du använder behörighetsmodellen Valvåtkomstprincip: Välj Åtkomstprinciper, välj + Lägg till åtkomstprincip, välj Hämta för hemliga behörigheter och välj din användartilldelade hanterade identitet för Välj huvudnamn. Välj sedan Spara.

    Om du använder rollbaserad åtkomstkontroll i Azure följer du artikeln Tilldela en hanterad identitet åtkomst till en resurs och tilldela den användartilldelade hanterade identiteten rollen Key Vault Secrets User till Azure Key Vault.

Verifiera brandväggsbehörigheter till Key Vault

Från och med den 15 mars 2021 identifierar Key Vault Application Gateway som en betrodd tjänst genom att använda användarhanterade identiteter för autentisering till Azure Key Vault. Med hjälp av tjänstslutpunkter och aktivera alternativet betrodda tjänster för Key Vault-brandväggen kan du skapa en säker nätverksgräns i Azure. Du kan neka åtkomst till trafik från alla nätverk (inklusive Internettrafik) till Key Vault men ändå göra Key Vault tillgängligt för en Application Gateway-resurs under din prenumeration.

När du använder ett begränsat Key Vault använder du följande steg för att konfigurera Application Gateway att använda brandväggar och virtuella nätverk:

Dricks

Steg 1–3 krävs inte om nyckelvalvet har en privat slutpunkt aktiverad. Programgatewayen kan komma åt Key Vault med hjälp av den privata IP-adressen.

Viktigt!

Om du använder privata slutpunkter för att komma åt Key Vault måste du länka den privatelink.vaultcore.azure.net privata DNS-zonen, som innehåller motsvarande post till det refererade Key Vault, till det virtuella nätverk som innehåller Application Gateway. Anpassade DNS-servrar kan fortsätta att användas i det virtuella nätverket i stället för de Azure DNS-tillhandahållna matcharna, men den privata DNS-zonen måste även vara länkad till det virtuella nätverket.

  1. I Azure-portalen går du till ditt Key Vault och väljer Nätverk.

  2. På fliken Brandväggar och virtuella nätverk väljer du Valda nätverk.

  3. För Virtuella nätverk väljer du + Lägg till befintliga virtuella nätverk och lägger sedan till det virtuella nätverket och undernätet för din Application Gateway-instans. Om du uppmanas att göra det kontrollerar du att kryssrutan "Microsoft.KeyVault"-tjänstslutpunkter för tillfället inte är markerad för att se Microsoft.KeyVault till att tjänstslutpunkten är aktiverad i undernätet.

  4. Välj Ja för att tillåta att betrodda tjänster kringgår Key Vault-brandväggen.

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

Kommentar

Om du distribuerar Application Gateway-instansen via en ARM-mall med hjälp av antingen Azure CLI eller PowerShell, eller via ett Azure-program som distribuerats från Azure-portalen, lagras SSL-certifikatet i Key Vault som en Base64-kodad PFX-fil. Du måste slutföra stegen i Använda Azure Key Vault för att skicka säkert parametervärde under distributionen.

Det är särskilt viktigt att ange enabledForTemplateDeployment till true. Certifikatet kanske eller kanske inte har något lösenord. För ett certifikat med ett lösenord visar följande exempel en möjlig konfiguration för sslCertificates posten i properties för ARM-mallkonfigurationen för Application Gateway.

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

Värdena appGatewaySSLCertificateData för och appGatewaySSLCertificatePassword letas upp från Key Vault enligt beskrivningen i Referenshemligheter med dynamiskt ID. Följ referenserna bakåt från parameters('secretName') för att se hur sökningen sker. Om certifikatet är lösenordslöst utelämnar du posten password .

Konfigurera Application Gateway-lyssnare

Key Vault-behörighet– Principmodell för valvåtkomst

Gå till Application Gateway i Azure-portalen och välj fliken Lyssnare . Välj Lägg till lyssnare (eller välj en befintlig lyssnare) och ange HTTPS för protokollet.

Under Välj ett certifikat väljer du Skapa nytt och väljer sedan Välj ett certifikat från Key Vault under Https-inställningar.

För Certifikatnamn skriver du ett eget namn för certifikatet som ska refereras till i Key Vault. Välj hanterad identitet, nyckelvalv och certifikat.

När du har valt väljer du Lägg till (om du skapar) eller Spara (om du redigerar) för att tillämpa det refererade Key Vault-certifikatet på lyssnaren.

Key Vault Azure rollbaserad behörighetsmodell för åtkomstkontroll

Application Gateway stöder certifikat som refereras i Key Vault via behörighetsmodellen rollbaserad åtkomstkontroll. De första stegen för att referera till Key Vault måste slutföras via ARM-mallen, Bicep, CLI eller PowerShell.

Kommentar

Det går inte att ange Azure Key Vault-certifikat som omfattas av den rollbaserade behörighetsmodellen för åtkomstkontroll via portalen.

I det här exemplet använder vi PowerShell för att referera till en ny Key Vault-hemlighet.

# 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

När kommandona har körts kan du navigera till Application Gateway i Azure-portalen och välja fliken Lyssnare. Klicka på Lägg till lyssnare (eller välj en befintlig) och ange protokollet till HTTPS.

Under Välj ett certifikat väljer du certifikatet med namnet i föregående steg. När du har valt väljer du Lägg till (om du skapar) eller Spara (om du redigerar) för att tillämpa det refererade Key Vault-certifikatet på lyssnaren.

Undersöka och lösa Key Vault-fel

Kommentar

Det är viktigt att överväga eventuella effekter på din application gateway-resurs när du gör ändringar eller återkallar åtkomsten till din Key Vault-resurs. Om din programgateway inte kan komma åt det associerade nyckelvalvet eller hitta certifikatobjektet i det, anger programgatewayen automatiskt lyssnaren till ett inaktiverat tillstånd.

Du kan identifiera den här användardrivna händelsen genom att visa Resource Health för din programgateway. Läs mer.

Azure Application Gateway söker inte bara efter den förnyade certifikatversionen på Key Vault var fjärde timmes intervall. Den loggar även eventuella fel och är integrerad med Azure Advisor för att visa eventuella felkonfigurationer med en rekommendation för korrigeringen.

  1. Logga in på Azure-portalen
  2. Välj Advisor
  3. Välj kategorin Operational Excellence (Driftskvalitet) på den vänstra menyn.
  4. Du hittar en rekommendation med titeln Lös Azure Key Vault-problem för din Application Gateway, om din gateway har det här problemet. Kontrollera att rätt prenumeration har valts i listrutan ovan.
  5. Välj den för att visa felinformationen, den associerade nyckelvalvsresursen och felsökningsguiden för att åtgärda ditt exakta problem.

Genom att identifiera en sådan händelse via Azure Advisor eller Resource Health kan du snabbt lösa eventuella konfigurationsproblem med ditt Key Vault. Vi rekommenderar starkt att du använder Azure Advisor- och Resource Health-aviseringar för att hålla dig informerad när ett problem upptäcks.

För Advisor-avisering använder du "Lösa Azure Key Vault-problem för din Application Gateway" i den rekommendationstyp som visas:
Diagram that shows steps for Advisor alert.

Du kan konfigurera resurshälsoaviseringen enligt följande:
Diagram that shows steps for Resource health alert.

Nästa steg

Konfigurera TLS-avslutning med Key Vault-certifikat med hjälp av Azure PowerShell