Integrar o HSM gerenciado com o Link Privado do Azure

O Serviço de Link Privado do Azure permite acessar os Serviços do Azure (por exemplo, o HSM gerenciado, o Armazenamento do Azure, o Azure Cosmos DB etc.) e serviços de parceiros/clientes hospedados no Azure em um ponto de extremidade privado na sua rede virtual.

Um Ponto de Extremidade Privado do Azure é um adaptador de rede que conecta você de maneira privada e segura a um serviço com tecnologia do Link Privado do Azure. O ponto de extremidade privado usa um endereço IP privado de sua VNet, colocando efetivamente em sua VNet. Todo o tráfego para o serviço pode ser roteado por meio do ponto de extremidade privado; assim, nenhum gateway, nenhum dispositivo NAT, nenhuma conexão ExpressRoute ou VPN e nenhum endereço IP público é necessário. O tráfego entre a rede virtual e o serviço percorre a rede de backbone da Microsoft, eliminando a exposição da Internet pública. Você pode se conectar a uma instância de um recurso do Azure, fornecendo o nível mais alto de granularidade no controle de acesso.

Para obter mais informações, confira O que é o Link Privado do Azure?

Observação

Atualmente, o HSM gerenciado não dá suporte a regras de IP ou Pontos de extremidade de serviço de rede virtual

Pré-requisitos

Para integrar um HSM gerenciado ao Link Privado do Azure, você precisará do seguinte:

  • Um HSM gerenciado. Confira Provisionar e ativar um HSM gerenciado usando a CLI do Azure para obter mais detalhes.
  • Uma rede virtual do Azure.
  • Uma sub-rede na rede virtual.
  • Permissões de proprietário ou colaborador para o HSM gerenciado e a rede virtual.
  • A CLI do Azure versão 2.25.0 ou posterior. Execute az --version para encontrar a versão. Se você precisar instalar ou atualizar, confira Instalar a CLI do Azure.

Seu ponto de extremidade privado e a rede virtual devem estar na mesma região. Quando você selecionar uma região para o ponto de extremidade privado usando o portal, ele filtrará automaticamente apenas as redes virtuais que estiverem nessa região. Seu HSM pode estar em uma região diferente.

Seu ponto de extremidade privado usa um endereço IP privado em sua rede virtual.

az login                                                                   # Login to Azure CLI
az account set --subscription {SUBSCRIPTION ID}                            # Select your Azure Subscription
az group create -n {RESOURCE GROUP} -l {REGION}                            # Create a new Resource Group
az provider register -n Microsoft.KeyVault                                 # Register KeyVault as a provider
az keyvault update-hsm --hsm-name {HSM NAME} -g {RG} --default-action deny # Turn on firewall

az network vnet create -g {RG} -n {vNet NAME} --location {REGION}           # Create a Virtual Network

    # Create a Subnet
az network vnet subnet create -g {RG} --vnet-name {vNet NAME} --name {subnet NAME} --address-prefixes {addressPrefix}

    # Disable Virtual Network Policies
az network vnet subnet update --name {subnet NAME} --resource-group {RG} --vnet-name {vNet NAME} --disable-private-endpoint-network-policies true

    # Create a Private DNS Zone
az network private-dns zone create --resource-group {RG} --name privatelink.managedhsm.azure.net

    # Link the Private DNS Zone to the Virtual Network
az network private-dns link vnet create --resource-group {RG} --virtual-network {vNet NAME} --zone-name privatelink.managedhsm.azure.net --name {dnsZoneLinkName} --registration-enabled true

Permitir que serviços confiáveis acessem o HSM gerenciado

Quando o firewall estiver ativado, todo o acesso ao HSM de qualquer localização que não estiver usando uma conexão de pontos de extremidade privados será negado, incluindo a Internet pública e os serviços do Azure. Use a opção --bypass AzureServices se você quiser permitir que os serviços da Microsoft acessem as suas chaves no HSM gerenciado. As entidades individuais (como uma conta de Armazenamento do Azure ou um SQL Server do Azure) ainda precisam ter atribuições de função específicas em funcionamento para poder acessar uma chave.

