Azure 专用终结点是 Azure 中专用链接的构建基块。 它使 Azure 资源(例如虚拟机 (VM))能够以私密方式来与专用链接资源通信。

在本教程中,你将了解如何执行以下操作:

  • 创建虚拟网络和 Bastion 主机。
  • 创建虚拟机。
  • 创建 Azure SQL 服务器和专用终结点。
  • 测试到 SQL 服务器专用终结点的连接。
  • 具有活动订阅的 Azure 帐户。 免费创建帐户
  • 登录 Azure 门户,并通过运行 az login 来检查订阅是否处于活动状态。
  • 通过运行 az --version 在终端或命令窗口中检查 Azure CLI 版本。 有关最新版本,请参阅 最新发行说明
  • 如果没有最新版本,请按照 适用于你操作系统或平台的安装指南 来更新安装。
  • 创建资源组

    Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。

    使用 az group create 创建资源组:

  • 命名为 CreateSQLEndpointTutorial-rg。
  • 在位置“eastus”中。
  • az group create \
        --name CreateSQLEndpointTutorial-rg \
        --location eastus
    

    创建虚拟网络和堡垒主机

    在本部分中,你将创建虚拟网络、子网和堡垒主机。

    堡垒主机将用于安全地连接到虚拟机,以测试专用终结点。

    使用 az network vnet create 创建虚拟网络

  • 命名为“myVNet”。
  • 地址前缀为 10.0.0.0/16。
  • 子网命名为“myBackendSubnet”。
  • 子网前缀为 10.0.0.0/24。
  • 在 CreateSQLEndpointTutorial-rg 资源组中。
  • eastus 的位置。
  • az network vnet create \
        --resource-group CreateSQLEndpointTutorial-rg\
        --location eastus \
        --name myVNet \
        --address-prefixes 10.0.0.0/16 \
        --subnet-name myBackendSubnet \
        --subnet-prefixes 10.0.0.0/24
    

    更新子网,以使用 az network vnet subnet update 禁用专用终结点的专用终结点网络策略:

    az network vnet subnet update \
        --name myBackendSubnet \
        --resource-group CreateSQLEndpointTutorial-rg \
        --vnet-name myVNet \
        --disable-private-endpoint-network-policies true
    

    使用 az network public-ip create 为堡垒主机创建公共 IP:

  • 创建名为“myBastionIP”的标准区域冗余公共 IP 地址。
  • 在 CreateSQLEndpointTutorial-rg 中。
  • az network public-ip create \
        --resource-group CreateSQLEndpointTutorial-rg \
        --name myBastionIP \
        --sku Standard
    

    使用 az network vnet subnet create 创建堡垒子网:

  • 命名为 AzureBastionSubnet。
  • 地址前缀为 10.0.1.0/24。
  • 在虚拟网络“myVNet”中。
  • 在资源组 CreateSQLEndpointTutorial-rg 中。
  • az network vnet subnet create \
        --resource-group CreateSQLEndpointTutorial-rg \
        --name AzureBastionSubnet \
        --vnet-name myVNet \
        --address-prefixes 10.0.1.0/24
    

    使用 az network bastion create 创建堡垒主机:

  • 命名为 myBastionHost。
  • 在 CreateSQLEndpointTutorial-rg 中。
  • 与公共 IP myBastionIP 相关联。
  • 与虚拟网络 myVNet 相关联。
  • 在位置“eastus”中。
  • az network bastion create \
        --resource-group CreateSQLEndpointTutorial-rg \
        --name myBastionHost \
        --public-ip-address myBastionIP \
        --vnet-name myVNet \
        --location eastus
    

    部署 Azure Bastion 主机需要几分钟时间。

    创建测试虚拟机

    在本部分中,你将创建将用来测试专用终结点的虚拟机。

    使用 az vm create 创建 VM。 出现提示时,请提供要用作 VM 凭据的密码:

  • 名为 myVM。
  • 在 CreateSQLEndpointTutorial-rg 中。
  • 在网络 myVNet 中。
  • 在子网“myBackendSubnet”中。
  • 服务器映像 Win2019Datacenter。
  • az vm create \
        --resource-group CreateSQLEndpointTutorial-rg \
        --name myVM \
        --image Win2019Datacenter \
        --public-ip-address "" \
        --vnet-name myVNet \
        --subnet myBackendSubnet \
        --admin-username azureuser
    

    Azure 会为未分配公共 IP 地址的 VM 或位于内部基本 Azure 负载均衡器的后端池中的 VM 提供默认出站访问 IP。 默认出站访问 IP 机制会提供不可配置的出站 IP 地址。

    当将公共 IP 地址分配给 VM、将 VM 放置在具有或不具有出站规则的标准负载均衡器的后端池中,或者将 Azure 虚拟网络 NAT 网关资源分配给 VM 的子网时,默认禁用出站访问 IP。

    在灵活业务流程模式下由虚拟机规模集创建的 VM 没有默认的出站访问权限。

    有关 Azure 中的出站连接的详细信息,请参阅 Azure 中的默认出站访问权限使用用于出站连接的源网络地址转换 (SNAT)

    创建 Azure SQL 服务器

    在本部分中,你将创建一个 SQL 服务器和数据库。

    使用 az sql server create 创建 SQL 服务器:

  • 将 <sql-server-name> 替换为唯一服务器名称。
  • 将 <your-password> 替换为你的密码。
  • 在 CreateSQLEndpointTutorial-rg 中。
  • 在 eastus 区域中。
  • az sql server create \
        --name <sql-server-name> \
        --resource-group CreateSQLEndpointTutorial-rg \
        --location eastus \
        --admin-user sqladmin \
        --admin-password <your-password>
    

    使用 az sql db create 创建数据库:

  • 命名为 myDataBase。
  • 在 CreateSQLEndpointTutorial-rg 中。
  • 将 <sql-server-name> 替换为唯一服务器名称。
  • az sql db create \
        --resource-group CreateSQLEndpointTutorial-rg  \
        --server <sql-server-name> \
        --name myDataBase \
        --sample-name AdventureWorksLT
    

    创建专用终结点

    在本部分中,你将创建专用终结点。

    使用 az sql server list 将 SQL 服务器的资源 ID 置于 shell 变量中。

    使用 az network private-endpoint create 创建终结点和连接:

  • 命名为 myPrivateEndpoint。
  • 在资源组 CreateSQLEndpointTutorial-rg 中。
  • 在虚拟网络“myVNet”中。
  • 在子网“myBackendSubnet”中。
  • 名为 myConnection 的连接。
  • id=$(az sql server list \
        --resource-group CreateSQLEndpointTutorial-rg \
        --query '[].[id]' \
        --output tsv)
    az network private-endpoint create \
        --name myPrivateEndpoint \
        --resource-group CreateSQLEndpointTutorial-rg \
        --vnet-name myVNet --subnet myBackendSubnet \
        --private-connection-resource-id $id \
        --group-ids sqlServer \
        --connection-name myConnection  
    

    配置专用 DNS 区域

    在本部分中,你将使用 az network private-dns zone create 创建和配置专用 DNS 区域。

    你将使用 az network private-dns link vnet create 创建指向 dns 区域的虚拟网络链接。

    你将使用 az network private-endpoint dns-zone-group create 创建 dns 区域组。

  • 区域名为 privatelink.database.windows.net
  • 在虚拟网络“myVNet”中。
  • 在资源组 CreateSQLEndpointTutorial-rg 中。
  • 名为 myDNSLink 的 DNS 链接。
  • 与 myPrivateEndpoint 相关联。
  • 名为 MyZoneGroup 的区域组。
  • az network private-dns zone create \
        --resource-group CreateSQLEndpointTutorial-rg \
        --name "privatelink.database.windows.net"
    az network private-dns link vnet create \
        --resource-group CreateSQLEndpointTutorial-rg \
        --zone-name "privatelink.database.windows.net" \
        --name MyDNSLink \
        --virtual-network myVNet \
        --registration-enabled false
    az network private-endpoint dns-zone-group create \
       --resource-group CreateSQLEndpointTutorial-rg \
       --endpoint-name myPrivateEndpoint \
       --name MyZoneGroup \
       --private-dns-zone "privatelink.database.windows.net" \
       --zone-name sql
    

    测试到专用终结点的连接

    本部分将使用在上一步骤中创建的虚拟机通过专用终结点连接到 SQL 服务器。

  • 登录到 Azure 门户

  • 在左侧导航窗格中选择“资源组”。

  • 选择“CreateSQLEndpointTutorial-rg”。

  • 选择“myVM”。

  • myVM的“概述”页上,选择“连接”,然后选择“堡垒”。

  • 选择蓝色的“使用堡垒”按钮。

  • 输入在创建虚拟机期间输入的用户名和密码。

  • 连接后,在服务器上打开 Windows PowerShell。

  • 输入 nslookup <sqlserver-name>.database.windows.net。 将 <sqlserver-name> 替换为在上一步骤中创建的 SQL 服务器的名称。 你将收到类似于以下所示内容的消息:

    Server:  UnKnown
    Address:  168.63.129.16
    Non-authoritative answer:
    Name:    mysqlserver8675.privatelink.database.windows.net
    Address:  10.0.0.5
    Aliases:  mysqlserver8675.database.windows.net
    

    将为 SQL 服务器名称返回专用 IP 地址 10.0.0.5。 此地址位于你之前创建的虚拟网络的子网中。

  • 在 myVM 上安装 SQL Server Management Studio

  • 打开 SQL Server Management Studio 。

  • 在“连接服务器”中,输入或选择以下信息

    用完专用终结点、SQL 服务器和 VM 之后,请删除资源组及其包含的所有资源:

    az group delete \
        --name CreateSQLEndpointTutorial-rg
    

    在本教程中,你已创建:

  • 虚拟网络和堡垒主机。
  • 具有专用终结点的 Azure SQL 服务器。
  • 你使用虚拟机通过专用终结点安全测试了到 SQL 服务器的连接。

    对于下一步,你可能还会对“与 Azure SQL 数据库建立专用连接的 Web 应用”体系结构场景感兴趣,该场景将虚拟网络以外的 Web 应用程序连接到数据库的专用终结点。

    与 Azure SQL 数据库建立专用连接的 Web 应用

  •