Terminação TLS com certificados do Key Vault

O Azure Key Vault é um repositório secreto gerenciado por plataforma que você pode usar para proteger segredos, chaves e certificados TLS/SSL. O Gateway de Aplicativo do Azure dá suporte à integração com o Cofre da Chave para certificados de servidor anexados a ouvintes habilitados para HTTPS. Esse suporte é limitado ao SKU v2 do Application Gateway.

O Application Gateway oferece dois modelos para terminação TLS:

  • Forneça certificados TLS/SSL anexados ao ouvinte. Este modelo é a maneira tradicional de passar certificados TLS/SSL para o Application Gateway para terminação TLS.
  • Forneça uma referência a um certificado ou segredo existente do Cofre da Chave ao criar um ouvinte habilitado para HTTPS.

A integração do Application Gateway com o Key Vault oferece muitos benefícios, incluindo:

  • Segurança mais forte, porque os certificados TLS/SSL não são tratados diretamente pela equipe de desenvolvimento de aplicativos. A integração permite que uma equipe de segurança separada:
    • Configure gateways de aplicativos.
    • Controle os ciclos de vida do gateway de aplicativos.
    • Conceda permissões a gateways de aplicativos selecionados para acessar certificados armazenados no Cofre da Chave.
  • Suporte para importar certificados existentes para o Cofre de Chaves. Ou use as APIs do Cofre da Chave para criar e gerenciar novos certificados com qualquer um dos parceiros confiáveis do Cofre da Chave.
  • Suporte para renovação automática de certificados armazenados no Cofre da Chave.

Certificados suportados

Atualmente, o Application Gateway suporta apenas certificados validados por software. Não há suporte para certificados validados pelo módulo de segurança de hardware (HSM).

Depois que o Application Gateway é configurado para usar certificados do Cofre da Chave, suas instâncias recuperam o certificado do Cofre da Chave e os instalam localmente para o encerramento do TLS. As instâncias sondam o Cofre da Chave em intervalos de quatro horas para recuperar uma versão renovada do certificado, se ele existir. Se um certificado atualizado for encontrado, o certificado TLS/SSL associado ao ouvinte HTTPS será alternado automaticamente.

Gorjeta

Qualquer alteração no Application Gateway força uma verificação no Cofre da Chave para ver se novas versões de certificados estão disponíveis. Isso inclui, mas não se limita a, alterações em Configurações de IP Frontend, Ouvintes, Regras, Pools de Back-end, Tags de Recursos e muito mais. Se for encontrado um certificado atualizado, o novo certificado é imediatamente apresentado.

O Application Gateway usa um identificador secreto no Cofre da Chave para fazer referência aos certificados. Para o Azure PowerShell, a CLI do Azure ou o Azure Resource Manager, é altamente recomendável que você use um identificador secreto que não especifique uma versão. Dessa forma, o Application Gateway gira automaticamente o certificado se uma versão mais recente estiver disponível no Cofre da Chave. Um exemplo de um URI secreto sem uma versão é https://myvault.vault.azure.net/secrets/mysecret/. Você pode consultar as etapas do PowerShell fornecidas na seção a seguir.

O portal do Azure dá suporte apenas a certificados do Cofre da Chave, não a segredos. O Gateway de Aplicativo ainda dá suporte à referência de segredos do Cofre da Chave, mas apenas por meio de recursos que não são do portal, como PowerShell, CLI do Azure, APIs e modelos do Azure Resource Manager (modelos ARM).

As referências aos Cofres de Chaves em outras assinaturas do Azure são suportadas, mas devem ser configuradas por meio do Modelo ARM, Azure PowerShell, CLI, Bicep, etc. A configuração do cofre de chaves entre assinaturas não é suportada pelo Application Gateway por meio do portal do Azure atualmente.

Configurações de certificado no Cofre da Chave

Para terminação TLS, o Application Gateway suporta apenas certificados no formato PFX (Personal Information Exchange). Você pode importar um certificado existente ou criar um novo no Cofre da Chave. Para evitar falhas, verifique se o status do certificado está definido como Habilitado no Cofre da Chave.

Como funciona a integração

A integração do Application Gateway com o Key Vault é um processo de configuração de três etapas:

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

Nota

A integração do Gateway de Aplicativo do Azure com o Cofre da Chave dá suporte à política de acesso do Vault e aos modelos de permissão de controle de acesso baseados em função do Azure.

