Zakończenie szyfrowania TLS z certyfikatami usługi Key Vault

Usługa Azure Key Vault to zarządzany przez platformę magazyn wpisów tajnych, którego można użyć do ochrony wpisów tajnych, kluczy i certyfikatów TLS/SSL. usługa aplikacja systemu Azure Gateway obsługuje integrację z usługą Key Vault dla certyfikatów serwera dołączonych do odbiorników z obsługą protokołu HTTPS. Ta obsługa jest ograniczona do jednostki SKU w wersji 2 usługi Application Gateway.

Usługa Application Gateway oferuje dwa modele zakończenia protokołu TLS:

  • Podaj certyfikaty TLS/SSL dołączone do odbiornika. Ten model jest tradycyjnym sposobem przekazywania certyfikatów TLS/SSL do usługi Application Gateway w celu zakończenia szyfrowania TLS.
  • Podaj odwołanie do istniejącego certyfikatu usługi Key Vault lub wpisu tajnego podczas tworzenia odbiornika obsługującego protokół HTTPS.

Integracja usługi Application Gateway z usługą Key Vault oferuje wiele korzyści, w tym:

  • Silniejsze zabezpieczenia, ponieważ certyfikaty TLS/SSL nie są bezpośrednio obsługiwane przez zespół deweloperów aplikacji. Integracja umożliwia oddzielnemu zespołowi ds. zabezpieczeń:
    • Konfigurowanie bram aplikacji.
    • Kontrolowanie cykli życia bramy aplikacji.
    • Udziel uprawnień wybranym bramom aplikacji w celu uzyskania dostępu do certyfikatów przechowywanych w usłudze Key Vault.
  • Obsługa importowania istniejących certyfikatów do usługi Key Vault. Możesz też użyć interfejsów API usługi Key Vault do tworzenia nowych certyfikatów i zarządzania nimi przy użyciu dowolnego z zaufanych partnerów usługi Key Vault.
  • Obsługa automatycznego odnawiania certyfikatów przechowywanych w usłudze Key Vault.

Obsługiwane certyfikaty

Usługa Application Gateway obecnie obsługuje tylko certyfikaty zweryfikowane przez oprogramowanie. Certyfikaty zweryfikowane przez sprzętowy moduł zabezpieczeń (HSM) nie są obsługiwane.

Po skonfigurowaniu usługi Application Gateway do używania certyfikatów usługi Key Vault jego wystąpienia pobierają certyfikat z usługi Key Vault i instalują je lokalnie w celu zakończenia szyfrowania TLS. Wystąpienia sondować usługę Key Vault w czterech godzinach, aby pobrać odnowioną wersję certyfikatu, jeśli istnieje. Jeśli zostanie znaleziony zaktualizowany certyfikat, zostanie automatycznie obrócony certyfikat TLS/SSL skojarzony z odbiornikiem HTTPS.

Napiwek

Każda zmiana usługi Application Gateway wymusza sprawdzenie w usłudze Key Vault, aby sprawdzić, czy są dostępne jakiekolwiek nowe wersje certyfikatów. Obejmuje to, ale nie tylko, zmiany konfiguracji adresów IP frontonu, odbiorników, reguł, pul zaplecza, tagów zasobów i nie tylko. Jeśli zostanie znaleziony zaktualizowany certyfikat, zostanie natychmiast wyświetlony nowy certyfikat.

Usługa Application Gateway używa identyfikatora wpisu tajnego w usłudze Key Vault do odwoływanie się do certyfikatów. W przypadku programu Azure PowerShell, interfejsu wiersza polecenia platformy Azure lub usługi Azure Resource Manager zdecydowanie zalecamy użycie identyfikatora wpisu tajnego, który nie określa wersji. Dzięki temu usługa Application Gateway automatycznie obraca certyfikat, jeśli nowsza wersja jest dostępna w usłudze Key Vault. Przykładem identyfikatora URI wpisu tajnego bez wersji jest https://myvault.vault.azure.net/secrets/mysecret/. Możesz zapoznać się z krokami programu PowerShell podanymi w poniższej sekcji.

Witryna Azure Portal obsługuje tylko certyfikaty usługi Key Vault, a nie wpisy tajne. Usługa Application Gateway nadal obsługuje odwoływanie się do wpisów tajnych z usługi Key Vault, ale tylko za pośrednictwem zasobów innych niż portal, takich jak program PowerShell, interfejs wiersza polecenia platformy Azure, interfejsy API i szablony usługi Azure Resource Manager (szablony usługi ARM).

Obsługiwane są odwołania do usługi Key Vault w innych subskrypcjach platformy Azure, ale muszą być skonfigurowane za pośrednictwem szablonu usługi ARM, programu Azure PowerShell, interfejsu wiersza polecenia, Bicep itp. Konfiguracja magazynu kluczy między subskrypcjami nie jest obecnie obsługiwana przez usługę Application Gateway za pośrednictwem witryny Azure Portal.

Ustawienia certyfikatu w usłudze Key Vault

W przypadku kończenia protokołu TLS usługa Application Gateway obsługuje tylko certyfikaty w formacie PFX (Personal Information Exchange). Możesz zaimportować istniejący certyfikat lub utworzyć nowy w usłudze Key Vault. Aby uniknąć błędów, upewnij się, że stan certyfikatu jest ustawiony na Włączone w usłudze Key Vault.

Jak działa integracja

Integracja usługi Application Gateway z usługą Key Vault jest procesem konfiguracji trzyetapowej:

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

Uwaga

integracja usługi aplikacja systemu Azure Gateway z usługą Key Vault obsługuje zarówno zasady dostępu magazynu, jak i modele uprawnień kontroli dostępu opartej na rolach platformy Azure.

Uzyskiwanie tożsamości zarządzanej przypisanej przez użytkownika

Usługa Application Gateway używa tożsamości zarządzanej do pobierania certyfikatów z usługi Key Vault w Twoim imieniu.

Możesz utworzyć nową tożsamość zarządzaną przypisaną przez użytkownika lub ponownie użyć istniejącej z integracją. Aby utworzyć nową tożsamość zarządzaną przypisaną przez użytkownika, zobacz Tworzenie tożsamości zarządzanej przypisanej przez użytkownika przy użyciu witryny Azure Portal.

Delegowanie tożsamości zarządzanej przypisanej przez użytkownika do usługi Key Vault

Zdefiniuj zasady dostępu, aby używać tożsamości zarządzanej przypisanej przez użytkownika w usłudze Key Vault:

  1. W witrynie Azure Portal przejdź do usługi Key Vault.

  2. Wybierz usługę Key Vault zawierającą certyfikat.

  3. Jeśli używasz zasad dostępu magazynu modelu uprawnień: wybierz pozycję Zasady dostępu, wybierz pozycję + Dodaj zasady dostępu, wybierz pozycję Pobierz dla uprawnień wpisów tajnych i wybierz tożsamość zarządzaną przypisaną przez użytkownika dla pozycji Wybierz podmiot zabezpieczeń. Następnie wybierz opcję Zapisz.

    Jeśli używasz kontroli dostępu opartej na rolach platformy Azure, postępuj zgodnie z artykułem Przypisywanie dostępu tożsamości zarządzanej do zasobu i przypisywanie tożsamości zarządzanej przypisanej przez użytkownika roli Użytkownik wpisów tajnych usługi Key Vault do usługi Azure Key Vault.

Weryfikowanie uprawnień zapory do usługi Key Vault

Od 15 marca 2021 r. usługa Key Vault rozpoznaje usługę Application Gateway jako zaufaną usługę, korzystając z tożsamości zarządzanych przez użytkownika na potrzeby uwierzytelniania w usłudze Azure Key Vault. Korzystając z punktów końcowych usługi i włączając opcję zaufanych usług dla zapory usługi Key Vault, można utworzyć bezpieczną granicę sieci na platformie Azure. Możesz odmówić dostępu do ruchu ze wszystkich sieci (w tym ruchu internetowego) do usługi Key Vault, ale nadal udostępnić magazyn Key Vault dla zasobu usługi Application Gateway w ramach subskrypcji.

