Compartir a través de


Creación y administración de Private Link para el servidor flexible de Azure Database for MySQL mediante la CLI de Azure

En este artículo, aprenderá a usar la CLI de Azure para crear un punto de conexión privado para acceder a un servidor flexible de Azure Database for MySQL desde una máquina virtual de una red virtual.

Inicio de Azure Cloud Shell

Azure Cloud Shell es un shell interactivo gratuito que puede usar para ejecutar los pasos de este artículo. Tiene las herramientas estándar de Azure preinstaladas y configuradas para usarlas en la cuenta.

Para abrir Cloud Shell, seleccione Pruébelo en la esquina superior derecha de un bloque de código. También puede abrir Cloud Shell en una pestaña independiente acudiendo a https://shell.azure.com/bash. Seleccione Copiar para copiar los bloques de código, péguelos en Cloud Shell y, después, seleccione Entrar para ejecutarlos.

Si prefiere instalar y usar la CLI de forma local, en este inicio rápido se requiere la versión 2.0 o posterior de la CLI de Azure. Ejecute az --version para encontrar la versión. Si necesita instalar o actualizar, consulte Instalación de la CLI de Azure.

Prerrequisitos

Debe iniciar sesión en la cuenta con el comando az login. Tenga en cuenta la propiedad id, que hace referencia al identificador de suscripción para su cuenta de Azure.

az login

Seleccione la suscripción específica en su cuenta mediante el comando az account set. En el comando, use el valor de id de la salida de az login para usarlo como valor del argumento subscription. Si tiene varias suscripciones, elija la suscripción adecuada en la que se debe facturar el recurso. Use az account list para obtener todas las suscripciones.

az account set --subscription <subscription id>

Crear un grupo de recursos

Para crear un recurso, debe crear un grupo de recursos que hospede la red virtual. Cree un grupo de recursos con az group create. En este ejemplo, se crea un grupo de recursos denominado myResourceGroup en la ubicación westeurope:

az group create --name myResourceGroup --location westeurope

Creación de una red virtual

Cree la red virtual con az network vnet create. En este ejemplo se crea una red virtual predeterminada denominada myVirtualNetwork con una subred denominada mySubnet:

az network vnet create \
 --name myVirtualNetwork \
 --resource-group myResourceGroup \
 --subnet-name mySubnet

Deshabilitación de las directivas de punto de conexión privado

Azure implementa los recursos en la subred de una red virtual, por lo que debe crear o actualizar la subred para deshabilitar las directivas de red del punto de conexión privado. Actualice una configuración de subred denominada mySubnet con az network vnet subnet update:

az network vnet subnet update \
 --name mySubnet \
 --resource-group myResourceGroup \
 --vnet-name myVirtualNetwork \
 --disable-private-endpoint-network-policies true

Creación de la máquina virtual

Cree una máquina virtual con az vm create. Cuando se le solicite, proporcione una contraseña que se usará como credenciales de inicio de sesión para la VM. En este ejemplo se crea una máquina virtual llamada myVm:

az vm create \
  --resource-group myResourceGroup \
  --name myVm \
  --image Win2019Datacenter

Nota

Registre la IP pública de la máquina virtual, ya que es necesario para conectarse a Internet en el paso siguiente.

Creación de la instancia de servidor flexible de Azure Database for MySQL con acceso público en el grupo de recursos

Cree una instancia de servidor flexible de Azure Database for MySQL con acceso público y agregue la dirección IP del cliente para acceder a ella.

az mysql flexible-server create \
  --name mydemoserver \
  --resource-group myResourcegroup \
  --location westeurope \
  --admin-user mylogin \
  --admin-password <server_admin_password> \
  --public-access <my_client_ip>

Nota:

En algunos casos, la instancia de servidor flexible de Azure Database for MySQL y la subred de red virtual se encuentran en distintas suscripciones. En estos casos debe garantizar las siguientes configuraciones:

  • Asegúrese de que ambas suscripciones tengan el proveedor de recursos Microsoft.DBforMySQL/flexibleServer registrado. Para más información, consulte resource-manager-registration.

Creación del punto de conexión privado

Cree un punto de conexión privado para el servidor flexible de Azure Database for MySQL en Virtual Network:

az network private-endpoint create \
    --name myPrivateEndpoint \
    --resource-group myResourceGroup \
    --vnet-name myVirtualNetwork  \
    --subnet mySubnet \
    --private-connection-resource-id $(az resource show -g myResourcegroup -n mydemoserver --resource-type "Microsoft.DBforMySQL/flexibleServers" --query "id" -o tsv) \
    --group-id mysqlServer \
    --connection-name myConnection \
    --location location

Configuración de la zona DNS privada

Cree una zona DNS privada para el dominio del servidor flexible de Azure Database for MySQL y cree un vínculo de asociación con Virtual Network.

