Creación y administración de Private Link para Azure Database for PostgreSQL: servidor único con la CLI

Se aplica a: Azure Database for PostgreSQL: servidor único

Importante

El servicio de servidor único de Azure Database for PostgreSQL está en proceso de retirada. Se recomienda encarecidamente actualizar a Azure Database for PostgreSQL: servidor flexible. Para más información sobre la migración al servidor flexible de Azure Database for PostgreSQL, consulte ¿Qué sucede con el servicio de servidor único de Azure Database for PostgreSQL?.

Un punto de conexión privado es el bloque de creación fundamental para el vínculo privado en Azure. Permite que los recursos de Azure, como las máquinas virtuales, se comuniquen de manera privada con recursos de vínculos privados. En este artículo se muestra cómo usar CLI de Azure para crear una máquina virtual en Azure Virtual Network y un servidor único de Azure Database for PostgreSQL con un punto de conexión privado de Azure.

Nota

La característica de vínculo privado solo está disponible para servidores de Azure Database for PostgreSQL en los planes de tarifa de uso general u optimizado para memoria. Asegúrese de que el servidor de bases de datos esté incluido en uno de estos planes de tarifa.

Prerrequisitos

Para seguir esta guía, necesitará:

Azure Cloud Shell

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. Captura de pantalla que muestra un ejemplo de la opción Pruébelo para Azure Cloud Shell.
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. Botón para iniciar Azure Cloud Shell.
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. Captura de pantalla que muestra el botón de Cloud Shell en Azure Portal

Para usar Azure Cloud Shell:

  1. Inicie Cloud Shell.

  2. Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.

  3. 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.

  4. Seleccione Enter para ejecutar el código o comando.

Si, en su lugar, decide instalar y usar la CLI de Azure en un entorno local, para esta guía de inicio rápido se necesita la versión 2.0.28 de la CLI de Azure o una versión posterior. Ejecute az --version para buscar la versión instalada. Consulte Instalación de la CLI de Azure para obtener información sobre la instalación o actualización.

Crear un grupo de recursos

Para poder 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 la 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

Anote la dirección IP pública de la máquina virtual. Usará esta dirección para conectarse a la máquina virtual desde Internet en el paso siguiente.

Creación de Azure Database for PostgreSQL: servidor único

Cree una instancia de Azure Database for PostgreSQL con el comando crear servidor az postgres. Recuerde que el nombre del servidor PostgreSQL debe ser único en Azure, así que reemplace el valor del marcador de posición por sus propios valores únicos que utilizó anteriormente:

# Create a server in the resource group

[!INCLUDE [applies-to-postgresql-single-server](../includes/applies-to-postgresql-single-server.md)]

[!INCLUDE [azure-database-for-postgresql-single-server-deprecation](../includes/azure-database-for-postgresql-single-server-deprecation.md)]


az postgres server create \
--name mydemoserver \
--resource-group myresourcegroup \
--location westeurope \
--admin-user mylogin \
--admin-password <server_admin_password> \
--sku-name GP_Gen5_2

Creación del punto de conexión privado

Cree un punto de conexión privado para el servidor PostgreSQL en la instancia de 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.DBforPostgreSQL/servers" --query "id" -o tsv) \    
    --group-id postgresqlServer \  
    --connection-name myConnection  

Configuración de la zona DNS privada

Cree una zona DNS privada para el dominio del servidor PostgreSQL y cree un vínculo de asociación con la instancia de Virtual Network.

az network private-dns zone create --resource-group myResourceGroup \ 
   --name  "privatelink.postgres.database.azure.com" 
az network private-dns link vnet create --resource-group myResourceGroup \ 
   --zone-name  "privatelink.postgres.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 Azure database for PostgreSQL name

[!INCLUDE [applies-to-postgresql-single-server](../includes/applies-to-postgresql-single-server.md)]

[!INCLUDE [azure-database-for-postgresql-single-server-deprecation](../includes/azure-database-for-postgresql-single-server-deprecation.md)]


#Create DNS records 

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

Nota

El FQDN de la configuración de DNS del cliente no se resuelve en la dirección IP privada configurada. Tendrá que configurar una zona DNS para el FQDN configurado, como se muestra aquí.

Nota

En algunos casos, Azure Database for PostgreSQL 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.DBforPostgreSQL registrado. Para más información, consulte Proveedores de recursos.

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.

    2. Escriba el nombre de usuario y la contraseña que especificó al crear la VM.

      Nota:

      Es posible que tenga que seleccionar Más opciones>Usar otra cuenta para especificar las credenciales que escribió al crear la máquina virtual.

  5. Seleccione Aceptar.

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

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

Acceso al servidor PostgreSQL de forma privada desde la VM

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

  2. Escriba nslookup mydemopostgresserver.privatelink.postgres.database.azure.com.

    Recibirá un mensaje similar a este:

    Server:  UnKnown
    Address:  168.63.129.16
    Non-authoritative answer:
    Name:    mydemopostgresserver.privatelink.postgres.database.azure.com
    Address:  10.1.3.4
    
  3. Pruebe la conexión de Private Link del servidor PostgreSQL con cualquier cliente disponible. En el ejemplo siguiente se usa Azure Data Studio para realizar la operación.

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

    Configuración Value
    Tipo de servidor Seleccione PostgreSQL.
    Nombre de servidor Seleccione mydemopostgresserver.privatelink.postgres.database.azure.com.
    Nombre de usuario Escriba el nombre de usuario "username@servername" que se proporciona durante la creación del servidor PostgreSQL.
    Contraseña Escriba una contraseña proporcionada durante la creación del servidor PostgreSQL.
    SSL Seleccione Requerido.
  5. Seleccione Conectar.

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

  7. (Opcional) Cree o consulte la información del servidor PostgreSQL.

  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 

Pasos siguientes