你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

创建并关联服务终结点策略

借助服务终结点策略,可越过服务终结点筛选虚拟网络流量,将范围限制到特定的 Azure 资源。 如果不熟悉服务终结点策略,请参阅服务终结点策略概述了解详细信息。

本教程介绍如何执行下列操作:

  • 创建虚拟网络。
  • 添加子网并启用 Azure 存储的服务终结点。
  • 创建两个 Azure 存储帐户,并允许从虚拟网络中的子网对其进行网络访问。
  • 创建服务终结点策略以只允许访问其中一个存储帐户。
  • 将虚拟机 (VM) 部署到每个子网。
  • 确认从子网对允许的存储账户进行访问。
  • 确认拒绝从子网访问不允许的存储帐户。

先决条件

创建虚拟网络并启用服务终结点

创建一个虚拟网络,以包含你在本教程中创建的资源。

  1. 在门户的搜索框中,输入虚拟网络。 在搜索结果中,选择“虚拟网络”。

  2. 选择 + 创建,以创建新的虚拟网络。

  3. 创建虚拟网络基本信息选项卡中输入或选择以下信息。

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“新建”。
    在“名称”中输入 test-rg
    选择“确定”。
    名称 输入“vnet-1”。
    区域 选择“美国西部 2” 。
  4. 选择下一步

  5. 选择下一步

  6. IP 地址选项卡的子网中,选择 默认子网。

  7. 编辑子网中,输入或选择以下信息。

    设置
    名称 输入“subnet-1”。
    服务终结点
    服务
    在下拉菜单中,选择 Microsoft.Storage
  8. 选择“保存”。

  9. 选择“查看 + 创建” 。

  10. 选择“创建”。

限制子网的网络访问

为子网创建网络安全组和网络访问限制规则。

创建网络安全组

  1. 在门户的搜索框中,输入网络安全组。 在搜索结果中选择“网络安全组”。

  2. 选择 + 创建,以创建新的网络安全组。

  3. 创建网络安全组基本信息选项卡中,输入或选择以下信息。

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“test-rg”。
    名称 输入“nsg-app1”。
    区域 选择“美国西部 2” 。
  4. 选择“查看 + 创建” 。

  5. 选择“创建”。

创建网络安全组规则

  1. 在门户的搜索框中,输入网络安全组。 在搜索结果中选择网络安全组

  2. 选择nsg-1

  3. 展开设置。 选择出站安全规则

  4. 选择 + 添加,以添加新的出站安全规则。

  5. 在“添加出站安全规则”中,输入或选择以下信息。

    设置
    选择“服务标记”。
    源服务标记 选择“VirtualNetwork”。
    源端口范围 输入 *
    目标 选择“服务标记”。
    目标服务标记 选择“存储”
    服务 选择“自定义”。
    目标端口范围 输入 *
    协议 选择“任何”
    操作 选择“允许”
    优先级 输入 100
    名称 输入allow-storage-all
  6. 选择 添加

  7. 选择 + 添加,以添加另一个出站安全规则。

  8. 在“添加出站安全规则”中,输入或选择以下信息。

    设置
    选择“服务标记”。
    源服务标记 选择“VirtualNetwork”。
    源端口范围 输入 *
    目标 选择“服务标记”。
    目标服务标记 选择“Internet”。
    服务 选择“自定义”。
    目标端口范围 输入 *
    协议 选择“任何”
    操作 选择“拒绝”
    优先级 输入 110
    名称 输入deny-internet-all
  9. 选择 添加

  10. 展开设置。 选择“子网”。

  11. 选择“关联”。

  12. 关联子网中,输入或选择以下信息。

    设置
    虚拟网络 选择 vnet-1 (test-rg)
    子网 选择 subnet-1
  13. 选择“确定”

限制对 Azure 存储帐户的网络访问

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

创建两个存储帐户

  1. 在门户的搜索框中,输入存储帐户。 在搜索结果中选择“存储帐户”。

  2. 选择 + 创建,创建一个新的存储帐户。

  3. 创建存储帐户中,输入或选择以下信息。

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“test-rg”。
    实例详细信息
    存储帐户名称 输入 allowedaccount(random-number)
    注意:存储帐户名称必须是唯一的。向名称 allowedaccount 末尾添加一个随机数。
    区域 选择“美国西部 2” 。
    性能 选择“标准”。
    冗余 选择“本地冗余存储(LRS)”。
  4. 选择下一步,直到到达数据保护选项卡。

  5. 恢复中,取消选择所有选项。

  6. 选择“查看 + 创建” 。

  7. 选择“创建”。

  8. 重复前面的步骤,使用以下信息创建另一个存储帐户。

    设置
    存储帐户名称 输入 deniedaccount(random-number)

