Integrar o HSM gerenciado com o Azure Private Link

O Serviço de Link Privado do Azure permite que você acesse os Serviços do Azure (por exemplo, HSM gerenciado, Armazenamento do Azure e Azure Cosmos DB, etc.) e os serviços de cliente/parceiro hospedados pelo Azure em um Ponto de Extremidade Privado em sua rede virtual.

Um Ponto de Extremidade Privado do Azure é uma interface de rede que o conecta de forma privada e segura a um serviço desenvolvido pelo Azure Private Link. O ponto final privado utiliza um endereço IP privado da VNet, para que possa aceder ao serviço de forma eficaz através da VNet. Todo o tráfego para o serviço pode ser encaminhado através do ponto final privado, pelo que não são necessários gateways, dispositivos NAT, ligações ExpressRoute ou VPN nem endereços IP públicos. 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, oferecendo o mais alto nível de granularidade no controle de acesso.

Para obter mais informações, consulte O que é o Azure Private Link?

Nota

Atualmente, o HSM gerenciado não oferece suporte a regras IP ou pontos de extremidade do Serviço de Rede Virtual

Pré-requisitos

Para integrar um HSM gerenciado com o Azure Private Link, você precisará do seguinte:

  • Um HSM gerenciado. Consulte 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. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, veja Instalar a CLI do Azure.

O ponto final privado e a rede virtual têm de estar na mesma região. Quando você seleciona uma região para o ponto de extremidade privado usando o portal, ele filtra automaticamente apenas as redes virtuais que estão 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 local que não esteja usando uma conexão de pontos de extremidade privados será negado, incluindo serviços públicos da Internet e do Azure. Use --bypass AzureServices a opção se quiser permitir que os serviços da Microsoft acessem 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 para poder acessar uma chave.

Nota

Somente cenários específicos de uso de serviços confiáveis são suportados. Consulte 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}

Nota

Se você excluir esse HSM, o ponto de extremidade privado deixará de funcionar. Se você recuperar (cancelar a exclusão) deste HSM mais tarde, você deverá recriar um novo 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 registos DNS privados

# 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 dentro da mesma sub-rede do recurso de ponto de extremidade privado estão se conectando ao seu HSM por meio de 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

No separador "Rede":

  1. Especifique Rede virtual e Sub-rede. Você pode criar uma nova rede virtual ou selecionar uma existente. Se selecionar um existente, certifique-se de que a região corresponde.
  2. Especifique um recurso IP público.
  3. No "grupo de segurança de rede NIC", selecione "Nenhum".
  4. Em "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 em um ponto de extremidade público, verá um resultado semelhante ao seguinte:

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 em um ponto de extremidade privado, verá um resultado semelhante a este:

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 Resolução de Problemas

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

    1. Use az keyvault private-endpoint-connections show o subcomando para ver o status de uma conexão de ponto de extremidade privada.
    2. Confirme se o estado da ligação é Aprovado e se o estado de aprovisionamento é Com êxito.
    3. Certifique-se de que a rede virtual corresponde à que está a utilizar.
  • Verifique se tem um recurso de Zona DNS Privado.

    1. Você deve ter um recurso de Zona DNS Privada com o nome exato: privatelink.managedhsm.azure.net.
    2. Para saber como configurar isso, consulte o link a seguir. Zonas DNS privadas
  • Verifique se a Zona DNS Privada está vinculada à Rede Virtual. Poderá ser este o problema se ainda estiver a obter o endereço IP público devolvido.

    1. Se o DNS da Zona Privada não estiver vinculado à rede virtual, a consulta DNS originada 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 de links de rede virtual.
    3. A rede virtual que realizará chamadas para o HSM deve ser listada.
    4. Se não estiver, adicione-a.
    5. Para obter etapas detalhadas, consulte o seguinte documento Vincular rede virtual à zona DNS privada
  • Verifique se a Zona DNS Privada não está faltando um registro A para o HSM.

    1. Navegue até a página 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 registo A. Pode utilizar um TTL de 3600 (1 hora).
    4. Confirme que especifica o endereço IP privado correto.
  • Verifique se o registro A tem o endereço IP correto.

    1. Você pode confirmar 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 Interface de rede e clique nesse link.
    4. A ligação mostrará a Descrição geral do recurso NIC, que contém o Endereço IP privado da propriedade.
    5. Verifique se esse é o endereço IP correto que é especificado no registo A.

Limitações e considerações de design

Nota

O número de HSMs gerenciados com pontos de extremidade privados habilitados por assinatura é um limite ajustável. O 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 estes pedidos caso a caso.

Preços: para obter informações sobre preços, consulte Preços do Link Privado do Azure.

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

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

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

Passos Seguintes