模块 07-第 5 单元 使用虚拟网络服务终结点限制对 PaaS 资源的网络访问

练习场景

通过虚拟网络服务终结点,可将某些 Azure 服务资源限制为仅允许某个虚拟网络子网通过网络进行访问。 还可以删除对资源的 Internet 访问。 服务终结点提供从虚拟网络到受支持 Azure 服务的直接连接,使你能够使用虚拟网络的专用地址空间访问 Azure 服务。 通过服务终结点发往 Azure 资源的流量始终保留在 Microsoft Azure 主干网络上。

服务终结点体系结构示意图。

工作技能

通过学习本练习,你将能够:

  • 任务 1:创建虚拟网络
  • 任务 2:启用服务终结点
  • 任务 3:限制子网的网络访问
  • 任务 4:添加其他出站规则
  • 任务 5:允许访问 RDP 连接
  • 任务 6:限制对资源的网络访问
  • 任务 7:在存储帐户中创建文件共享
  • 任务 8:限制对子网的网络访问
  • 任务 9:创建虚拟机
  • 任务 10:确认对存储帐户的访问权限

交互式实验室模拟

注意:此前提供的实验室模拟已停用。

预计用时:35 分钟

任务 1:创建虚拟网络

  1. 登录到 Azure 门户。

  2. 在 Azure 主页上搜索 virtual network,然后从结果中选择“虚拟网络”**

  3. 选择“+ 创建”。

  4. 输入或选择以下信息:图形用户界面、文本、应用程序 自动生成的描述

    设置
    订阅 选择订阅
    资源组 (New) myResourceGroup
    名称 CoreServicesVnet
    位置 选择“美国东部”
  5. 选择“安全”选项卡并输入以下值:图形用户界面、文本、应用程序、电子邮件 自动生成的描述

    设置
    BastionHost 已禁用
    DDoS 网络保护 已禁用
    防火墙 已禁用
  6. 选择“IP 地址”选项卡并输入以下值(选择“默认值”更改子网名称) :图形用户界面、文本、应用程序、电子邮件 自动生成的描述

    设置
    地址空间 10.0.0.0/16
    子网名称 公共
    子网地址范围 10.0.0.0/24
  7. 选择“查看 + 创建” 。 验证资源后,选择“创建”。

任务 2:启用服务终结点

每个服务、每个子网均启用服务终结点。 创建子网并为该子网启用服务终结点。

  1. 在门户顶部的“搜索资源、服务和文档”框中,输入 CoreServicesVNet。 当 CoreServicesVNet 出现在搜索结果中时,将其选中。

  2. 将子网添加到虚拟网络。 在“设置”下面选择“子网”,然后选择“+ 子网” ,如下图中所示:图形用户界面,应用程序 自动生成的描述

  3. 在“添加子网”下,选择或输入以下信息:

    设置
    名称 专用
    地址范围 10.0.1.0/24
    服务终结点:服务 选择“Microsoft.Storage”
  4. 选择 添加

你现在应该配置了两个子网:

图形用户界面、文本、应用程序、电子邮件 描述自动生成

任务 3:限制子网的网络访问

默认情况下,子网中的所有虚拟机都可以与所有资源通信。 可以通过创建网络安全组并将其关联到子网来限制与子网中所有资源的通信。

  1. 在门户顶部的“搜索资源、服务和文档”框中,输入“安全组”。 当“网络安全组”出现在搜索结果中时,将其选中。

  2. 在”网络安全组”中,选择“+ 创建”。

  3. 输入或选择以下信息:

    设置
    订阅 选择订阅
    资源组 myResourceGroup
    名称 ContosoPrivateNSG
    位置 选择“美国东部”
  4. 选择“查看 + 创建”,然后选择“创建”:

  5. 创建 ContosoPrivateNSG 网络安全组后,选择“转到资源”。

  6. 在“设置”下,选择“出站安全规则”。

  7. 选择“+ 添加”。

  8. 创建一条允许出站通信到 Azure 存储服务的规则。 输入或选择以下信息:图形用户界面,应用程序 自动生成的描述

    设置
    选择“服务标记”
    源服务标记 选择“VirtualNetwork”
    源端口范围 *
    目标 选择“服务标记”
    目标服务标记 选择“存储”
    服务 自定义
    目标端口范围 *
    协议 Any
    操作 允许
    优先级 100
    名称 Allow-Storage-All
  9. 选择“添加”**