az network private-dns zone create --resource-group myResourceGroup \
   --name  "privatelink.mysql.database.azure.com"
az network private-dns link vnet create --resource-group myResourceGroup \
   --zone-name  "privatelink.mysql.database.azure.com"\
   --name MyDNSLink \
   --virtual-network myVirtualNetwork \
   --registration-enabled false

# Query for the network interface ID
$networkInterfaceId=$(az network private-endpoint show --name myPrivateEndpoint --resource-group myResourceGroup --query 'networkInterfaces[0].id' -o tsv)

az resource show --ids $networkInterfaceId --api-version 2019-04-01 -o json
# Copy the content for privateIPAddress and FQDN matching the MySQL flexible server name

# Create DNS records
az network private-dns record-set a create --name myserver --zone-name privatelink.mysql.database.azure.com --resource-group myResourceGroup
az network private-dns record-set a add-record --record-set-name myserver --zone-name privatelink.mysql.database.azure.com --resource-group myResourceGroup -a <Private IP Address>

Nota:

El FQDN de la configuración de DNS del cliente no se resuelve la dirección IP privada configurada. Debe configurar una zona DNS para el FQDN configurado como se muestraaquí.

Conexión a una máquina virtual desde Internet

Conéctese a la máquina virtual myVm desde Internet de la siguiente manera:

  1. En la barra de búsqueda del portal, escriba myVm.

  2. Seleccione el botón Conectar. Después de seleccionar el botón Conectar, se abre Conectar a máquina virtual.

  3. Seleccione Descargar archivo RDP. Azure crea un archivo de Protocolo de Escritorio remoto ( .rdp) y lo descarga en su equipo.

  4. Abra el archivo downloaded.rdp.

    1. Cuando se le pida, seleccione Conectar.

. Escriba el nombre de usuario y la contraseña que especificó al crear la VM. > [!NOTA]
> Puede que deba seleccionar Más opciones Usar otra cuenta, para especificar las credenciales que escribió al crear la máquina virtual.

  1. Seleccione Aceptar.

  2. Puede recibir una advertencia de certificado durante el proceso de inicio de sesión. Si recibe una advertencia de certificado, seleccione o Continuar.

  3. Una vez que aparezca el escritorio de la máquina virtual, minimícelo para volver a su escritorio local.

Acceso a la instancia de servidor flexible de Azure Database for MySQL de forma privada desde la máquina virtual

  1. En el Escritorio remoto de myVm, abra PowerShell.

  2. Escriba nslookup mydemomysqlserver.privatelink.mysql.database.azure.com.

    Recibirá un mensaje similar a este:

    Server:  UnKnown
    Address:  168.63.129.16
    Non-authoritative answer:
    Name:    mydemomysqlserver.privatelink.mysql.database.azure.com
    Address:  10.1.3.4
    
  3. Pruebe la conexión de vínculo privado para la instancia de servidor flexible de Azure Database for MySQL mediante cualquier cliente disponible. En el ejemplo siguiente se usa MySQL Workbench para realizar la operación.

  4. En Nueva conexión, escriba o seleccione esta información:

    Configuración Value
    Nombre de la conexión Seleccione el nombre de la conexión que prefiera.
    Hostname Seleccione mydemoserver.privatelink.mysql.database.azure.com
    Nombre de usuario Escriba el nombre de usuario como username@servername, proporcionado durante la creación de la instancia de servidor flexible de Azure Database for MySQL.
    Contraseña Escriba una contraseña proporcionada durante la creación de la instancia de servidor flexible de Azure Database for MySQL.
  5. Seleccione Conectar.

  6. Examine las bases de datos en el menú izquierdo.

  7. (Opcionalmente) Cree o consulte información de la base de datos de servidor flexible de Azure Database for MySQL.

  8. Cierre la conexión de Escritorio remoto a myVm.

Limpieza de recursos

Cuando ya no se necesite, puede utilizar az group delete para quitar el grupo de recursos y todos los recursos que contiene:

az group delete --name myResourceGroup --yes

Enumerar subrecursos que se pueden vincular privados (groupIds)

az network private-link-resource list --id {PrivateLinkResourceID}  // or -g MyResourceGroup -n MySA --type Microsoft.Storage/storageAccounts

Enumerar conexiones de punto de conexión privado en un recurso determinado

az network private-endpoint-connection list --id {PrivateLinkResourceID}

Aprobar conexiones de punto de conexión privado en un recurso determinado

az network private-endpoint-connection approve --id {PrivateEndpointConnectionID}  --description "Approved!"

Rechazar conexiones de punto de conexión privado en un recurso determinado

az network private-endpoint-connection reject --id {PrivateEndpointConnectionID}  --description "Rejected!"

Eliminar conexiones de punto de conexión privado en un recurso determinado

az network private-endpoint-connection delete --id {PrivateEndpointConnectionID}