创建文件共享

  1. 在门户的搜索框中,输入存储帐户。 在搜索结果中选择“存储帐户”。

  2. 选择 allowedaccount(random-number)

  3. 展开数据存储部分,然后选择文件共享

  4. 选择“+ 文件共享”。

  5. 新建文件共享中,输入或选择以下信息。

    设置
    名称 输入文件共享
  6. 将其余设置保留为默认值,然后选择查看 + 创建

  7. 选择创建

  8. 重复前面的步骤,以在 deniedaccount(random-number) 中创建文件共享。

拒绝对存储帐户的所有网络访问

默认情况下,存储帐户接受来自任何网络中的客户端的网络连接。 若要限制对存储帐户的网络访问,可以将存储帐户配置为仅接受来自特定网络的连接。 在此示例中,将存储帐户配置为仅接受来自之前创建的虚拟网络子网的连接。

  1. 在门户的搜索框中,输入存储帐户。 在搜索结果中选择“存储帐户”。

  2. 选择 allowedaccount(random-number)

  3. 展开安全性 + 网络,然后选择网络

  4. 防火墙和虚拟网络选项卡的公共网络访问中,选择已从所选虚拟网络和 IP 地址启用

  5. 在“虚拟网络”中,选择“+ 添加现有虚拟网络”。

  6. 添加网络中,输入或选择以下信息。

    设置
    订阅 选择订阅。
    虚拟网络 选择“vnet-1”。
    子网 选择 subnet-1
  7. 选择“添加” 。

  8. 选择“保存”。

  9. 重复前面的步骤,拒绝对 deniedaccount(random-number) 的网络访问。

应用策略以允许访问有效的存储帐户

可以创建服务终结点策略。 该策略可确保虚拟网络中的用户只能访问安全并允许的 Azure 存储帐户。 此策略包含应用于通过服务终结点连接到存储的虚拟网络子网的允许存储帐户的列表。

创建服务终结点策略

本部分通过服务终结点使用允许的访问资源的列表创建策略定义。

  1. 在门户的搜索框中,输入服务终结点策略。 在搜索结果中选择服务终结点策略

  2. 选择 + 创建,以创建新的服务终结点策略。

  3. 创建服务终结点基本信息选项卡中,输入或选择以下信息。

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“test-rg”。
    实例详细信息
    名称 输入 service-endpoint-policy
    位置 选择“美国西部 2”。
  4. 选择下一步:策略定义

  5. 资源中选择 + 添加资源

  6. 添加资源中,输入或选择以下信息:

    设置
    服务 选择“Microsoft.Storage”。
    范围 选择单个帐户
    订阅 选择订阅。
    资源组 选择“test-rg”。
    资源 选择 allowedaccount(random-number)
  7. 选择 添加

  8. 选择“查看 + 创建” 。

  9. 选择“创建”。

将服务终结点策略关联到子网中

创建服务终结点策略后,将其与具有 Azure 存储的服务终结点配置的目标子网相关联。

  1. 在门户的搜索框中,输入服务终结点策略。 在搜索结果中选择服务终结点策略

  2. 选择 service-endpoint-policy

  3. 展开设置,并选择关联的子网

  4. 选择 + 编辑子网关联

  5. 编辑子网关联中,选择 vnet-1subnet-1

  6. 选择“应用”。

警告

请确保在将策略关联到给定子网之前,通过子网访问的所有资源均已添加到该策略定义中。 关联策略后,仅允许通过服务终结点访问允许列表中的资源。

确保与服务终结点策略关联的子网中不存在托管的 Azure 服务。

将根据此子网的服务终结点策略限制对所有区域中的 Azure 存储资源的访问。

验证对 Azure 存储帐户的访问限制

若要测试对存储帐户的网络访问,在子网中部署 VM。