Observação

Há suporte apenas para cenários de uso de serviços confiáveis específicos. Confira a lista de cenários de uso de serviços confiáveis para obter mais detalhes.

az keyvault update-hsm --hsm-name {HSM NAME} -g {RG} --default-action deny --bypass AzureServices

Criar um Ponto de Extremidade Privado (Aprovar Automaticamente)

az network private-endpoint create --resource-group {RG} --vnet-name {vNet NAME} --subnet {subnet NAME} --name {Private Endpoint Name}  --private-connection-resource-id "/subscriptions/{AZURE SUBSCRIPTION ID}/resourceGroups/{RG}/providers/Microsoft.KeyVault/managedHSMs/{HSM NAME}" --group-id managedhsm --connection-name {Private Link Connection Name} --location {AZURE REGION}

Observação

Se você excluir esse HSM, o ponto de extremidade privado deixará de funcionar. Se você recuperar (restaurar) esse HSM posteriormente, deverá criar um ponto de extremidade privado.

Criar um Ponto de Extremidade Privado (Solicitar Aprovação Manualmente)

az network private-endpoint create --resource-group {RG} --vnet-name {vNet NAME} --subnet {subnet NAME} --name {Private Endpoint Name}  --private-connection-resource-id "/subscriptions/{AZURE SUBSCRIPTION ID}/resourceGroups/{RG}/providers/Microsoft.KeyVault/managedHSMs/{HSM NAME}" --group-id managedhsm --connection-name {Private Link Connection Name} --location {AZURE REGION} --manual-request
# Show Connection Status
az network private-endpoint show --resource-group {RG} --name {Private Endpoint Name}

# Approve a Private Link Connection Request
az keyvault private-endpoint-connection approve --description {"OPTIONAL DESCRIPTION"} --resource-group {RG} --hsm-name {HSM NAME} –-name {PRIVATE LINK CONNECTION NAME}

# Deny a Private Link Connection Request
az keyvault private-endpoint-connection reject --description {"OPTIONAL DESCRIPTION"} --resource-group {RG} --hsm-name {HSM NAME} –-name {PRIVATE LINK CONNECTION NAME}

# Delete a Private Link Connection Request
az keyvault private-endpoint-connection delete --resource-group {RG} --hsm-name {HSM NAME} --name {PRIVATE LINK CONNECTION NAME}

Adicionar registros de DNS privado

# Determine the Private Endpoint IP address
az network private-endpoint show -g {RG} -n {PE NAME}      # look for the property networkInterfaces then id; the value must be placed on {PE NIC} below.
az network nic show --ids {PE NIC}                         # look for the property ipConfigurations then privateIpAddress; the value must be placed on {NIC IP} below.

# https://learn.microsoft.com/azure/dns/private-dns-getstarted-cli#create-an-additional-dns-record
az network private-dns zone list -g {RG}
az network private-dns record-set a add-record -g {RG} -z "privatelink.managedhsm.azure.net" -n {HSM NAME} -a {NIC IP}
az network private-dns record-set list -g {RG} -z "privatelink.managedhsm.azure.net"

# From home/public network, you wil get a public IP. If inside a vnet with private zone, nslookup will resolve to the private ip.
nslookup {HSM NAME}.managedhsm.azure.net
nslookup {HSM NAME}.privatelink.managedhsm.azure.net

Você deve validar se os recursos na mesma sub-rede do recurso de ponto de extremidade privado estão se conectando ao HSM por um endereço IP privado e se eles têm a integração de zona DNS privada correta.

Primeiro, crie uma máquina virtual seguindo as etapas em Criar uma máquina virtual do Windows no portal do Azure

Na guia “Rede”:

  1. especifique a Rede virtual e a Sub-rede. Você pode criar uma rede virtual ou selecionar uma existente. Se você estiver selecionando uma existente, verifique se a região é correspondente.
  2. Especifique um recurso de IP Público.
  3. No "grupo de segurança de rede da NIC", selecione "Nenhum".
  4. No “Balanceamento de carga”, selecione “Não”.

