Share via


Criar e gerenciar Link Privado para o Banco de Dados do Azure para PostgreSQL - Servidor único usando CLI

APLICA-SE A: Banco de Dados do Azure para PostgreSQL - Servidor Único

Importante

O Banco de Dados do Azure para PostgreSQL - Servidor Único está no caminho da desativação. É altamente recomendável que você atualize para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível, consulte O que está acontecendo com o Banco de Dados do Azure para Servidor Único PostgreSQL?.

Um Ponto de Extremidade Privado é o bloco de construção fundamental para o link privado no Azure. Ele permite que os recursos do Azure, como máquinas virtuais (VMs), se comuniquem de forma privada com recursos de link privado. Neste artigo, você aprenderá a usar a CLI do Azure para criar uma VM em uma Rede Virtual do Azure e um Banco de Dados do Azure para PostgreSQL Servidor único com um ponto de extremidade privado do Azure.

Nota

O recurso de link privado só está disponível para o Banco de Dados do Azure para servidores PostgreSQL nas camadas de preços de Uso Geral ou Memória Otimizada. Verifique se o servidor de banco de dados está em uma dessas camadas de preços.

Pré-requisitos

Para percorrer este guia de instruções, você precisa:

Azure Cloud Shell

O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser. Pode utilizar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. Você pode usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada em seu ambiente local.

Para iniciar o Azure Cloud Shell:

Opção Exemplo/Ligação
Selecione Experimentar no canto superior direito de um código ou bloco de comandos. Selecionar Experimentar não copia automaticamente o código ou comando para o Cloud Shell. Captura de tela que mostra um exemplo de Try It for Azure Cloud Shell.
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. Botão para iniciar o Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. Captura de tela que mostra o botão Cloud Shell no portal do Azure

Para usar o Azure Cloud Shell:

  1. Inicie o Cloud Shell.

  2. Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.

  3. Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e Linux ou selecionando Cmd+Shift+V no macOS.

  4. Selecione Enter para executar o código ou comando.

Se você decidir instalar e usar a CLI do Azure localmente, este início rápido exigirá que você use a CLI do Azure versão 2.0.28 ou posterior. Para encontrar a versão instalada, execute az --version. Consulte Instalar a CLI do Azure para obter informações sobre instalação ou atualização.

Criar um grupo de recursos

Antes de criar qualquer recurso, você precisa criar um grupo de recursos para hospedar a Rede Virtual. Crie um grupo de recursos com az group create. Este exemplo cria um grupo de recursos chamado myResourceGroup no local westeurope:

az group create --name myResourceGroup --location westeurope

Criar uma Rede Virtual

Crie uma rede virtual com az network vnet create. Este exemplo cria uma Rede Virtual padrão chamada myVirtualNetwork com uma sub-rede chamada mySubnet:

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

Desativar políticas de ponto de extremidade privado de sub-rede

O Azure implanta recursos em uma sub-rede dentro de uma rede virtual, portanto, você precisa criar ou atualizar a sub-rede para desabilitar as políticas de rede de ponto de extremidade privado. Atualize uma configuração de sub-rede chamada mySubnet com az network vnet subnet update:

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

Criar a VM

Crie uma VM com az vm create. Quando solicitado, forneça uma senha a ser usada como as credenciais de entrada para a VM. Este exemplo cria uma VM chamada myVm:

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

Observe o endereço IP público da VM. Você usará esse endereço para se conectar à VM da Internet na próxima etapa.

Criar um Banco de Dados do Azure para PostgreSQL - Servidor único

Crie um Banco de Dados do Azure para PostgreSQL com o comando az postgres server create. Lembre-se de que o nome do seu Servidor PostgreSQL deve ser exclusivo no Azure, portanto, substitua o valor do espaço reservado por seus próprios valores exclusivos que você usou acima:

# 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

Criar o ponto de extremidade privado

Crie um ponto de extremidade privado para o servidor PostgreSQL em sua Rede Virtual:

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  

Configurar a zona DNS privada

Crie uma zona DNS privada para o domínio do servidor PostgreSQL e crie um link de associação com a rede virtual.

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

O FQDN na definição de DNS do cliente não resolve para o IP privado configurado. Você terá que configurar uma zona DNS para o FQDN configurado, conforme mostrado aqui.

Nota

Em alguns casos, o Banco de Dados do Azure para PostgreSQL e a sub-rede VNet estão em assinaturas diferentes. Nesses casos, você deve garantir as seguintes configurações:

  • Certifique-se de que ambas as assinaturas tenham o provedor de recursos Microsoft.DBforPostgreSQL registrado. Para obter mais informações, consulte provedores de recursos.

Ligar a uma VM a partir da Internet

Ligue-se à VM myVm a partir da Internet da seguinte forma:

  1. Na barra de pesquisa do portal, digite myVm.

  2. Selecione o botão Ligar. Depois de selecionar o botão Conectar , Conectar à máquina virtual é aberto.

  3. Selecione Transferir Ficheiro RDP. O Azure cria um ficheiro de Protocolo de Ambiente de Trabalho Remoto (.rdp) e transfere-o para o seu computador.

  4. Abra o arquivo downloaded.rdp .

    1. Se lhe for pedido, selecione Ligar.

    2. Digite o nome de usuário e a senha que você especificou ao criar a VM.

      Nota

      Talvez seja necessário selecionar Mais opções>Usar uma conta diferente, para especificar as credenciais inseridas quando você criou a VM.

  5. Selecione OK.

  6. Poderá receber um aviso de certificado durante o processo de início de sessão. Se você receber um aviso de certificado, selecione Sim ou Continuar.

  7. Quando a área de trabalho da VM aparecer, minimize-a para voltar à área de trabalho local.

Acesse o servidor PostgreSQL de forma privada a partir da VM

  1. Na Área de Trabalho Remota do myVM, abra o PowerShell.

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

    Você receberá uma mensagem semelhante a esta:

    Server:  UnKnown
    Address:  168.63.129.16
    Non-authoritative answer:
    Name:    mydemopostgresserver.privatelink.postgres.database.azure.com
    Address:  10.1.3.4
    
  3. Teste a conexão de link privado para o servidor PostgreSQL usando qualquer cliente disponível. O exemplo a seguir usa o Azure Data studio para fazer a operação.

  4. Em Nova conexão, insira ou selecione estas informações:

    Definição Value
    Tipo de servidor Selecione PostgreSQL.
    Nome do servidor Selecione mydemopostgresserver.privatelink.postgres.database.azure.com
    User name Digite o nome de usuário como username@servername que é fornecido durante a criação do servidor PostgreSQL.
    Palavra-passe Digite uma senha fornecida durante a criação do servidor PostgreSQL.
    SSL Selecione Obrigatória.
  5. Selecione Ligar.

  6. Procure bases de dados a partir do menu à esquerda.

  7. (Opcionalmente) Crie ou consulte informações do servidor postgreSQL.

  8. Feche a ligação ao ambiente de trabalho remoto para myVm.

Clean up resources (Limpar recursos)

Quando não for mais necessário, você pode usar az group delete para remover o grupo de recursos e todos os recursos que ele tem:

az group delete --name myResourceGroup --yes 

Próximos passos