部署虚拟机

  1. 在门户的搜索框中,输入虚拟机。 在搜索结果中,选择“虚拟机”。

  2. 在“创建虚拟机”的“基本信息”选项卡中,输入或选择以下信息 :

    设置
    项目详细信息
    订阅 选择订阅。
    资源组 选择“test-rg”。
    实例详细信息
    虚拟机名称 输入“vm-1”。
    区域 选择“(US) 美国西部 2”。
    可用性选项 选择“无需基础结构冗余”。
    安全类型 选择“标准”。
    映像 选择“Windows Server 2022 Datacenter - x64 Gen2”。
    大小 选择一个大小。
    管理员帐户
    用户名 输入用户名。
    Password 输入密码。
    确认密码 再次输入密码。
    入站端口规则
  3. 选择下一步: 磁盘,然后选择下一步: 网络

  4. 在“网络”中,输入或选择以下信息。

    设置
    网络接口
    虚拟网络 选择“vnet-1”。
    子网 选择“subnet-1 (10.0.0.0/24)”。
    公共 IP 选择
    NIC 网络安全组 选择“无”。
  5. 将其余设置保留为默认值,然后选择查看 + 创建

  6. 选择创建

等待虚拟机完成部署,然后再继续执行后续步骤。

确认对“允许”的存储账户进行访问

  1. 登录到 Azure 门户

  2. 在门户的搜索框中,输入存储帐户。 在搜索结果中选择“存储帐户”。

  3. 选择 allowedaccount(random-number)

  4. 展开安全性 + 网络,并选择访问密钥

  5. 复制 key1 值。 使用此密钥将驱动器映射到前面创建的虚拟机中的存储帐户。

  6. 在门户的搜索框中,输入虚拟机。 在搜索结果中,选择“虚拟机”。

  7. 选择 vm-1

  8. 展开操作。 选择运行命令

  9. 选择 RunPowerShellScript

  10. 将脚本粘贴到运行命令脚本中。

    ## Enter the storage account key for the allowed storage account that you recorded earlier.
    $storageAcctKey1 = (pasted from procedure above)
    $acctKey = ConvertTo-SecureString -String $storageAcctKey1 -AsPlainText -Force
    ## Replace the login account with the name of the storage account you created.
    $credential = New-Object System.Management.Automation.PSCredential -ArgumentList ("Azure\allowedaccount"), $acctKey
    ## Replace the storage account name with the name of the storage account you created.
    New-PSDrive -Name Z -PSProvider FileSystem -Root "\\allowedaccount.file.core.windows.net\file-share" -Credential $credential
    
  11. 选择“运行”。

  12. 如果驱动器映射成功,则输出框中的输出类似于以下示例:

    Name           Used (GB)     Free (GB) Provider      Root
    ----           ---------     --------- --------      ----
    Z                                      FileSystem    \\allowedaccount.file.core.windows.net\fil..
    

确认拒绝访问被拒绝的存储帐户

  1. 在门户的搜索框中,输入存储帐户。 在搜索结果中选择“存储帐户”。

  2. 选择 deniedaccount(random-number)

  3. 展开安全性 + 网络,并选择访问密钥

  4. 复制 key1 值。 使用此密钥将驱动器映射到前面创建的虚拟机中的存储帐户。

  5. 在门户的搜索框中,输入虚拟机。 在搜索结果中,选择“虚拟机”。

  6. 选择 vm-1

  7. 展开操作。 选择运行命令

  8. 选择 RunPowerShellScript

  9. 将脚本粘贴到运行命令脚本中。

    ## Enter the storage account key for the denied storage account that you recorded earlier.
    $storageAcctKey2 = (pasted from procedure above)
    $acctKey = ConvertTo-SecureString -String $storageAcctKey2 -AsPlainText -Force
    ## Replace the login account with the name of the storage account you created.
    $credential = New-Object System.Management.Automation.PSCredential -ArgumentList ("Azure\deniedaccount"), $acctKey
    ## Replace the storage account name with the name of the storage account you created.
    New-PSDrive -Name Z -PSProvider FileSystem -Root "\\deniedaccount.file.core.windows.net\file-share" -Credential $credential
    
  10. 选择“运行”。

  11. 将在输出框中收到以下错误消息:

    New-PSDrive : Access is denied
    At line:1 char:1
    + New-PSDrive -Name Z -PSProvider FileSystem -Root "\\deniedaccount8675 ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (Z:PSDriveInfo) [New-PSDrive], Win32Exception
    + FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand
    
  12. 由于服务终结点策略限制对存储帐户的访问,因此驱动器映射被拒绝。

使用完创建的资源之后,可以删除资源组及其所有资源。

  1. 在 Azure 门户中,搜索并选择“资源组”。

  2. 在“资源组”页上,选择“test-rg”资源组。

  3. 在“test-rg”页上,选择“删除资源组”。

  4. 在“输入资源组名称以确认删除”中输入“test-rg”,然后选择“删除”

后续步骤

在本教程中,你创建了一个服务终结点策略并将其关联到了子网。 要详细了解服务终结点策略,请参阅服务终结点策略概述