任务 4:添加其他出站规则

创建另一条出站安全规则,拒绝到 Internet 的通信。 此规则将覆盖所有网络安全组中允许出站 Internet 通信的默认规则。

  1. 在“出站安全规则”下,选择“+ 添加”。

  2. 输入或选择以下信息:图形用户界面、应用程序、电子邮件 自动生成的描述

    设置
    选择“服务标记”
    源服务标记 选择“VirtualNetwork”
    源端口范围 *
    目标 选择“服务标记”
    目标服务标记 选择“Internet”
    服务 自定义
    目标端口范围 *
    协议 Any
    操作 拒绝
    优先级 110
    名称 Deny-Internet-All
  3. 选择 添加

任务 5:允许访问 RDP 连接

创建一个允许从任何位置向该子网发送远程桌面协议 (RDP) 流量的入站安全规则。 该规则将替代拒绝来自 Internet 的所有入站流量的默认安全规则。 允许与子网建立远程桌面连接,以便可以在后续步骤中测试连接。

  1. 在 ContosoPrivateNSG 出站安全规则的“设置”下,选择“入站安全规则”。
  2. 选择“+ 添加”。

  3. 在“添加入站安全规则”中,输入以下值:图形用户界面,应用程序 自动生成的描述

    设置
    任意
    源端口范围 *
    目的地 任意
    服务 自定义
    目标端口范围 3389
    协议 Any
    操作 允许
    优先级 120
    名称 Allow-RDP-All
  4. 然后选择“添加”。

警告:RDP 端口 3389 向 Internet 公开。 建议仅用于测试。 对于生产环境,建议使用 VPN 或专用连接。

  1. 在“设置”下,选择“子网”。

  2. 选择“+ 关联”。

  3. 在“关联子网”下,选择“虚拟网络”,然后选择“选择虚拟网络”下的“CoreServicesVNet”。

  4. 在“选择子网”下选择“专用”,然后选择“确定”。

任务 6:限制对资源的网络访问

对于通过为服务终结点启用的 Azure 服务创建的资源,限制对其的网络访问时所需的步骤因服务而异。 请参阅各个服务的文档来了解适用于每个服务的具体步骤。 例如,本练习的其余部分包括限制对 Azure 存储帐户的网络访问的步骤。

  1. 在 Azure 门户中,搜索并选择Storage accounts

  2. 选择创建

  3. 输入或选择以下信息并接受其余默认值:

    设置
    订阅 选择订阅
    资源组 myResourceGroup
    名称 输入 contostoragewestxx(其中 xx 是你的姓名首字母,以使其具有唯一性)
    主服务 Azure 文件
    性能 标准 StorageV2(常规用途 V2)
    位置 选择“美国东部”
    复制 本地冗余存储 (LRS)
  4. 选择“查看”,然后选择“创建”****。

  5. 在存储帐户成功部署后,请选择“转到资源”**

任务 7:在存储帐户中创建文件共享

  1. 在“存储帐户”的“数据存储”边栏选项卡中,选择“文件共享”****。

  2. 选择“+ 文件共享”。**

  3. 对于“名称”,输入“marketing”,然后选择“下一步: **** 备份”。

  4. 取消选择“启用备份”,如下图所示:**

  5. 选择“查看 + 创建” 。 验证资源后,选择“创建”。

任务 8:限制对子网的网络访问

默认情况下,存储帐户接受来自任何网络(包括 Internet)中的客户端的网络连接。 除 CoreServicesVNet 虚拟网络中的“专用”子网之外,拒绝来自 Internet 以及所有虚拟网络中的所有其他子网的网络访问。

  1. 在存储帐户的“安全 + 网络”下,选择“网络”。

  2. 在“公用网络访问”部分中,选择“管理”。****

1 在“公共访问范围”部分中,选择“已从所选网络启用”****。

  1. 选择“+ 添加现有虚拟网络”,然后选择“添加现有虚拟网络”。****

    设置
    订阅 选择订阅。
    虚拟网络 CoreServicesVNet**
    子网 Private
  2. 选择“添加”,然后选择“保存”。****

  3. 在存储帐户的“安全和网络”下,选择“访问密钥”。

  4. 对 Key1 值使用“显示”****。 复制此值,稍后将用到它。

任务 9:创建虚拟机

