Inicio rápido: Creación de un punto de conexión privado mediante Azure PowerShell
Empiece con Azure Private Link con la creación y el uso de un punto de conexión privado para conectarse de forma segura a una aplicación web de Azure App Services.
En este inicio rápido, creará un punto de conexión privado para una aplicación web de Azure App Services y, a continuación, creará e implementará una máquina virtual (VM) para probar la conexión privada.
Puede crear puntos de conexión privados para varios servicios de Azure, como Azure SQL y Azure Storage.
Requisitos previos
Una cuenta de Azure con una suscripción activa. Si aún no tiene una cuenta de Azure, cree una de forma gratuita.
Una aplicación web de Azure con un plan de servicio de aplicaciones de nivel PremiumV2 o superior implementado en la suscripción de Azure.
Para más información y ver un ejemplo, consulte Inicio rápido: Creación de una aplicación web ASP.NET Core en Azure.
La aplicación web de ejemplo de este artículo se llama webapp-1. Reemplace el ejemplo por el nombre de la aplicación web.
Azure Cloud Shell o Azure PowerShell.
Los pasos de este inicio rápido ejecutarán los cmdlet de Azure PowerShell de forma interactiva en Azure Cloud Shell. Para ejecutar los comandos en Cloud Shell, seleccione Abrir CloudShell en la esquina superior derecha de un bloque de código. Seleccione Copiar para copiar el código y péguelo, a continuación, en Cloud Shell para ejecutarlo. También podrá ejecutar Cloud Shell desde Azure Portal.
También podrá instalar Azure PowerShell localmente para ejecutar los cmdlet. Los pasos descritos en este artículo requieren el módulo Azure PowerShell versión 5.4.1 o posterior. Ejecute
Get-Module -ListAvailable Az
para buscar la versión instalada. Si necesitase actualizarlo, consulte Instalación del módulo Azure PowerShell.Si ejecutase PowerShell localmente, ejecute
Connect-AzAccount
para conectarse a Azure.
Crear un grupo de recursos
Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure.
Cree un grupo de recursos con New-AzResourceGroup:
$rg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rg
Creación de una red virtual
Use New-AzVirtualNetwork para crear una red virtual denominada vnet-1 con el prefijo de dirección IP 10.0.0.0/16 en el grupo de recursostest-rg y la ubicación eastus2.
$vnet = @{ Name = 'vnet-1' ResourceGroupName = 'test-rg' Location = 'eastus2' AddressPrefix = '10.0.0.0/16' } $virtualNetwork = New-AzVirtualNetwork @vnet
Azure implementa recursos en una subred dentro de una red virtual. Use Add-AzVirtualNetworkSubnetConfig para crear una configuración de subred denominada subnet-1 con el prefijo de dirección 10.0.0.0/24.
$subnet = @{ Name = 'subnet-1' VirtualNetwork = $virtualNetwork AddressPrefix = '10.0.0.0/24' } $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
A continuación, asocie la configuración de subred a la red virtual con Set-AzVirtualNetwork.
$virtualNetwork | Set-AzVirtualNetwork
Implementación de Azure Bastion
Azure Bastion usa el explorador para conectarse a las máquinas virtuales de la red virtual a través del shell seguro (SSH) o el protocolo de escritorio remoto (RDP) mediante sus direcciones IP privadas. Las máquinas virtuales no necesitan direcciones IP públicas, software cliente ni configuración especial. Para más información sobre Azure Bastion, consulte Azure Bastion.
Nota:
Los precios por hora comienzan desde el momento en que se implementa Bastion, independientemente del uso de datos salientes. Para más información, consulte Precios y SKU. Si va a implementar Bastion como parte de un tutorial o prueba, se recomienda eliminar este recurso una vez que haya terminado de usarlo.
Configure la subred de Azure Bastion en la red virtual. Esta subred se reservará exclusivamente para los recursos de Azure Bastion y deberá denominarse AzureBastionSubnet.
$subnet = @{ Name = 'AzureBastionSubnet' VirtualNetwork = $virtualNetwork AddressPrefix = '10.0.1.0/26' } $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Establezca la configuración.
$virtualNetwork | Set-AzVirtualNetwork
Cree una dirección IP pública para Azure Bastion. El host bastión usará la dirección IP pública para acceder al shell seguro (SSH) y al protocolo de escritorio remoto (RDP) a través del puerto 443.
$ip = @{ ResourceGroupName = 'test-rg' Name = 'public-ip' Location = 'eastus2' AllocationMethod = 'Static' Sku = 'Standard' Zone = 1,2,3 } New-AzPublicIpAddress @ip
Use el comando New-AzBastion para crear un nuevo host de Azure Bastion de SKU estándar en AzureBastionSubnet.
$bastion = @{ Name = 'bastion' ResourceGroupName = 'test-rg' PublicIpAddressRgName = 'test-rg' PublicIpAddressName = 'public-ip' VirtualNetworkRgName = 'test-rg' VirtualNetworkName = 'vnet-1' Sku = 'Basic' } New-AzBastion @bastion
Los recursos de Bastion tardan varios minutos en implementarse.
Creación de un punto de conexión privado
Se requiere un servicio de Azure que admita puntos de conexión privados para configurar el punto de conexión privado y la conexión a la red virtual. Para los ejemplos de este artículo, utilizaremos una Azure App Services WebApp de los requisitos previos. Para más información sobre los servicios de Azure que admiten un punto de conexión privado, consulte Disponibilidad de Azure Private Link.
Un punto de conexión privado puede tener una dirección IP estática o asignada dinámicamente.
Importante
Debe tener una Azure App Services WebApp previamente implementada para continuar con los pasos de este artículo. Para obtener más información, consulte Requisitos previos.
En esta sección:
Cree una conexión de servicio de vínculo privado con New-AzPrivateLinkServiceConnection.
Cree el punto de conexión privado con New-AzPrivateEndpoint.
De manera opcional, cree la configuración de IP estática del punto de conexión privado con New-AzPrivateEndpointIpConfiguration.
## Place the previously created webapp into a variable. ##
$webapp = Get-AzWebApp -ResourceGroupName test-rg -Name webapp-1
## Create the private endpoint connection. ##
$pec = @{
Name = 'connection-1'
PrivateLinkServiceId = $webapp.ID
GroupID = 'sites'
}
$privateEndpointConnection = New-AzPrivateLinkServiceConnection @pec
## Place the virtual network you created previously into a variable. ##
$vnet = Get-AzVirtualNetwork -ResourceGroupName 'test-rg' -Name 'vnet-1'
## Create the private endpoint. ##
$pe = @{
ResourceGroupName = 'test-rg'
Name = 'private-endpoint'
Location = 'eastus2'
Subnet = $vnet.Subnets[0]
PrivateLinkServiceConnection = $privateEndpointConnection
}
New-AzPrivateEndpoint @pe
Configuración de la zona DNS privada
Se usa una zona DNS privada para resolver el nombre DNS del punto de conexión privado en la red virtual. Para este ejemplo, utilizaremos la información DNS de una aplicación web de Azure App Services. Para obtener más información sobre la configuración DNS de puntos de conexión privados, consulte Configuración DNS de puntos de conexión privados de Azure.
En esta sección:
Creará una nueva zona de Azure DNS privada con New-AzPrivateDnsZone.
Vinculará la zona DNS a la red virtual que creó anteriormente con New-AzPrivateDnsVirtualNetworkLink.
Creará una configuración de zona DNS con New-AzPrivateDnsZoneConfig.
Creará un grupo de zona DNS con New-AzPrivateDnsZoneGroup.
## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -ResourceGroupName 'test-rg' -Name 'vnet-1'
## Create the private DNS zone. ##
$zn = @{
ResourceGroupName = 'test-rg'
Name = 'privatelink.azurewebsites.net'
}
$zone = New-AzPrivateDnsZone @zn
## Create a DNS network link. ##
$lk = @{
ResourceGroupName = 'test-rg'
ZoneName = 'privatelink.azurewebsites.net'
Name = 'dns-link'
VirtualNetworkId = $vnet.Id
}
$link = New-AzPrivateDnsVirtualNetworkLink @lk
## Configure the DNS zone. ##
$cg = @{
Name = 'privatelink.azurewebsites.net'
PrivateDnsZoneId = $zone.ResourceId
}
$config = New-AzPrivateDnsZoneConfig @cg
## Create the DNS zone group. ##
$zg = @{
ResourceGroupName = 'test-rg'
PrivateEndpointName = 'private-endpoint'
Name = 'zone-group'
PrivateDnsZoneConfig = $config
}
New-AzPrivateDnsZoneGroup @zg
Creación de una máquina virtual de prueba
Para comprobar la dirección IP estática y la funcionalidad del punto de conexión privado, se requiere una máquina virtual de prueba conectada a la red virtual.
En esta sección:
Creará una credencial de inicio de sesión para la máquina virtual con Get-Credential.
Creará una interfaz de red para la máquina virtual con New-AzNetworkInterface.
Creará una configuración de máquina virtual con New-AzVMConfig, Set-AzVMOperatingSystem, Set-AzVMSourceImage y Add-AzVMNetworkInterface.
Creará la máquina virtual con New-AzVM.
## Create the credential for the virtual machine. Enter a username and password at the prompt. ##
$cred = Get-Credential
## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -Name vnet-1 -ResourceGroupName test-rg
## Create a network interface for the virtual machine. ##
$nic = @{
Name = 'nic-1'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
Subnet = $vnet.Subnets[0]
}
$nicVM = New-AzNetworkInterface @nic
## Create the configuration for the virtual machine. ##
$vm1 = @{
VMName = 'vm-1'
VMSize = 'Standard_DS1_v2'
}
$vm2 = @{
ComputerName = 'vm-1'
Credential = $cred
}
$vm3 = @{
PublisherName = 'MicrosoftWindowsServer'
Offer = 'WindowsServer'
Skus = '2022-Datacenter'
Version = 'latest'
}
$vmConfig =
New-AzVMConfig @vm1 | Set-AzVMOperatingSystem -Windows @vm2 | Set-AzVMSourceImage @vm3 | Add-AzVMNetworkInterface -Id $nicVM.Id
## Create the virtual machine. ##
New-AzVM -ResourceGroupName 'test-rg' -Location 'eastus2' -VM $vmConfig
Nota
Las máquinas virtuales de una red virtual con un host bastión no necesitarán direcciones IP públicas. Bastion proporcionará la dirección IP pública y las máquinas virtuales usarán direcciones IP privadas para comunicarse dentro de la red. Es posible quitar las direcciones IP públicas de cualquier máquina virtual en redes virtuales hospedadas por Bastion. Para obtener más información, consulte Desasociación de una dirección IP pública de una máquina virtual de Azure.
Nota:
Azure proporciona una dirección IP de acceso de salida predeterminada para las máquinas virtuales que no tienen asignada una dirección IP pública o están en el grupo back-end de un equilibrador de carga de Azure básico interno. El mecanismo de dirección IP de acceso de salida predeterminado proporciona una dirección IP de salida que no se puede configurar.
La dirección IP de acceso de salida predeterminada está deshabilitada cuando se produce uno de los siguientes eventos:
- Se asigna una dirección IP pública a la máquina virtual.
- La máquina virtual se coloca en el grupo back-end de un equilibrador de carga estándar, con o sin reglas de salida.
- Se asigna un recurso de Azure NAT Gateway a la subred de la máquina virtual.
Las máquinas virtuales creadas mediante conjuntos de escalado de máquinas virtuales en modo de orquestación flexible no tienen acceso de salida predeterminado.
Para más información sobre las conexiones de salida en Azure, vea Acceso de salida predeterminado en Azure y Uso de traducción de direcciones de red (SNAT) de origen para conexiones de salida.
Prueba de la conectividad con el punto de conexión privado
Use la máquina virtual que creó anteriormente para conectarse a la aplicación web a través del punto de conexión privado.
En el cuadro de búsqueda que aparece en la parte superior del portal, escriba Máquina virtual. Seleccione Máquinas virtuales.
Seleccione vm-1.
En la página de información general para vm-1, seleccione Conectar y, luego, la pestaña Bastion.
Seleccione Usar Bastion.
Escriba el nombre de usuario y la contraseña que usó al crear la máquina virtual.
Seleccione Conectar.
Después de haberse conectado, abra PowerShell en el servidor.
Escriba
nslookup webapp-1.azurewebsites.net
. Recibirá un mensaje similar al siguiente ejemplo:Server: UnKnown Address: 168.63.129.16 Non-authoritative answer: Name: webapp-1.privatelink.azurewebsites.net Address: 10.0.0.10 Aliases: webapp-1.azurewebsites.net
Se devuelve una dirección IP privada de 10.0.0.10 para el nombre de la aplicación web si eligió una dirección IP estática en los pasos anteriores. Esta dirección se encuentra en la subred de la red virtual que creó anteriormente.
En la conexión de bastión a vm-1, abra el explorador web.
Escriba la dirección URL de la aplicación web,
https://webapp-1.azurewebsites.net
.Si la aplicación web no se ha implementado, aparecerá la siguiente página predeterminada de la aplicación web:
Limpieza de recursos
Cuando ya no los necesite, puede usar el comando Remove-AzResourceGroup para quitar el grupo de recursos, la red virtual y el resto de los recursos.
Remove-AzResourceGroup -Name 'test-rg'
Pasos siguientes
Para más información sobre los servicios que admiten puntos de conexión privados, consulte: