Crear y asociar directivas de punto de conexión de servicio
Artículo
Las directivas de puntos de conexión de servicio le permiten filtrar el tráfico de red virtual a recursos específicos de Azure, sobre puntos de conexión de servicio. Si no está familiarizado con estas directivas, consulte Directivas de punto de conexión de servicio para más información.
En este tutorial, aprenderá a:
Cree una red virtual.
Agregue una subred y habilite un punto de conexión de servicio para Azure Storage.
Crear dos cuentas de Azure Storage y permita el acceso de red desde la subred de la red virtual.
Crear una directiva de punto de conexión de servicio para permitir el acceso solo a una de las cuentas de almacenamiento.
Implementar una máquina virtual (VM) en la subred.
Confirmar el acceso a la cuenta de almacenamiento permitida desde la subred.
Confirmar que se deniega el acceso a la cuenta de almacenamiento no permitida desde la subred.
En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.
Para iniciar Azure Cloud Shell:
Opción
Ejemplo o vínculo
Seleccione Pruébelo en la esquina superior derecha de un bloque de código o de comandos. Solo con seleccionar Pruébelo no se copia automáticamente el código o comando en Cloud Shell.
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador.
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal.
Para usar Azure Cloud Shell:
Inicie Cloud Shell.
Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.
Pegue el código o comando en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.
Seleccione Enter para ejecutar el código o comando.
Si decide instalar y usar PowerShell de forma local, para realizar los pasos de este artículo necesita la versión 1.0.0 del módulo de Azure PowerShell o cualquier versión posterior. Ejecute Get-Module -ListAvailable Az para buscar la versión instalada. Si necesita actualizarla, consulte Instalación del módulo de Azure PowerShell. Si PowerShell se ejecuta localmente, también debe ejecutar Connect-AzAccount para crear una conexión con Azure.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
En este artículo se necesita la versión 2.0.28 o posterior de la CLI de Azure. Si usa Azure Cloud Shell, ya está instalada la versión más reciente.
Crear una red virtual y habilitación del punto de conexión de servicio
Crear una red virtual para contener los recursos que cree en este tutorial.
En el cuadro de búsqueda del portal, escriba Redes virtuales. En los resultados de la búsqueda, seleccione Redes virtuales.
Seleccione + Crear para crear una red virtual.
Escriba o seleccione la siguiente información en la pestaña Conceptos básicos de Crear red virtual.
Configuración
Value
Detalles del proyecto
Subscription
Seleccione su suscripción.
Resource group
Seleccione Crear nuevo. Escriba test-rg en Nombre. Seleccione Aceptar.
Nombre
Escriba vnet-1.
Region
Seleccione Oeste de EE. UU. 2.
Seleccione Siguiente.
Seleccione Siguiente.
En la pestaña Direcciones IP, en Subredes, seleccione la subred predeterminada.
Escriba o seleccione la siguiente información en Editar subred.
Configuración
Value
Nombre
Escriba subnet-1.
Puntos de conexión de servicio
Servicios
En el menú desplegable, seleccione Microsoft.Storage.
Seleccione Guardar.
Seleccione Revisar + crear.
Seleccione Crear.
Antes de crear una red virtual, cree un grupo de recursos para ella y los demás recursos que se crearon en este artículo. Cree un grupo de recursos con New-AzResourceGroup. En el ejemplo siguiente se crea un grupo de recursos denominado test-rg:
Cree una red virtual con New-AzVirtualNetwork. En el ejemplo siguiente se crea una red virtual denominada vnet-1 con un prefijo de la dirección 10.0.0.0/16.
Cree una configuración de subred con New-AzVirtualNetworkSubnetConfig y escríbala en la red virtual con Set-AzVirtualNetwork. En el siguiente ejemplo se agrega una subred denominada subnet-1 a la red virtual y se crea el punto de conexión de servicio para Microsoft.Storage.
Antes de crear una red virtual, cree un grupo de recursos para ella y los demás recursos que se crearon en este artículo. Cree un grupo de recursos con az group create. En el ejemplo siguiente se crea un grupo de recursos denominado test-rg en la ubicación westus2.
az group create \
--name test-rg \
--location westus2
En el cuadro de búsqueda del portal, escriba Grupos de seguridad de red. En los resultados de la búsqueda, seleccione Grupos de seguridad de red.
Seleccione + Crear para crear un nuevo grupo de seguridad de red.
En la pestaña Conceptos básicos de la opción Crear un grupo de seguridad de red, escriba o seleccione esta información.
Configuración
Value
Detalles del proyecto
Subscription
Seleccione su suscripción.
Resource group
Seleccione test-rg.
Nombre
Escriba nsg-1.
Region
Seleccione Oeste de EE. UU. 2.
Seleccione Revisar + crear.
Seleccione Crear.
Creación de reglas de grupo de seguridad de red
En el cuadro de búsqueda del portal, escriba Grupos de seguridad de red. En los resultados de la búsqueda, seleccione Grupos de seguridad de red.
Seleccione nsg-1.
Expanda Ajustes. Seleccione Reglas de seguridad de salida.
Seleccione + Agregar para agregar una nueva regla de seguridad de salida.
En Agregar regla de seguridad de entrada, especifique o seleccione la siguiente información.
Configuración
Valor
Source
Seleccione Service Tag (Etiqueta de servicio).
Etiqueta de servicio de origen
Seleccione VirtualNetwork.
Intervalos de puertos de origen
Escriba *.
Destino
Seleccione Service Tag (Etiqueta de servicio).
Etiqueta de servicio de destino
Seleccione Storage.
Service
seleccione Personalizada.
Intervalos de puertos de destino
Escriba *.
Protocolo
Seleccione Cualquiera.
Acción
seleccione Permitir.
Priority
Escriba 100.
Nombre
Escriba allow-storage-all.
Seleccione Agregar.
Seleccione + Agregar para agregar otra regla de seguridad de salida.
En Agregar regla de seguridad de entrada, especifique o seleccione la siguiente información.
Configuración
Valor
Source
Seleccione Service Tag (Etiqueta de servicio).
Etiqueta de servicio de origen
Seleccione VirtualNetwork.
Intervalos de puertos de origen
Escriba *.
Destino
Seleccione Service Tag (Etiqueta de servicio).
Etiqueta de servicio de destino
seleccione Internet.
Service
seleccione Personalizada.
Intervalos de puertos de destino
Escriba *.
Protocolo
Seleccione Cualquiera.
Acción
Seleccione Denegar.
Priority
Escriba 110.
Nombre
Escriba deny-internet-all.
Seleccione Agregar.
Expanda Ajustes. Seleccione Subredes.
Seleccione Asociar.
En Asociar subred, escriba o seleccione la siguiente información.
Configuración
Value
Virtual network
Seleccione vnet-1 (test-rg).
Subnet
Seleccione subnet-1.
Seleccione Aceptar.
Cree reglas de seguridad de grupo de seguridad de red con New-AzNetworkSecurityRuleConfig. La siguiente regla permite el acceso de salida a las direcciones IP públicas asignadas al servicio Azure Storage:
La siguiente regla deniega el acceso a todas las direcciones IP públicas. La regla anterior invalida esta regla porque su prioridad es más alta, lo que permite el acceso a las direcciones IP públicas de Azure Storage.
Asocie el grupo de seguridad de red a la subred subnet-1 con Set-AzVirtualNetworkSubnetConfig y escriba la configuración de subred en la red virtual. El siguiente ejemplo asocia el grupo de seguridad de red nsg-1 a la subred subnet-1:
Cree un grupo de seguridad de red con az network nsg create. En el siguiente ejemplo se crea un grupo de seguridad de red denominado nsg-1.
az network nsg create \
--resource-group test-rg \
--name nsg-1
Asocie el grupo de seguridad de red a la subred subnet-1 con az network vnet subnet update. El siguiente ejemplo asocia el grupo de seguridad de red nsg-1 a la subred subnet-1:
Cree reglas de seguridad con az network nsg rule create. La regla siguiente permite el acceso de salida a las direcciones IP públicas asignadas al servicio Azure Storage:
Cada grupo de seguridad de red contiene varias reglas de seguridad predeterminadas. La regla siguiente invalida una regla de seguridad predeterminada que permite el acceso de salida a todas las direcciones IP públicas. La opción destination-address-prefix "Internet" deniega el acceso de salida a todas las direcciones IP públicas. La regla anterior invalida esta regla porque su prioridad es más alta, lo que permite el acceso a las direcciones IP públicas de Azure Storage.
Restricción del acceso de red a las cuentas de Azure Storage
Los pasos que deben seguirse para restringir el acceso de la red a los recursos creados con servicios de Azure habilitados para puntos de conexión de servicio varían en función del servicio. Consulte en la documentación de cada servicio concreto los pasos necesarios para dicho servicio. Como ejemplo, de aquí en adelante se explican los pasos necesarios para restringir el acceso de red en una cuenta de Azure Storage.
En el cuadro de búsqueda del portal, escriba Cuentas de almacenamiento. En los resultados de la búsqueda, seleccione Cuentas de almacenamiento.
Seleccione + Crear para crear una cuenta de almacenamiento.
En Crear una cuenta de almacenamiento, escriba o seleccione la siguiente información.
Configuración
Value
Detalles del proyecto
Subscription
Seleccione su suscripción.
Resource group
Seleccione test-rg.
Detalles de instancia
Nombre de la cuenta de almacenamiento
Escriba allowedaccount(random-number). Nota: El nombre de la cuenta de almacenamiento debe ser único. Agregue un número aleatorio al final del nombre allowedaccount.
Region
Seleccione Oeste de EE. UU. 2.
Rendimiento
Seleccione Estándar.
Redundancia
Seleccione Almacenamiento con redundancia local (LRS) .
Seleccione Siguiente hasta llegar a la pestaña Protección de datos.
En Recuperación, anule la selección de todas las opciones.
Seleccione Revisar + crear.
Seleccione Crear.
Repita los pasos anteriores para crear otra cuenta de almacenamiento con la siguiente información.
En el cuadro de búsqueda del portal, escriba Cuentas de almacenamiento. En los resultados de la búsqueda, seleccione Cuentas de almacenamiento.
Seleccione allowedaccount(random-number).
Expanda la sección Almacenamiento de datos y seleccione Recursos compartidos de archivos.
Seleccione + Recurso compartido de archivos.
En Nuevo recurso compartido de archivos, escriba o seleccione la siguiente información.
Configuración
Value
Nombre
Escriba file-share.
Deje el resto de la configuración como predeterminada y seleccione Revisar y crear.
Seleccione Crear.
Repita los pasos anteriores para crear un recurso compartido de archivos en deniedaccount(random-number).
Crear cuenta de almacenamiento permitida de recursos compartidos
Use Get-AzStorageAccountKey para obtener la clave de la cuenta de almacenamiento de la cuenta de almacenamiento permitida. Usará esta clave en el paso siguiente para crear un recurso compartido de archivos en la cuenta de almacenamiento permitida.
Cree un contexto para la clave y la cuenta de almacenamiento con New-AzStorageContext. El contexto encapsula el nombre y la clave de cuenta de almacenamiento.
Crear un recurso compartido de archivos de cuenta de almacenamiento denegado
Use Get-AzStorageAccountKey para obtener la clave de la cuenta de almacenamiento de la cuenta de almacenamiento permitida. Usará esta clave en el paso siguiente para crear un recurso compartido de archivos en la cuenta de almacenamiento denegada.
Cree un contexto para la clave y la cuenta de almacenamiento con New-AzStorageContext. El contexto encapsula el nombre y la clave de cuenta de almacenamiento.
Crear cuenta de almacenamiento permitida de recursos compartidos
Recupere la cadena de conexión de las cuentas de almacenamiento en una variable con az storage account show-connection-string. La cadena de conexión se utiliza para crear un recurso compartido de archivos en un paso posterior.
Cree un recurso compartido de archivos en la cuenta de almacenamiento con az storage share create. En un paso posterior, este recurso compartido de archivos está montado para confirmar el acceso de red a él.
Crear un recurso compartido de archivos de cuenta de almacenamiento denegado
Recupere la cadena de conexión de las cuentas de almacenamiento en una variable con az storage account show-connection-string. La cadena de conexión se utiliza para crear un recurso compartido de archivos en un paso posterior.
Cree un recurso compartido de archivos en la cuenta de almacenamiento con az storage share create. En un paso posterior, este recurso compartido de archivos está montado para confirmar el acceso de red a él.
Denegar todo el acceso de red a las cuentas de almacenamiento
De forma predeterminada, las cuentas de almacenamiento aceptan conexiones de red procedentes de clientes de cualquier red. Para restringir el acceso de red a las cuentas de almacenamiento, puede configurar la cuenta de almacenamiento para que acepte conexiones solo desde redes específicas. En este ejemplo, configurará la cuenta de almacenamiento para que acepte conexiones solo desde la subred de red virtual que creó anteriormente.
En el cuadro de búsqueda del portal, escriba Cuentas de almacenamiento. En los resultados de la búsqueda, seleccione Cuentas de almacenamiento.
Seleccione allowedaccount(random-number).
Expanda Seguridad y redes y seleccione Redes.
En Firewalls y redes virtuales, en Acceso a red pública, seleccione Habilitado en redes virtuales seleccionadas y direcciones IP.
En Redes virtuales, seleccione + Agregar red virtual existente.
En Agregar redes, escriba o seleccione la siguiente información.
Configuración
Valor
Suscripción
Seleccione su suscripción.
Redes virtuales
Seleccione vnet-1.
Subredes
Seleccione subnet-1.
Seleccione Agregar.
Seleccione Guardar.
Repita los pasos anteriores para denegar el acceso de red a deniedaccount(random-number).
Use Update-AzStorageAccountNetworkRuleSet para denegar el acceso a las cuentas de almacenamiento, excepto desde la red virtual y la subred que creó anteriormente. Una vez que se deniega el acceso a la red, no se puede acceder a la cuenta de almacenamiento desde ninguna red.
De forma predeterminada, las cuentas de almacenamiento aceptan conexiones de red procedentes de clientes de cualquier red. Para limitar el acceso a redes seleccionadas, cambie la acción predeterminada a Deny con az storage account update. Una vez que se deniega el acceso a la red, no se puede acceder a la cuenta de almacenamiento desde ninguna red.
Aplicación de la directiva para permitir el acceso a una cuenta de almacenamiento válida
Puede crear una directiva de punto de conexión de servicio. La directiva garantiza que los usuarios de la red virtual solo puedan acceder a cuentas de Azure Storage seguras y permitidas. Esta directiva contiene una lista de cuentas de almacenamiento permitidas aplicadas a la subred de red virtual que está conectada al almacenamiento mediante puntos de conexión de servicio.
Creación de una directiva de punto de conexión de servicio
En esta sección se crea la definición de directiva con la lista de recursos permitidos para el acceso a través del punto de conexión de servicio.
En el cuadro de búsqueda del portal, escriba Directiva de punto de conexión de servicio. Seleccione Directivas de punto de conexión de servicio en los resultados de búsqueda.
Seleccione + Crear para crear una nueva directiva de punto de conexión de servicio.
Escriba o seleccione la siguiente información en la pestaña Conceptos básicos de Crear una directiva de punto de conexión de servicio.
Configuración
Value
Detalles del proyecto
Subscription
Seleccione su suscripción.
Resource group
Seleccione test-rg.
Detalles de instancia
Nombre
Escriba service-endpoint-policy.
Location
Seleccione Oeste de EE. UU. 2.
Seleccione Siguiente: definiciones de directiva.
Seleccione + Agregar un recurso en Recursos.
En Agregar un recurso, escriba o seleccione la siguiente información:
Configuración
Valor
Servicio
Seleccione Microsoft.Storage.
Ámbito
Seleccione Cuenta única
Suscripción
Seleccione su suscripción.
Resource group
Seleccione test-rg.
Resource
Seleccionar allowedaccount(random-number)
Seleccione Agregar.
Seleccione Revisar + crear.
Seleccione Crear.
Para recuperar el id. de recurso de la primera cuenta de almacenamiento (permitida), use Get-AzStorageAccount.
Las directivas de punto de conexión de servicio se aplican a los puntos de conexión de servicio. Empiece por crear una directiva de punto de conexión de servicio. A continuación, cree las definiciones de directiva en esta directiva para que las cuentas de Azure Storage se aprueben para esta subred
Use az storage account show para obtener el id. de recurso de la cuenta de almacenamiento permitida.
serviceResourceId=$(az storage account show --name allowedaccount --query id --output tsv)
Creación de una directiva de punto de conexión de servicio
Asociación una directiva de punto de conexión de servicio a una subred
Después de crear la directiva de punto de conexión de servicio, deberá asociarla a la subred de destino con la configuración del punto de conexión de servicio de Azure Storage.
En el cuadro de búsqueda del portal, escriba Directiva de punto de conexión de servicio. Seleccione Directivas de punto de conexión de servicio en los resultados de búsqueda.
Seleccione service-endpoint-policy.
Expanda Configuración y seleccione subredes asociadas.
Seleccione + Editar asociación de subred.
En Editar asociación de subred, seleccione vnet-1 y subnet-1.
Asegúrese de que todos los recursos a los que se accede desde la subred se agregan a la directiva antes de asociarla a la subred especificada. Una vez que la directiva está asociada, solo se permitirá el acceso a los recursos de la lista de permitidos en los puntos de conexión de servicio.
Asegúrese de que no existen servicios administrados de Azure en la subred que se está asociando a la directiva de punto de conexión de servicio.
El acceso a los recursos de Azure Storage en todas las regiones se restringe según la directiva de punto de conexión de servicio de esta subred.
Validación de la restricción de acceso a las cuentas de Azure Storage
Para probar el acceso de red a una cuenta de almacenamiento, implemente una VM en la subred.
En el cuadro de búsqueda del portal, escriba Máquinas virtuales. En los resultados de la búsqueda, seleccione Máquinas virtuales.
En la pestaña Conceptos básicos de Crear una máquina virtual, escriba o seleccione la siguiente información:
Configuración
Value
Detalles del proyecto
Subscription
Seleccione su suscripción.
Resource group
Seleccione test-rg.
Detalles de instancia
Nombre de la máquina virtual
Escriba vm-1.
Region
Seleccione (EE. UU.) Oeste de EE. UU. 2.
Opciones de disponibilidad
Seleccione No se requiere redundancia de la infraestructura.
Tipo de seguridad
Seleccione Estándar.
Imagen
Seleccione Windows Server 2022 Datacenter - x64 Gen2.
Size
Seleccione un tamaño.
Cuenta de administrador
Nombre de usuario
Especifique un nombre de usuario.
Contraseña
Escriba una contraseña.
Confirmación de la contraseña
Vuelva a escribir la contraseña.
Reglas de puerto de entrada
Seleccione Siguiente: Discos y después, seleccione Siguiente: Redes.
En la pestaña Redes, escriba o seleccione la siguiente información:
Configuración
Valor
Interfaz de red
Virtual network
Seleccione vnet-1.
Subnet
Seleccione subnet-1 (10.0.0.0/24).
Dirección IP pública
Seleccione Ninguno.
Grupo de seguridad de red de NIC
Seleccione Ninguno.
Deje el resto de la configuración como predeterminada y seleccione Revisar y crear.
Seleccione Crear.
Cree una máquina virtual en la subnet-1 con New-AzVM. Cuando ejecute el comando siguiente, se le solicitarán las credenciales. Los valores que especifique se configuran como el nombre de usuario y la contraseña de la máquina virtual.
En el cuadro de búsqueda del portal, escriba Cuentas de almacenamiento. En los resultados de la búsqueda, seleccione Cuentas de almacenamiento.
Seleccione allowedaccount(random-number).
Expanda Seguridad y redes y seleccione Claves de acceso.
Copie el valor key1. Esta clave se utiliza para asignar una unidad a la cuenta de almacenamiento de la máquina virtual creada anteriormente.
En el cuadro de búsqueda del portal, escriba Máquinas virtuales. En los resultados de la búsqueda, seleccione Máquinas virtuales.
Seleccione vm-1.
Expanda Operaciones. Seleccione Ejecutar comando.
Seleccione RunPowerShellScript.
Pegue el siguiente script en Ejecutar script de comandos.
## Enter the storage account key for the allowed storage account that you recorded earlier.
$storageAcctKey1 = (pasted from procedure above)
$acctKey = ConvertTo-SecureString -String $storageAcctKey1 -AsPlainText -Force
## Replace the login account with the name of the storage account you created.
$credential = New-Object System.Management.Automation.PSCredential -ArgumentList ("Azure\allowedaccount"), $acctKey
## Replace the storage account name with the name of the storage account you created.
New-PSDrive -Name Z -PSProvider FileSystem -Root "\\allowedaccount.file.core.windows.net\file-share" -Credential $credential
Seleccione Ejecutar.
Si la asignación de unidad se realiza correctamente, la salida del cuadro Salida es similar al ejemplo siguiente:
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
Z FileSystem \\allowedaccount.file.core.windows.net\fil..
Confirmar que se deniega el acceso a la cuenta de almacenamiento denegada
En el cuadro de búsqueda del portal, escriba Cuentas de almacenamiento. En los resultados de la búsqueda, seleccione Cuentas de almacenamiento.
Seleccione deniedaccount(random-number).
Expanda Seguridad y redes y seleccione Claves de acceso.
Copie el valor key1. Esta clave se utiliza para asignar una unidad a la cuenta de almacenamiento de la máquina virtual creada anteriormente.
En el cuadro de búsqueda del portal, escriba Máquinas virtuales. En los resultados de la búsqueda, seleccione Máquinas virtuales.
Seleccione vm-1.
Expanda Operaciones. Seleccione Ejecutar comando.
Seleccione RunPowerShellScript.
Pegue el siguiente script en Ejecutar script de comandos.
## Enter the storage account key for the denied storage account that you recorded earlier.
$storageAcctKey2 = (pasted from procedure above)
$acctKey = ConvertTo-SecureString -String $storageAcctKey2 -AsPlainText -Force
## Replace the login account with the name of the storage account you created.
$credential = New-Object System.Management.Automation.PSCredential -ArgumentList ("Azure\deniedaccount"), $acctKey
## Replace the storage account name with the name of the storage account you created.
New-PSDrive -Name Z -PSProvider FileSystem -Root "\\deniedaccount.file.core.windows.net\file-share" -Credential $credential
Seleccione Ejecutar.
Recibirá el siguiente mensaje de error en el cuadro Salida:
New-PSDrive : Access is denied
At line:1 char:1
+ New-PSDrive -Name Z -PSProvider FileSystem -Root "\\deniedaccount8675 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Z:PSDriveInfo) [New-PSDrive], Win32Exception
+ FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand
La asignación de unidades se deniega debido a la directiva de punto de conexión de servicio que restringe el acceso a la cuenta de almacenamiento.