Obter uma identidade gerenciada atribuída pelo usuário

O Application Gateway usa uma identidade gerenciada para recuperar certificados do Cofre da Chave em seu nome.

Você pode criar uma nova identidade gerenciada atribuída pelo usuário ou reutilizar uma existente com a integração. Para criar uma nova identidade gerenciada atribuída pelo usuário, consulte Criar uma identidade gerenciada atribuída pelo usuário usando o portal do Azure.

Delegar identidade gerenciada atribuída pelo usuário ao Cofre da Chave

Defina políticas de acesso para usar a identidade gerenciada atribuída pelo usuário com o Cofre da Chave:

  1. No portal do Azure, vá para Key Vault.

  2. Selecione o Cofre da Chave que contém o seu certificado.

  3. Se você estiver usando o modelo de permissão Política de acesso ao Vault: selecione Políticas de acesso, selecione + Adicionar política de acesso, selecione Obter permissões secretas e escolha sua identidade gerenciada atribuída pelo usuário para Selecionar entidade de segurança. Em seguida, selecione Guardar.

    Se você estiver usando o controle de acesso baseado em função do Azure, siga o artigo Atribuir um acesso de identidade gerenciado a um recurso e atribuir a identidade gerenciada atribuída pelo usuário, a função Usuário de Segredos do Cofre de Chaves, ao Cofre de Chaves do Azure.

Verificar as permissões de firewall para o Cofre da Chave

A partir de 15 de março de 2021, o Key Vault reconhece o Application Gateway como um serviço confiável, aproveitando as Identidades Gerenciadas pelo Usuário para autenticação no Azure Key Vault. Com o uso de pontos de extremidade de serviço e habilitando a opção de serviços confiáveis para o firewall do Cofre de Chaves, você pode criar um limite de rede seguro no Azure. Você pode negar o acesso ao tráfego de todas as redes (incluindo o tráfego da Internet) para o Cofre da Chave, mas ainda assim tornar o Cofre da Chave acessível para um recurso do Application Gateway sob sua assinatura.

Quando estiver usando um Cofre de Chaves restrito, use as seguintes etapas para configurar o Application Gateway para usar firewalls e redes virtuais:

Gorjeta

Os passos 1 a 3 não são necessários se o Cofre da Chave tiver um Ponto Final Privado ativado. O gateway de aplicativo pode acessar o Cofre da Chave usando o endereço IP privado.

Importante

Se estiver a utilizar Pontos Finais Privados para aceder ao Key Vault, tem de associar a zona de DNS privado privatelink.vaultcore.azure.net que contém o registo correspondente ao Key Vault referenciado, à rede virtual que contém o Gateway de Aplicação. Os servidores DNS personalizados podem continuar a ser usados na rede virtual em vez dos resolvedores fornecidos pelo DNS do Azure, no entanto, a zona DNS privada também precisa permanecer vinculada à rede virtual.

  1. No portal do Azure, no Cofre da Chave, selecione Rede.

  2. Na guia Firewalls e redes virtuais, selecione Redes selecionadas.

  3. Em Redes virtuais, selecione + Adicionar redes virtuais existentes e adicione a rede virtual e a sub-rede para sua instância do Application Gateway. Se solicitado, verifique se a caixa de seleção Não configurar o(s) ponto(s) de extremidade do serviço 'Microsoft.KeyVault' neste momento está desmarcada para garantir que o ponto de extremidade do Microsoft.KeyVault serviço esteja habilitado na sub-rede.

  4. Selecione Sim para permitir que serviços confiáveis ignorem o firewall do Cofre de Chaves.

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

Nota

Se você implantar a instância do Gateway de Aplicativo por meio de um modelo ARM usando a CLI do Azure ou o PowerShell, ou por meio de um aplicativo do Azure implantado a partir do portal do Azure, o certificado SSL será armazenado no Cofre da Chave como um arquivo PFX codificado em Base64. Você deve concluir as etapas em Usar o Cofre da Chave do Azure para passar o valor do parâmetro seguro durante a implantação.

É particularmente importante definir enabledForTemplateDeployment para true. O certificado pode ou não ter uma senha. Para um certificado com uma senha, o exemplo a seguir mostra uma possível configuração para a sslCertificates entrada na properties configuração do modelo ARM para o Application Gateway.

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