Abra a linha de comando e execute o seguinte comando:

nslookup <your-HSM-name>.managedhsm.azure.net

Se você executar o comando ns lookup para resolver o endereço IP de um HSM gerenciado por meio de um ponto de extremidade público, verá um resultado com esta aparência:

c:\ >nslookup <your-hsm-name>.managedhsm.azure.net

Non-authoritative answer:
Name:    
Address:  (public IP address)
Aliases:  <your-hsm-name>.managedhsm.azure.net

Se você executar o comando ns lookup para resolver o endereço IP de um HSM gerenciado por meio de um ponto de extremidade privado, verá um resultado com esta aparência:

c:\ >nslookup your_hsm_name.managedhsm.azure.net

Non-authoritative answer:
Name:    
Address:  10.1.0.5 (private IP address)
Aliases:  <your-hsm-name>.managed.azure.net
          <your-hsm-name>.privatelink.managedhsm.azure.net

Guia de solução de problemas

  • Verifique se o ponto de extremidade privado está no estado aprovado.

    1. Use o subcomando az keyvault private-endpoint-connections show para ver o status de uma conexão de ponto de extremidade privado.
    2. Verifique se o estado da conexão é Aprovado e se o estado do provisionamento é Êxito.
    3. Verifique se a rede virtual corresponde à que você está usando.
  • Verifique se você tem um recurso de Zona DNS Privada.

    1. Você precisa ter um recurso da Zona DNS Privada com este nome exato: privatelink.managedhsm.azure.net.
    2. Para saber como configurá-lo, confira o link a seguir. Zonas DNS Privadas
  • Confirme se a zona DNS privada está vinculada à Rede Virtual. Se o endereço IP público ainda está sendo retornado, talvez seja esse o problema.

    1. Se a Zona Privada DNS não estiver vinculada à rede virtual, a consulta DNS proveniente da rede virtual retornará o endereço IP público do HSM.
    2. Navegue até o recurso Zona DNS Privada no portal do Azure e clique na opção Links de rede virtual.
    3. A rede virtual que executará chamadas para o HSM precisa estar listada.
    4. Se não estiver, adicione-a.
    5. Para ver as etapas detalhadas, confira o documento a seguir Vincular Rede Virtual a Zona DNS Privada
  • Verifique se não há um registro A ausente para o HSM na Zona DNS Privada.

    1. Navegue até a página da Zona DNS Privada.
    2. Clique em Visão geral e verifique se há um registro A com o nome simples do seu HSM. Não especifique nenhum sufixo.
    3. Verifique a ortografia e crie ou corrija o registro A. Use um TTL de 3600 (1 hora).
    4. Não deixe de especificar o endereço IP privado correto.
  • Verifique se o registro A tem o endereço IP correto.

    1. Confirme o endereço IP abrindo o recurso Ponto de Extremidade Privado no portal do Azure.
    2. Navegue até o recurso Microsoft.Network/privateEndpoints no portal do Azure
    3. Na página de visão geral, procure por Adaptador de rede e clique nesse link.
    4. O link mostrará a Visão geral do recurso NIC, que contém o Endereço IP Privado da propriedade.
    5. Verifique se esse é o endereço IP correto especificado no registro A.

Limitações e considerações de design

Observação

O número de HSMs gerenciados com pontos de extremidade privados habilitados por assinatura é um limite ajustável. Esse limite mostrado abaixo é o limite padrão. Se você quiser solicitar um aumento de limite para sua assinatura, crie um tíquete de suporte do Azure. Aprovaremos essas solicitações dependendo do caso.

Preço: Para obter informações sobre preço, confira Preço do Link Privado do Azure.

Número máximo de pontos de extremidade privados por HSM gerenciado: 64.

Número padrão de HSM gerenciado com pontos de extremidade privados por assinatura: 400.

Para saber mais, confira Serviço de Link Privado do Azure: Limitações

Próximas etapas