Partilhar via


Criar e gerenciar Link Privado para o Banco de Dados do Azure para MySQL - Servidor Flexível usando a CLI do Azure

Neste artigo, você aprenderá a usar a CLI do Azure para criar um ponto de extremidade privado para acessar o Banco de Dados do Azure para Servidor Flexível MySQL a partir de uma VM em uma VNet.

Iniciar o Azure Cloud Shell

O Azure Cloud Shell é um shell interativo gratuito que você pode usar para executar as etapas neste artigo. Ele tem ferramentas padrão do Azure pré-instaladas e configuradas para uso com sua conta.

Para abrir o Cloud Shell, selecione Experimente no canto superior direito de um bloco de código. Você também pode abrir o Cloud Shell em uma guia separada do navegador acessando .https://shell.azure.com/bash Selecione Copiar para copiar os blocos de código, cole-o no Cloud Shell e selecione Enter para executá-lo.

Se você preferir instalar e usar a CLI localmente, este início rápido requer a CLI do Azure versão 2.0 ou posterior. Executar az --version para localizar a versão. Consulte Instalar a CLI do Azure se precisar instalar ou atualizar.

Pré-requisitos

Você deve fazer login na sua conta usando o comando az login . Observe a propriedade id, que se refere à ID da Assinatura da sua conta do Azure.

az login

Selecione a assinatura específica em sua conta usando o comando az account set . No comando, anote o valor id da saída az login a ser usado como o valor para o argumento de assinatura . Se tiver várias subscrições, escolha a subscrição adequada na qual o recurso deve ser cobrado. Use az lista de contas para obter todas as suas assinaturas.

az account set --subscription <subscription id>

Criar um grupo de recursos

Antes de criar qualquer recurso, você deve 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 createo . 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

Nota

Registre o endereço IP público da VM conforme necessário para se conectar a partir da Internet na próxima etapa.

Criar o Banco de Dados do Azure para a instância do Servidor Flexível MySQL com acesso público no grupo de recursos

Crie um Banco de Dados do Azure para a instância do Servidor Flexível MySQL com acesso público e adicione o endereço IP do cliente para acessá-lo.

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

Em alguns casos, a instância do Banco de Dados do Azure para Servidor Flexível MySQL e a sub-rede VNet estão em assinaturas diferentes. Nesses casos, você deve garantir as seguintes configurações:

  • Verifique se ambas as assinaturas têm o provedor de recursos Microsoft.DBforMySQL/flexibleServer registrado. Para obter mais informações, consulte resource-manager-registration.

Criar o ponto de extremidade privado

Crie um ponto de extremidade privado para o Banco de Dados do Azure para Servidor Flexível MySQL 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.DBforMySQL/flexibleServers" --query "id" -o tsv) \
    --group-id mysqlServer \
    --connection-name myConnection \
    --location location

Configurar a zona DNS privada

Crie uma Zona DNS Privada para o Banco de Dados do Azure para o domínio do Servidor Flexível MySQL e crie um link de associação com a Rede Virtual.

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

O FQDN na configuração DNS do cliente não resolve o IP privado configurado. Você deve configurar uma zona DNS para o FQDN configurado, conforme mostradoaqui.

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.

. 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 criou a VM.

  1. Selecione OK.

  2. Poderá receber um aviso de certificado durante o processo de início de sessão. Selecione Sim ou Continuar se receber um aviso de certificado.

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

Acessar o Banco de Dados do Azure para instância do Servidor Flexível MySQL de forma privada a partir da VM

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

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

    Você receberá uma mensagem semelhante a esta:

    Server:  UnKnown
    Address:  168.63.129.16
    Non-authoritative answer:
    Name:    mydemomysqlserver.privatelink.mysql.database.azure.com
    Address:  10.1.3.4
    
  3. Teste a conexão de link privado para o Banco de Dados do Azure para a instância do Servidor Flexível MySQL usando qualquer cliente disponível. O exemplo a seguir usa o MySQL Workbench para fazer a operação.

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

    Definição Value
    Nome da Ligação Selecione o nome da conexão de sua escolha.
    Hostname (Nome do anfitrião) Selecione mydemoserver.privatelink.mysql.database.azure.com
    Username Insira o nome de usuário conforme username@servername fornecido durante o Banco de Dados do Azure para a criação da instância do Servidor Flexível MySQL.
    Palavra-passe Insira uma senha fornecida durante o Banco de Dados do Azure para a criação da instância do Servidor Flexível MySQL.
  5. Selecione Ligar.

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

  7. (Opcionalmente) Crie ou consulte informações do Banco de Dados do Azure para o banco de dados do Servidor Flexível MySQL.

  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ê poderá usar az group delete para remover o grupo de recursos e todos os recursos que ele possui:

az group delete --name myResourceGroup --yes

Listar sub-recursos vinculáveis privados (groupIds)

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

Listar conexões de ponto de extremidade privado em um determinado recurso

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

Aprovar conexões de ponto de extremidade privado em um determinado recurso

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

Rejeitar conexões de ponto de extremidade privadas em um determinado recurso

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

Excluir conexões de ponto de extremidade privado em um determinado recurso

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