Os valores de e appGatewaySSLCertificatePassword são pesquisados a partir do Cofre da Chave, conforme descrito em Segredos de appGatewaySSLCertificateData referência com ID dinâmico. Siga as referências para trás para parameters('secretName') ver como a pesquisa acontece. Se o certificado não tiver senha, omita a password entrada.

Configurar o Application Gateway Listener

Permissão do Cofre da Chave Modelo de política de acesso ao Cofre

Navegue até o Gateway de Aplicativo no portal do Azure e selecione a guia Ouvintes . Selecione Adicionar ouvinte (ou selecione um ouvinte existente) e especifique HTTPS para o protocolo.

Em Escolha um certificado, selecione Criar novo e, em seguida, selecione Escolher um certificado do Cofre da Chave em Configurações de HTTPS.

Em Nome do certificado, digite um nome amigável para o certificado a ser referenciado no Cofre da Chave. Escolha sua identidade gerenciada, cofre de chaves e certificado.

Uma vez selecionado, selecione Adicionar (se estiver criando) ou Salvar (se estiver editando) para aplicar o certificado do Cofre da Chave referenciado ao ouvinte.

Modelo de permissão de controle de acesso baseado em função do Key Vault Azure

O Application Gateway oferece suporte a certificados referenciados no Cofre da Chave por meio do modelo de permissão de controle de acesso baseado em função. As primeiras etapas para fazer referência ao Cofre da Chave devem ser concluídas por meio do modelo ARM, Bicep, CLI ou PowerShell.

Nota

Não há suporte para a especificação de certificados do Cofre da Chave do Azure que estão sujeitos ao modelo de permissão de controle de acesso baseado em função por meio do portal.

Neste exemplo, usaremos o PowerShell para fazer referência a um novo segredo do Cofre da Chave.

# 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

Depois que os comandos tiverem sido executados, você poderá navegar até o Gateway de Aplicativo no portal do Azure e selecionar a guia Ouvintes. Clique em Adicionar ouvinte (ou selecione um existente) e especifique o protocolo para HTTPS.

Em Escolha um certificado, selecione o certificado nomeado nas etapas anteriores. Uma vez selecionado, selecione Adicionar (se estiver criando) ou Salvar (se estiver editando) para aplicar o certificado do Cofre da Chave referenciado ao ouvinte.

Investigando e resolvendo erros do Key Vault

Nota

É importante considerar qualquer impacto no recurso do gateway de aplicativo ao fazer alterações ou revogar o acesso ao recurso do Cofre da Chave. Se o gateway de aplicativo não conseguir acessar o cofre de chaves associado ou localizar o objeto de certificado nele, o gateway de aplicativo definirá automaticamente o ouvinte para um estado desabilitado.

Você pode identificar esse evento controlado pelo usuário exibindo a Integridade do recurso para seu gateway de aplicativo. Mais informações.

O Gateway de Aplicativo do Azure não pesquisa apenas a versão do certificado renovado no Cofre da Chave a cada intervalo de quatro horas. Ele também registra qualquer erro e é integrado ao Azure Advisor para exibir qualquer configuração incorreta com uma recomendação para sua correção.

  1. Iniciar sessão no seu portal do Azure
  2. Selecione o Consultor
  3. Selecione a categoria Excelência Operacional no menu à esquerda.
  4. Você encontrará uma recomendação intitulada Resolver o problema do Cofre da Chave do Azure para seu Gateway de Aplicativo, se o gateway estiver enfrentando esse problema. Verifique se a assinatura correta está selecionada nas opções suspensas acima.
  5. Selecione-o para visualizar os detalhes do erro, o recurso de cofre de chaves associado e o guia de solução de problemas para corrigir o problema exato.

Ao identificar esse evento por meio do Azure Advisor ou do Resource Health, você pode resolver rapidamente quaisquer problemas de configuração com seu Cofre de Chaves. Recomendamos vivamente que tire partido dos alertas do Azure Advisor e do Estado de Funcionamento dos Recursos para se manter informado quando for detetado um problema.

Para o alerta do Advisor, use "Resolver o problema do Azure Key Vault para seu Application Gateway" no tipo de recomendação mostrado:
Diagram that shows steps for Advisor alert.

Você pode configurar o alerta de integridade do recurso conforme ilustrado:
Diagram that shows steps for Resource health alert.

Próximos passos

Configurar a terminação TLS com certificados do Cofre da Chave usando o Azure PowerShell