Conecte-se de forma privada ao Gerenciamento de API usando um ponto de extremidade privado de entrada

APLICA-SE A: Developer | Básico | Padrão | Prémio

Você pode configurar um ponto de extremidade privado de entrada para sua instância de Gerenciamento de API para permitir que os clientes em sua rede privada acessem com segurança a instância pelo Azure Private Link.

  • O ponto de extremidade privado usa um endereço IP de uma VNet do Azure na qual está hospedado.

  • O tráfego de rede entre um cliente na sua rede privada e a Gestão de API atravessa a VNet e uma Ligação Privada na rede principal da Microsoft, o que elimina a exposição à Internet pública.

  • Configure as definições personalizadas do DNS ou uma zona privada do DNS do Azure para mapear o nome do anfitrião Gestão de API ao endereço IP privado do ponto final.

Diagrama que mostra uma conexão de entrada segura com o Gerenciamento de API usando o ponto de extremidade privado.

Com um ponto final privado e o Private Link, pode:

  • Criar várias ligações do Private Link a uma instância de Gestão de API.

  • Utilizar o ponto final privado para enviar tráfego de entrada numa ligação segura.

  • Utilizar políticas para distinguir o tráfego proveniente do ponto final privado.

  • Limitar o tráfego de entrada apenas para pontos finais privados, o que impede transferências de dados não autorizadas.

Importante

  • Você só pode configurar uma conexão de ponto de extremidade privada para o tráfego de entrada para a instância de Gerenciamento de API. Atualmente, o tráfego de saída não é suportado.

    Você pode usar o modelo de rede virtual externa ou interna para estabelecer conectividade de saída para pontos de extremidade privados a partir de sua instância de Gerenciamento de API.

  • Para habilitar pontos de extremidade privados de entrada, a instância de Gerenciamento de API não pode ser injetada em uma rede virtual externa ou interna.

Limitações

  • Somente o ponto de extremidade Gateway da instância de Gerenciamento de API oferece suporte a conexões de Link Privado de entrada.
  • Cada instância de Gerenciamento de API suporta no máximo 100 conexões de Link Privado.
  • As conexões não são suportadas no gateway auto-hospedado.

Pré-requisitos

  • Uma instância de gerenciamento de API existente. Crie um, caso ainda não o tenha feito.
    • A instância de Gerenciamento de API deve ser hospedada na plataforma de stv2 computação. Por exemplo, crie uma nova instância ou, se você já tiver uma instância na camada de serviço Premium, habilite a redundância de zona.
    • Não implante (injete) a instância em uma rede virtual externa ou interna .
  • Uma rede virtual e uma sub-rede para hospedar o ponto de extremidade privado. A sub-rede pode conter outros recursos do Azure.
  • (Recomendado) Uma máquina virtual na mesma sub-rede ou em uma sub-rede diferente na rede virtual, para testar o ponto de extremidade privado.

Método de aprovação para ponto final privado

Normalmente, um administrador de rede cria um ponto de extremidade privado. Dependendo de suas permissões RBAC (controle de acesso baseado em função) do Azure, um ponto de extremidade privado criado é aprovado automaticamente para enviar tráfego para a instância de Gerenciamento de API ou exige que o proprietário do recurso aprove manualmente a conexão.

