Conexión a una red virtual en modo interno mediante Azure API Management
Con las redes virtuales de Azure (VNet), Azure API Management puede administrar API inaccesibles por Internet mediante varias tecnologías de VPN para realizar la conexión. Para ver las opciones, los requisitos y las consideraciones de conectividad de red virtual, consulte Uso de una red virtual con Azure API Management.
En este artículo se explica cómo configurar la conectividad de red virtual para la instancia de API Management en el modo interno. En este modo solo puede acceder a los siguientes puntos de conexión de API Management dentro de una red virtual cuyo acceso controle.
- La puerta de enlace de API
- Portal para desarrolladores
- Administración directa
- Git
Nota
Ninguno de los puntos de conexión de API Management está registrado en el DNS público. Los puntos de conexión permanecen inaccesibles hasta que configura DNS para la red virtual.
Use API Management en modo interno para:
- Conseguir que las API hospedadas en el centro de datos privado sean accesibles para terceros desde fuera de este centro si usa conexiones de VPN de Azure o Azure ExpressRoute.
- Puede permitir escenarios de nube híbrida exponiendo las API basadas en la nube y las API locales a través de una puerta de enlace común.
- Administrar las API hospedadas en diversas ubicaciones geográficas, mediante un único punto de conexión de puerta de enlace.
Para las configuraciones específicas del modo externo, donde los puntos de conexión de API Management son accesibles desde la red pública de Internet y los servicios back-end se encuentran en la red, consulte Conectar a una red virtual mediante Azure API Management.
Nota
En este artículo se usa el módulo Az de PowerShell, que es el módulo de PowerShell que se recomienda para interactuar con Azure. Para empezar a trabajar con el módulo Az de PowerShell, consulte Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.
Disponibilidad
Importante
Esta característica está disponible únicamente en los niveles Premium y Desarrollador de API Management.
Requisitos previos
Algunos requisitos previos varían en función de la versión (stv2 o stv1) de la plataforma de proceso que hospeda la instancia de API Management.
Sugerencia
Cuando se usa el portal para crear o actualizar la conexión de red de una instancia de API Management existente, la instancia se hospeda en la plataforma de proceso stv2.
- Una instancia de API Management Para más información, vea Creación de una instancia de Azure API Management.
Una red virtual y una subred en la misma región y suscripción que la instancia de API Management. Se recomienda una subred dedicada, pero no es necesaria.
Un grupo de seguridad de red asociado a la subred anterior. Se requiere un grupo de seguridad de red para permitir explícitamente la conectividad de entrada, ya que el equilibrador de carga usado internamente por API Management es seguro de forma predeterminada y rechaza todo el tráfico entrante. Para obtener una configuración específica, vea Configuración de reglas de NSG más adelante en este artículo.
Una dirección IPv4 pública de SKU estándar. El recurso de la dirección IP pública es necesario al configurar la red virtual para el acceso externo o interno. Con una red virtual interna, la dirección IP pública solo se usa para las operaciones de administración. Obtenga más información sobre las direcciones IP de API Management.
La dirección IP debe estar en la misma región y suscripción que la instancia de API Management y la red virtual.
Al crear un recurso de IP pública, asegúrese de asignarle una etiqueta de nombre DNS. La etiqueta que decida usar no importa, pero se requiere una etiqueta si este recurso se va a asignar a una instancia del servicio API Management.
El valor de la dirección IP se asigna como la dirección IPv4 pública virtual de la instancia de API Management en esa región.
Al cambiar de una red virtual externa a otra interna (o viceversa), o al cambiar las subredes de la red o actualizar las zonas de disponibilidad para la instancia de API Management, debe configurar una dirección IP pública diferente.
Habilitar la conexión de VNet
Habilitación de la conectividad de VNet mediante Azure Portal (plataforma stv2)
Vaya a Azure Portal para buscar la instancia API Management. Busque y seleccione Servicios API Management.
Elija su instancia de API Management.
Seleccione Red>Red virtual.
Seleccione el tipo de acceso Interno.
En la lista de ubicaciones (regiones) en las que se aprovisiona el servicio API Management:
- Elija una ubicación.
- Seleccione Red virtual, Subred y Dirección IP.
- La lista de redes virtuales se rellena con redes virtuales de Resource Manager disponibles en las suscripciones a Azure configuradas en la región que va a configurar.
Seleccione Aplicar. La página Red virtual de la instancia de API Management se actualiza con las opciones de red virtual y subred nueva.
Siga configurando los valores de red virtual para las ubicaciones restantes de la instancia de API Management.
En la barra de navegación superior, seleccione Guardar y, luego, Aplicar configuración de red.
La instancia de API Management puede tardar entre 15 y 45 minutos en actualizarse. El nivel Desarrollador tiene tiempo de inactividad durante el proceso. Las SKU Básico y superiores no tienen tiempo de inactividad durante el proceso.
Después de que la implementación se realice correctamente, debería ver la dirección IP virtual privada y la dirección IP virtual pública del servicio API Management en el panel Información general. Para más información sobre las direcciones IP, consulte Enrutamiento en este artículo.
Nota
Como la dirección URL de puerta de enlace no está registrada en el DNS público, la consola de prueba disponible en Azure Portal no funcionará con un servicio implementado en una red virtual interna. En su lugar, use la consola de prueba que se ofrece en el Portal para desarrolladores.
Habilitación de la conectividad mediante una plantilla de Resource Manager (plataforma stv2)
Plantilla de ARM (versión de API 2021-08-01)
Habilitación de la conectividad mediante cmdlets de Azure PowerShell (plataforma stv1)
Cree o actualice una instancia de API Management en una red virtual.
Configuración de reglas de NSG
Configure reglas de red personalizadas en la subred de API Management para filtrar el tráfico hacia y desde la instancia de API Management. Se recomiendan las siguientes reglas mínimas de NSG para garantizar el funcionamiento correcto y el acceso a la instancia.
- En la mayoría de los escenarios, use las etiquetas de servicio indicadas en lugar de las direcciones IP de servicio para especificar orígenes y destinos de red.
- Establezca la prioridad de estas reglas mayor que la de las reglas predeterminadas.
- En función del uso de la supervisión y otras características, puede que tenga que configurar reglas adicionales. Para obtener una configuración detallada, consulte Referencia de configuración de red virtual.
| Puertos de origen/destino | Dirección | Protocolo de transporte | Etiquetas de servicio Origen/destino |
Propósito | Tipo de red virtual |
|---|---|---|---|---|---|
| * / [80], 443 | Entrada | TCP | Internet / VirtualNetwork | Comunicación de cliente con Administración de API | Solo externo |
| * / 3443 | Entrada | TCP | ApiManagement / VirtualNetwork | Punto de conexión de administración para Azure Portal y PowerShell | Externa e interna |
| * / 6390 | Entrada | TCP | AzureLoadBalancer / VirtualNetwork | Azure Infrastructure Load Balancer (necesario para el nivel de servicio Premium) | Externa e interna |
| * / 443 | Salida | TCP | VirtualNetwork / Storage | Dependencia de Azure Storage | Externa e interna |
| * / 1433 | Salida | TCP | VirtualNetwork / SQL | Acceso a los puntos de conexión de Azure SQL | Externa e interna |
| * / 443 | Salida | TCP | VirtualNetwork / AzureKeyVault | Acceso a Azure Key Vault | Externa e interna |
Configuración de DNS
En el modo de red virtual interna, tiene que administrar su propio DNS para habilitar el acceso entrante a los puntos de conexión de API Management.
Es recomendable que:
- Configure una zona privada de Azure DNS.
- Vincule la zona privada de Azure DNS a la red virtual en la que ha implementado el servicio API Management.
Aprenda a configurar una zona privada en Azure DNS.
Nota
El servicio API Management no escucha las solicitudes de sus direcciones IP. Solo responde a las solicitudes dirigidas al nombre de host establecido en los puntos de conexión. Estos puntos de conexión incluyen lo siguiente:
- Puerta de enlace de API
- El Portal de Azure
- Portal para desarrolladores
- Punto de conexión de administración directa
- Git
Acceso de nombres de host predeterminados
Al crear un servicio de API Management (por ejemplo, contosointernalvnet) se configuran de forma predeterminada los siguientes puntos de conexión:
| Punto de conexión | Configuración de punto de conexión |
|---|---|
| API Gateway | contosointernalvnet.azure-api.net |
| Portal para desarrolladores | contosointernalvnet.portal.azure-api.net |
| Nuevo portal para desarrolladores | contosointernalvnet.developer.azure-api.net |
| Punto de conexión de administración directa | contosointernalvnet.management.azure-api.net |
| Git | contosointernalvnet.scm.azure-api.net |
Para acceder a estos puntos de conexión de API Management, puede crear una máquina virtual en una subred conectada a la red virtual en la que esté implementado API Management. Si la dirección IP virtual privada del servicio es 10.1.0.5, puede asignar el archivo de hosts de esta forma. El archivo de asignación de hosts está en %SystemDrive%\drivers\etc\hosts (Windows) /etc/hosts o (Linux, macOS).
| Dirección IP virtual interna | Configuración de punto de conexión |
|---|---|
| 10.1.0.5 | contosointernalvnet.azure-api.net |
| 10.1.0.5 | contosointernalvnet.portal.azure-api.net |
| 10.1.0.5 | contosointernalvnet.developer.azure-api.net |
| 10.1.0.5 | contosointernalvnet.management.azure-api.net |
| 10.1.0.5 | contosointernalvnet.scm.azure-api.net |
Así, podrá tener acceso a todos los puntos de conexión de API Management desde la máquina virtual que ha creado.
Acceso de nombres de dominio personalizados
Si no quiere acceder al servicio API Management con los nombres de host predeterminados:
Configure nombres de dominio personalizados para todos los puntos de conexión, como se muestra en la imagen siguiente:
Cree registros en el servidor DNS para acceder a los puntos de conexión accesibles desde la red virtual. Asigne los registros de punto de conexión a la dirección IP virtual privada del servicio.
Enrutamiento
Las siguientes direcciones IP virtuales se configuran para una instancia de API Management de una red virtual interna.
| Dirección IP virtual | Descripción |
|---|---|
| Dirección IP virtual privada | Una dirección IP con equilibrio de carga desde el intervalo de subred (DIP) de la instancia de API Management, a través de la cual puede acceder a la puerta de enlace de API, al portal para desarrolladores, a la administración y a los puntos de conexión de Git. Registre esta dirección con los servidores DNS que usa la red virtual. |
| Dirección IP virtual pública | Solo se usa para el tráfico del plano de control al punto de conexión de administración a través del puerto 3443. Se puede bloquear a la etiqueta de servicio ApiManagement. |
Las direcciones IP privadas y públicas con equilibrio de carga pueden encontrarse en la hoja de información general de Azure Portal.
Para obtener más información y consideraciones, consulte Direcciones IP de Azure API Management.
Direcciones VIP y DIP
Se asignarán direcciones IP dinámicas (DIP) a todas las máquinas virtuales subyacentes del servicio y se usarán para acceder a los puntos de conexión y recursos en la red virtual y en las redes virtuales emparejadas. La dirección IP virtual (VIP) pública del servicio API Management se usará para acceder a recursos orientados al público.
Si los recursos dentro de la red virtual o en redes virualtes emparejadas se protegen mediante listas de restricciones de IP, recomendamos que se especifique el intervalo completo de la subred donde se implementa el servicio API Management para conceder o restringir el acceso desde el servicio.
Más información acerca del tamaño de subred recomendado.
Ejemplo
Si implementa una unidad de capacidad de API Management en el nivel Premium de una red virtual interna, se usarán tres direcciones IP: una para la IP virtual privada y una para cada uno de los DIP de dos máquinas virtuales. Si escala horizontalmente a 4 unidades, se usarán más direcciones IP para DIP adicionales de la subred.
Si el punto de conexión de destino solo tiene permitido un conjunto fijo de DIP, se producirán errores de conexión si agrega nuevas unidades en el futuro. Por este motivo y dado que la subred está totalmente bajo su control, se recomienda permitir la enumeración de toda la subred en el back-end.
Forzar la tunelización del tráfico al firewall en el entorno local mediante ExpressRoute o una aplicación virtual de red
La tunelización forzada permite redirigir o “forzar” de nuevo todo el tráfico vinculado a Internet de la subred al entorno local mediante para inspección y auditoría. Normalmente, puede configurar y definir su propia ruta predeterminada (0.0.0.0/0) que fuerza a todo el tráfico de la subred de API Management a pasar a través de un firewall local o a una aplicación virtual de red. El flujo de tráfico interrumpe la conectividad con API Management porque el tráfico saliente está bloqueado de forma local o porque se usa NAT para convertirlo en un conjunto de direcciones irreconocibles que no funcionan con varios puntos de conexión de Azure. Este problema se puede resolver con los siguientes métodos:
Habilite los puntos de conexión de servicio en la subred en la que se ha implementado el servicio API Management para:
- Azure SQL (solo se requiere en la región primaria si el servicio API Management se implementa en varias regiones)
- Azure Storage
- Azure Event Hubs
- Azure Key Vault (obligatorio cuando API Management se implementa en la plataforma
stv2)
Al habilitar los puntos de conexión directamente desde la subred de API Management a estos servicios, puede utilizar la red troncal de Microsoft Azure, que proporciona un enrutamiento óptimo para el tráfico de los servicios. Si usa puntos de conexión de servicio con una API Management con túnel forzado, el tráfico de los servicios de Azure anteriores no se enruta a través de tunelización forzada. Sin embargo, el resto del tráfico de dependencia del servicio API Management se enruta con tunelización forzada. Asegúrese de que el firewall o la aplicación virtual no bloqueen este tráfico o es posible que el servicio API Management no funcione correctamente.
Todo el tráfico del plano de control desde Internet al punto de conexión de administración del servicio API Management se enruta a través de un conjunto específico de IP de entrada hospedadas en API Management. Cuando el tráfico se enruta mediante tunelización forzada, las respuestas no se asignarán simétricamente a estas direcciones IP de origen entantes y se perderá la conectividad con el punto de conexión de administración. Para superar esta limitación, configure rutas definidas por el usuario (UDR) para estas direcciones IP de entrada con el tipo de próximo salto establecido en “Internet” para dirigir el tráfico de nuevo a Azure. Configure la etiqueta de servicioApiManagemento busque el conjunto de direcciones IP de entrada para el tráfico del plano de control documentado en Direcciones IP del plano de control.
Importante
Las direcciones IP del plano de control deben configurarse para reglas y rutas de acceso a la red solo cuando sea necesario en determinados escenarios de red. Se recomienda usar la etiqueta de servicio ApiManagement en lugar de las direcciones IP del plano de control para evitar tiempos de inactividad cuando las mejoras de infraestructura requieran cambios en las direcciones IP.
Nota
Permitir que el tráfico de administración de API Management omita un firewall en el entorno local o una aplicación virtual de red no se considera un riesgo de seguridad significativo. La configuración recomendada para la subred de API Management permite el tráfico de administración de entrada en el puerto 3443 solo desde el conjunto de direcciones IP de Azure que abarca la etiqueta de servicio ApiManagement. La configuración de UDR recomendada solo es para la ruta de acceso de retorno de este tráfico de Azure.
(Modo de red virtual externa) El tráfico del plano de datos de los clientes que intentan llegar desde Internet a la puerta de enlace de API Management y al portal para desarrolladores también se anulará de forma predeterminada debido al enrutamiento asimétrico introducido por la tunelización forzada. Para cada cliente que requiera acceso, configure una UDR explícita con el tipo de próximo salto establecido en “Internet” para omitir el firewall o la aplicación de red virtual.
Para otras dependencias del servicio API Management con tunelización forzada, resuelva el nombre de host y llegue hasta el punto de conexión. Entre ellas se incluyen las siguientes:
- Supervisión de métricas y estado
- Diagnósticos de Azure Portal
- Retransmisión de SMTP
- CAPTCHA del portal para desarrolladores
- Servidor de KMS de Azure
Para obtener más información, consulte Referencia de configuración de Virtual Network.
Problemas comunes de configuración de red
Esta sección se ha movido. Consulte Referencia de configuración de red virtual.
Solución de problemas
Implementación inicial incorrecta del servicio API Management en una subred
- Implemente una máquina virtual en la misma subred.
- Conéctese a la máquina virtual y compruebe que hay conectividad a cada uno de los siguientes recursos de la suscripción de Azure:
- Azure Storage Blob
- Azure SQL Database
- Tabla de Azure Storage
- Azure Key Vault (para una instancia de API Management hospedada en la plataforma
stv2)
Importante
Después de validar la conectividad, quite todos los recursos de la subred antes de implementar API Management en la subred (necesario cuando API Management se hospeda en la plataforma
stv1).Comprobación del estado de la red
- Después de implementar API Management en la subred, use el portal para comprobar la conectividad de la instancia a dependencias como Azure Storage.
- En el portal, en el menú izquierdo, en Implementación e infraestructura, seleccione Red>Estado de red.
Filter Descripción Obligatorio Seleccione esta opción para revisar la conectividad a los servicios de Azure necesarios para API Management. Un error indica que la instancia no puede realizar operaciones básicas para administrar las API. Opcional Seleccione esta opción para revisar la conectividad a servicios opcionales. Un error indica únicamente que la funcionalidad específica no funcionará (por ejemplo, SMTP). Un error puede provocar una degradación en la capacidad de usar y supervisar la instancia de API Management y proporcionar el Acuerdo de Nivel de Servicio confirmado. Para solucionar problemas de conectividad, revise las opciones de configuración de red y corrija la configuración de red necesaria.
Actualizaciones incrementales
Al realizar cambios en la red, consulte NetworkStatus API para validar si el servicio API Management no ha perdido el acceso a los recursos críticos. El estado de conectividad debe actualizarse cada 15 minutos.Para aplicar un cambio de configuración de red a la instancia de API Management mediante el portal:
- En el menú de la izquierda de su instancia, en Implementación e infraestructura, seleccione Red virtual.
- Seleccione Aplicar configuración de red.
Vínculos de navegación de recursos
Una instancia de APIM hospedada en la plataforma de procesostv1, cuando se implementa en una subred de red virtual de Resource Manager, reserva la subred mediante la creación de un vínculo de navegación de recursos. Si la subred ya contiene un recurso de un proveedor distinto, la implementación producirá un error. De forma similar, al eliminar un servicio API Management o moverlo a una subred diferente, se quitará el vínculo de navegación de recursos.
Pasos siguientes
Más información sobre:
- Referencia de configuración de redes virtuales
- Preguntas más frecuentes sobre la red virtual
- Creating a record in DNS (Creación de un registro en DNS)