W przypadku korzystania z usługi Key Vault z ograniczeniami wykonaj następujące kroki, aby skonfigurować usługę Application Gateway do używania zapór i sieci wirtualnych:

Napiwek

Kroki 1–3 nie są wymagane, jeśli usługa Key Vault ma włączony prywatny punkt końcowy. Brama aplikacji może uzyskać dostęp do usługi Key Vault przy użyciu prywatnego adresu IP.

Ważne

W przypadku uzyskiwania dostępu do usługi Key Vault przy użyciu prywatnych punktów końcowych należy połączyć prywatną strefę DNS privatelink.vaultcore.azure.ne,t zawierającą odpowiedni rekord do przywoływanej usługi Key Vault, z siecią wirtualną, która zawiera usługę Application Gateway. Niestandardowe serwery DNS mogą nadal być używane w sieci wirtualnej zamiast udostępnianych funkcji rozpoznawania nazw dns platformy Azure, jednak prywatna strefa DNS musi pozostać połączona z siecią wirtualną.

  1. W witrynie Azure Portal w usłudze Key Vault wybierz pozycję Sieć.

  2. Na karcie Zapory i sieci wirtualne wybierz pozycję Wybrane sieci.

  3. W obszarze Sieci wirtualne wybierz pozycję + Dodaj istniejące sieci wirtualne, a następnie dodaj sieć wirtualną i podsieć dla wystąpienia usługi Application Gateway. Jeśli zostanie wyświetlony monit, upewnij się , że pole wyboru Nie konfiguruj punktów końcowych usługi "Microsoft.KeyVault" w tej chwili jest niezaznaczone, aby upewnić się, że Microsoft.KeyVault punkt końcowy usługi jest włączony w podsieci.

  4. Wybierz pozycję Tak , aby zezwolić zaufanym usługom na obejście zapory usługi Key Vault.

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

Uwaga

W przypadku wdrażania wystąpienia usługi Application Gateway za pośrednictwem szablonu usługi ARM przy użyciu interfejsu wiersza polecenia platformy Azure lub programu PowerShell albo za pośrednictwem aplikacji platformy Azure wdrożonej z witryny Azure Portal certyfikat SSL jest przechowywany w usłudze Key Vault jako plik PFX zakodowany w formacie Base64. Należy wykonać kroki opisane w temacie Używanie usługi Azure Key Vault, aby przekazać wartość bezpiecznego parametru podczas wdrażania.

Szczególnie ważne jest, aby ustawić wartość enabledForTemplateDeploymenttrue. Certyfikat może lub nie ma hasła. W przypadku certyfikatu z hasłem w poniższym przykładzie przedstawiono możliwą konfigurację sslCertificates wpisu dla properties konfiguracji szablonu usługi ARM dla usługi Application Gateway.

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

Wartości appGatewaySSLCertificateData i appGatewaySSLCertificatePassword są sprawdzane z usługi Key Vault zgodnie z opisem w temacie Odwołania do wpisów tajnych z identyfikatorem dynamicznym. Postępuj zgodnie z odwołaniami do tyłu, parameters('secretName') aby zobaczyć, jak działa wyszukiwanie. Jeśli certyfikat jest bez hasła, pomiń password wpis.

Konfigurowanie odbiornika usługi Application Gateway

Model zasad dostępu do magazynu uprawnień usługi Key Vault

Przejdź do usługi Application Gateway w witrynie Azure Portal i wybierz kartę Odbiorniki . Wybierz pozycję Dodaj odbiornik (lub wybierz istniejący odbiornik) i określ protokół HTTPS dla protokołu.

W obszarze Wybierz certyfikat wybierz pozycję Utwórz nowy , a następnie wybierz pozycję Wybierz certyfikat z usługi Key Vault w obszarze Ustawienia https.

W polu Nazwa certyfikatu wpisz przyjazną nazwę certyfikatu do odwołania w usłudze Key Vault. Wybierz tożsamość zarządzaną, usługę Key Vault i certyfikat.