Método de homologação Permissões mínimas de RBAC
Automático Microsoft.Network/virtualNetworks/**
Microsoft.Network/virtualNetworks/subnets/**
Microsoft.Network/privateEndpoints/**
Microsoft.Network/networkinterfaces/**
Microsoft.Network/locations/availablePrivateEndpointTypes/read
Microsoft.ApiManagement/service/**
Microsoft.ApiManagement/service/privateEndpointConnections/**
Manual Microsoft.Network/virtualNetworks/**
Microsoft.Network/virtualNetworks/subnets/**
Microsoft.Network/privateEndpoints/**
Microsoft.Network/networkinterfaces/**
Microsoft.Network/locations/availablePrivateEndpointTypes/read

Etapas para configurar o ponto de extremidade privado

  1. Obter tipos de pontos finais privados disponíveis na subscrição
  2. Desativar políticas de rede na sub-rede
  3. Criar ponto final privado - portal
  4. Listar conexões de ponto de extremidade privado para a instância
  5. Aprovar conexões de ponto de extremidade privadas pendentes
  6. Opcionalmente, desative o acesso à rede pública

Obter tipos de pontos finais privados disponíveis na subscrição

Verifique se o tipo de ponto de extremidade privado do Gerenciamento de API está disponível em sua assinatura e local. No portal, encontre essas informações acessando o Private Link Center. Selecione Recursos suportados.

Você também pode encontrar essas informações usando a API REST de Tipos de Ponto Final Privados Disponíveis - Listagem .

GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Network/locations/{region}/availablePrivateEndpointTypes?api-version=2021-03-01

A saída deve incluir o tipo de Microsoft.ApiManagement.service ponto final:

[...]

      "name": "Microsoft.ApiManagement.service",
      "id": "/subscriptions/{subscriptionId}/providers/Microsoft.Network/AvailablePrivateEndpointTypes/Microsoft.ApiManagement.service",
      "type": "Microsoft.Network/AvailablePrivateEndpointTypes",
      "resourceName": "Microsoft.ApiManagement/service",
      "displayName": "Microsoft.ApiManagement/service",
      "apiVersion": "2021-04-01-preview"
    }
[...]

Desativar políticas de rede na sub-rede

As diretivas de rede, como grupos de segurança de rede, devem ser desabilitadas na sub-rede usada para o ponto de extremidade privado.

Se você usar ferramentas como o Azure PowerShell, a CLI do Azure ou a API REST para configurar pontos de extremidade privados, atualize a configuração da sub-rede manualmente. Para obter exemplos, consulte Gerenciar políticas de rede para pontos de extremidade privados.

Quando você usa o portal do Azure para criar um ponto de extremidade privado, conforme mostrado na próxima seção, as políticas de rede são desabilitadas automaticamente como parte do processo de criação

Criar ponto final privado - portal

  1. Navegue até o serviço de Gerenciamento de API no portal do Azure.

  2. No menu à esquerda, selecione Rede.

  3. Selecione Conexões> de ponto de extremidade privado de entrada+ Adicionar ponto de extremidade.

    Adicionar um ponto de extremidade privado usando o portal do Azure

  4. Na guia Noções básicas de Criar um ponto de extremidade privado, insira ou selecione as seguintes informações:

    Definição Value
    Detalhes do projeto
    Subscrição Selecione a sua subscrição.
    Grupo de recursos Selecione um grupo de recursos existente ou crie um novo. Deve estar na mesma região da sua rede virtual.
    Detalhes da instância
    Nome Insira um nome para o ponto de extremidade, como myPrivateEndpoint.
    Nome da interface de rede Insira um nome para a interface de rede, como myInterface
    País/Região Selecione um local para o ponto de extremidade privado. Deve estar na mesma região da sua rede virtual. Ele pode ser diferente da região onde sua instância de Gerenciamento de API está hospedada.
  5. Selecione a guia Recurso ou o botão Avançar: Recurso na parte inferior da página. As seguintes informações sobre sua instância de Gerenciamento de API já estão preenchidas:

    • Subscrição
    • Grupo de recursos
    • Nome do recurso
  6. Em Recurso, em Subrecurso de destino, selecione Gateway.

    Criar um ponto de extremidade privado no portal do Azure

  7. Selecione a guia Rede Virtual ou o botão Avançar: Rede Virtual na parte inferior da tela.

  8. Em Rede, insira ou selecione estas informações:

    Definição Value
    Rede virtual Selecione sua rede virtual.
    Sub-rede Selecione sua sub-rede.
    Configuração de IP privado Na maioria dos casos, selecione Alocar endereço IP dinamicamente.
    Grupo de segurança de aplicações Opcionalmente, selecione um grupo de segurança do aplicativo.
  9. Selecione a guia DNS ou o botão Next: DNS na parte inferior da tela.

  10. Em Integração de DNS privado, insira ou selecione estas informações:

    Definição Value
    Integrar com zona DNS privada Deixe o padrão de Sim.
    Subscrição Selecione a sua subscrição.
    Grupo de recursos Selecione o seu grupo de recursos.
    Zonas DNS Privadas O valor padrão é exibido: (novo) privatelink.azure-api.net.
  11. Selecione a guia Tags ou o botão Next: Tabs na parte inferior da tela. Se desejar, insira tags para organizar seus recursos do Azure.

  12. Selecione Rever + criar.

  13. Selecione Criar.

Listar conexões de ponto de extremidade privado para a instância

Depois que o ponto de extremidade privado é criado, ele aparece na lista na página Conexões de ponto de extremidade privado de entrada da instância de Gerenciamento de API no portal.

Você também pode usar a API REST Private Endpoint Connection - List By Service para listar conexões de ponto de extremidade privadas com a instância de serviço.

Observe o status da conexão do ponto de extremidade:

  • Aprovado indica que o recurso de Gerenciamento de API aprovou automaticamente a conexão.
  • Pendente indica que a conexão deve ser aprovada manualmente pelo proprietário do recurso.

Aprovar conexões de ponto de extremidade privadas pendentes

Se uma conexão de ponto de extremidade privada estiver em status pendente, um proprietário da instância de Gerenciamento de API deverá aprová-la manualmente antes que ela possa ser usada.

Se você tiver permissões suficientes, aprove uma conexão de ponto de extremidade privada na página Conexões de ponto de extremidade privado da instância de Gerenciamento de API no portal.

Você também pode usar a API Management Private Endpoint Connection - Create Or Update REST API.

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{apimServiceName}privateEndpointConnections/{privateEndpointConnectionName}?api-version=2021-08-01

Opcionalmente, desative o acesso à rede pública

Opcionalmente, para limitar o tráfego de entrada para a instância de Gerenciamento de API apenas para pontos de extremidade privados, desative o acesso à rede pública. Use o Serviço de Gerenciamento de API - Criar ou atualizar a API REST para definir a publicNetworkAccess propriedade como Disabled.

Nota

A publicNetworkAccess propriedade só pode ser usada para desabilitar o acesso público a instâncias de Gerenciamento de API configuradas com um ponto de extremidade privado, não com outras configurações de rede, como injeção de VNet.

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{apimServiceName}?api-version=2021-08-01
Authorization: Bearer {{authToken.response.body.access_token}}
Content-Type: application/json

Use o seguinte corpo JSON:

{
  [...]
  "properties": {
    "publicNetworkAccess": "Disabled"
  }
}

Validar conexão de ponto de extremidade privado

Após a criação do ponto final privado, confirme as definições de DNS no portal:

  1. Navegue até o serviço de Gerenciamento de API no portal do Azure.

  2. No menu à esquerda, selecione Conexões de ponto de extremidade privado de entrada de rede>e selecione o ponto de extremidade privado que você criou.

  3. No menu de navegação do lado esquerdo, selecione configuração de DNS.

  4. Reveja os registos de DNS e o endereço IP do ponto final privado. O endereço IP é um endereço privado no espaço de endereços da sub-rede onde o ponto final privado é configurado.

Teste em rede virtual

Estabeleça ligação a uma máquina virtual configurada na rede virtual.

Execute um utilitário como nslookup ou dig para procurar o endereço IP do seu ponto de extremidade padrão do Gateway através do Private Link. Por exemplo:

nslookup my-apim-service.azure-api.net

A saída deve incluir o endereço IP privado associado ao ponto final privado.

As chamadas de API iniciadas na rede virtual para o ponto de extremidade padrão do Gateway devem ser bem-sucedidas.

Teste da internet

Fora do caminho do ponto final privado, tente chamar o ponto final de Gateway predefinido da instância de Gestão de API. Se o acesso público estiver desativado, a saída incluirá um erro com o código de 403 status e uma mensagem semelhante a:

Request originated from client public IP address xxx.xxx.xxx.xxx, public network access on this 'Microsoft.ApiManagement/service/my-apim-service' is disabled.
       
To connect to 'Microsoft.ApiManagement/service/my-apim-service', please use the Private Endpoint from inside your virtual network. 

Próximos passos

  • Use expressões de política com a context.request variável para identificar o tráfego do ponto de extremidade privado.
  • Saiba mais sobre endpoints privados e Private Link, incluindo preços de Private Link.
  • Saiba mais sobre como gerenciar conexões de ponto de extremidade privadas.
  • Solucione problemas de conectividade de ponto de extremidade privado do Azure.
  • Use um modelo do Gerenciador de Recursos para criar uma instância de Gerenciamento de API e um ponto de extremidade privado com integração DNS privada.