若要测试对存储帐户的网络访问,请向每个子网部署 VM。

  1. 在 Azure 门户中,选择右上角的 Cloud Shell 图标。 如有必要,请配置 Shell。
    • 选择“PowerShell”**
    • 选择“不需要存储帐户”和“订阅”,然后选择“应用”。
    • 等待终端创建并显示提示。
  2. 在 Cloud Shell 窗格的工具栏中,选择“管理文件”图标,在下拉菜单中选择“上传”,将下面的 VMs.json 和 VMs.parameters.json 文件上传到 Cloud Shell 主目录。****** 本模块 07,练习 05。

  3. 部署以下 ARM 模板以创建此练习所需的 VM:

    注意:系统会提示你提供管理员密码。

    $RGName = "myResourceGroup"
       
    New-AzResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile VMs.json -TemplateParameterFile VMs.parameters.json
    
  4. 部署完成后,转到 Azure 门户主页,然后选择“虚拟机”。

任务 10:确认对存储帐户的访问权限

  1. 在门户中,搜索并选择 ContosoPrivate 虚拟机**

  2. 依次选择“连接”、“连接”,然后选择“下载 RDP 文件”****。 如果系统提示,请确认下载。

  3. 在“下载”** 文件夹中,打开 ContosoPrivate.rdp 文件。

  4. 选择“连接”** 并提供虚拟机密码。 选择“确定”,并在出现证书警告时选择“是”**

  5. 使用 PowerShell 创建文件共享。 将 (即 contosostoragexx)替换为创建存储帐户时设置的值。
     $acctKey = ConvertTo-SecureString -String "<storage-account-key1-value>" -AsPlainText -Force
    
     $credential = New-Object System.Management.Automation.PSCredential -ArgumentList "Azure\<storage-account-name>", $acctKey
    
     New-PSDrive -Name Z -PSProvider FileSystem -Root "\\<storage-account-name>.file.core.windows.net\marketing" -Credential $credential
    
    
  6. 确认 VM 没有出站连接。 你不会收到回复,因为关联到“专用”子网的网络安全组不允许与 Internet 建立出站访问。

    ping bing.com

  7. 关闭与 ContosoWestPrivate VM 的远程桌面会话。

确认已拒绝对存储帐户的访问

  1. 返回到 Azure 门户。

  2. 导航到存储帐户,选择“文件共享”,然后选择“marketing”文件共享。****

  3. 选择“浏览”,会注意到出现“访问被拒绝”错误。** 错误提示可能会有所不同。 访问被拒绝,因为计算机不在 CoreServicesVNet 虚拟网络的“专用”子网中。

    图形用户界面、文本、应用程序、电子邮件 描述自动生成

清理资源

注意:记得删除所有不再使用的新建 Azure 资源。 删除未使用的资源可确保不会出现意外费用。

  1. 在 Azure 门户的“Cloud Shell”窗格中打开“PowerShell”会话 。

  2. 通过运行以下命令,删除在此模块的实验室中创建的所有资源组:

    Remove-AzResourceGroup -Name 'myResourceGroup' -Force -AsJob
    

    注意:该命令以异步方式执行(由 -AsJob 参数决定),因此,虽然你可以随后立即在同一个 PowerShell 会话中运行另一个 PowerShell 命令,但需要几分钟才能实际删除资源组。

使用 Copilot 扩展学习

Copilot 可帮助你了解如何使用 Azure 脚本工具。 Copilot 还可以帮助了解实验室中未涵盖的领域或需要更多信息的领域。 打开 Edge 浏览器并选择“Copilot”(右上角)或导航到copilot.microsoft.com。 花几分钟时间尝试这些提示。

  • Azure 服务终结点和专用终结点有何区别?
  • 哪些 Azure 服务可以使用服务终结点?
  • 使用服务终结点限制对 Azure 存储的访问的步骤是什么?

通过自定进度的培训了解详细信息

关键要点

  • 虚拟网络服务终结点通过提供与 Azure 服务的直接连接来扩展 Azure 中的专用地址空间。
  • 使用服务终结点可以对 Azure 资源进行保护,使其只对你的虚拟网络开放。 服务流量将保留在 Azure 主干网上,不会转出至 Internet。
  • Azure 服务终结点可用于许多服务,例如:Azure 存储、Azure SQL 数据库 和 Azure Cosmos DB。
  • 默认情况下,无法通过本地网络访问虚拟网络服务终结点。 若要通过本地网络访问资源,请使用 NAT IP。