Po wybraniu wybierz pozycję Dodaj (jeśli tworzysz) lub Zapisz (jeśli edytuje), aby zastosować do odbiornika odwołanie certyfikatu usługi Key Vault.

Model uprawnień kontroli dostępu opartej na rolach platformy Azure w usłudze Key Vault

Usługa Application Gateway obsługuje certyfikaty przywołyne w usłudze Key Vault za pośrednictwem modelu uprawnień kontroli dostępu opartej na rolach. Aby odwołać się do usługi Key Vault, należy wykonać kilka pierwszych kroków za pomocą szablonu usługi ARM, Bicep, interfejsu wiersza polecenia lub programu PowerShell.

Uwaga

Określanie certyfikatów usługi Azure Key Vault, które podlegają modelowi uprawnień kontroli dostępu opartego na rolach, nie jest obsługiwane za pośrednictwem portalu.

W tym przykładzie użyjemy programu PowerShell, aby odwołać się do nowego wpisu tajnego usługi Key Vault.

# 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

Po wykonaniu poleceń możesz przejść do usługi Application Gateway w witrynie Azure Portal i wybrać kartę Odbiorniki. Kliknij przycisk Dodaj odbiornik (lub wybierz istniejący) i określ protokół https.

W obszarze Wybierz certyfikat wybierz certyfikat o nazwie w poprzednich krokach. Po wybraniu wybierz pozycję Dodaj (jeśli tworzysz) lub Zapisz (jeśli edytuje), aby zastosować do odbiornika odwołanie certyfikatu usługi Key Vault.

Badanie i rozwiązywanie błędów usługi Key Vault

Uwaga

Podczas wprowadzania zmian lub odwołwania dostępu do zasobu usługi Key Vault należy wziąć pod uwagę jakikolwiek wpływ na zasób bramy aplikacji. Jeśli brama aplikacji nie może uzyskać dostępu do skojarzonego magazynu kluczy lub zlokalizować w nim obiekt certyfikatu, brama aplikacji automatycznie ustawia odbiornik na stan wyłączony.

To zdarzenie sterowane przez użytkownika można zidentyfikować, wyświetlając usługę Resource Health dla bramy aplikacji. Dowiedz się więcej.

aplikacja systemu Azure Gateway nie tylko sonduje nową wersję certyfikatu w usłudze Key Vault co cztery godziny. Rejestruje również wszelkie błędy i jest zintegrowany z usługą Azure Advisor, aby wyświetlić wszelkie błędy konfiguracji z zaleceniem dotyczącymi jego poprawki.

  1. Logowanie się do witryny Azure Portal
  2. Wybierz pozycję Advisor
  3. Wybierz kategorię Doskonałość operacyjna z menu po lewej stronie.
  4. Znajdziesz zalecenie zatytułowane Rozwiązywanie problemu z usługą Azure Key Vault dla usługi Application Gateway, jeśli twoja brama ma ten problem. Upewnij się, że wybrano poprawną subskrypcję z powyższych opcji listy rozwijanej.
  5. Wybierz go, aby wyświetlić szczegóły błędu, skojarzony zasób magazynu kluczy i przewodnik rozwiązywania problemów, aby rozwiązać dokładny problem.

Identyfikując takie zdarzenie za pośrednictwem usługi Azure Advisor lub usługi Resource Health, możesz szybko rozwiązać wszelkie problemy z konfiguracją usługi Key Vault. Zdecydowanie zalecamy korzystanie z alertów usługi Azure Advisor i usługi Resource Health , aby być na bieżąco po wykryciu problemu.

W przypadku alertu usługi Advisor użyj polecenia "Rozwiąż problem z usługą Azure Key Vault dla usługi Application Gateway" w wyświetlonym typie zalecenia:
Diagram that shows steps for Advisor alert.

Alert kondycji zasobu można skonfigurować, jak pokazano:
Diagram that shows steps for Resource health alert.

Następne kroki

Konfigurowanie kończenia żądań protokołu TLS przy użyciu certyfikatów usługi Key Vault przy użyciu programu Azure PowerShell