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

包含 Azure 专用链接的 Azure 托管 Redis (预览版)是什么?

在本文中,你将了解如何通过 Azure 门户创建虚拟网络和带有专用终结点的 Azure 托管 Redis (预览版) 实例。 你还将学习如何向现有的 Azure 托管 Redis 实例添加专用终结点。

Azure 专用终结点是一个网络接口,可以通过私密且安全的方式将你连接到 Azure 专用链接支持的 Azure 托管 Redis。

重要

使用专用终结点连接到虚拟网络是保护网络层 Azure Managed Redis(预览版)资源的推荐解决方案。

先决条件

使用新的 Azure 托管 Redis 实例创建专用终结点

在本部分中,你将使用专用终结点创建 Azure 托管 Redis 实例。

为新缓存创建虚拟网络

若要使用门户创建缓存,请执行以下操作:

  1. 登录到 Azure 门户,然后选择“创建资源”。

    选择“创建资源”。

  2. 在“新建”页面上,选择“网络”,然后选择“虚拟网络” 。

  3. 选择“添加”,创建虚拟网络。

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

    设置 建议值 描述
    订阅 单击下拉箭头并选择你的订阅。 要在其中创建此虚拟网络的订阅。
    资源组 单击下拉箭头并选择一个资源组,或者选择“新建”并输入新的资源组名称。 要在其中创建虚拟网络和其他资源的资源组的名称。 将所有应用资源放入一个资源组可以轻松地统一管理或删除这些资源。
    Name 输入虚拟网络名称。 该名称必须满足以下要求:以字母或数字开头;以字母、数字或下划线结尾;只包含字母、数字、下划线、句点或连字符。
    区域 下拉并选择一个区域。 选择使用你的虚拟网络的其他服务附近的区域
  5. 选择“IP 地址”选项卡 ,或选择页面底部的“下一步: IP 地址”按钮。

  6. 在“IP 地址”选项卡中,将“IPv4 地址空间”指定为采用 CIDR 表示法的一个或多个地址前缀(例如 192.168.1.0/24) 。

  7. 在“子网名称”下,选择“默认”以编辑子网的属性 。

  8. 在“编辑子网”窗格中,指定“子网名称”和“子网地址范围” 。 应以 CIDR 表示法表示子网的地址范围(例如 192.168.1.0/24)。 它必须包含在虚拟网络的地址空间中。

  9. 选择“保存”。

  10. 选择“查看 + 创建” 选项卡,或选择“查看 + 创建” 按钮。

  11. 确认所有信息是否正确,然后选择“创建”以创建虚拟网络。

使用专用终结点创建 Azure 托管 Redis 实例

要创建缓存实例,请执行以下步骤:

  1. 返回到 Azure 门户主页或打开边栏菜单,然后选择“创建资源”。

  2. 在搜索框中键入“Azure Cache for Redis”。 将搜索范围缩小至仅 Azure 服务,然后选择“Azure Cache for Redis”

  3. 在“新建 Redis 缓存”页上配置新缓存的设置。

    1. 在“缓存 SKU”中选择 Azure Managed Redis 缓存。
    2. 在“缓存大小”中选择相应的选项。
  4. 选择“网络”选项卡,或选择“网络”按钮(位于页面底部) 。

  5. 在“网络”选项卡中,选择“专用终结点”作为连接方法 。

  6. 选择“添加”按钮以创建专用终结点。

    在网络中,添加一个专用终结点。

  7. 在“创建专用终结点”页面上,使用上一部分中创建的虚拟网络和子网配置专用终结点的设置,然后选择“确定” 。

  8. 选择“下一步:高级”选项卡,或者选择页面底部的“下一步:高级”按钮 。

  9. 在基本或标准缓存实例的“高级”选项卡中,如果想要启用非 TLS 端口,请选择启用开关。

  10. 在高级缓存实例的“高级”选项卡中,配置非 TLS 端口、群集和数据持久性的设置。

  11. 选择“下一步: 标记”选项卡,或选择页面底部的“下一步: 标记”按钮 。

  12. 或者,在标记选项卡中,如果希望对资源分类,请输入名称或值。

  13. 选择“查看 + 创建”。 随后你会转到“查看 + 创建”选项卡,Azure 将在此处验证配置。

  14. 显示绿色的“已通过验证”消息后,选择“创建”。

创建缓存需要花费片刻时间。 可以在 Azure 托管 Redis 的“概述”页面上监视进度。 如果“状态”显示为“正在运行”,则表示该缓存可供使用。

使用现有 Azure 托管 Redis 实例创建专用终结点

在本部分中,你将学习将专用链接添加到 Azure 托管 Redis 实例。

为现有缓存创建虚拟网络

若要创建虚拟网络,请执行以下步骤:

  1. 登录到 Azure 门户,然后选择“创建资源”。

  2. 在“新建”页面上,选择“网络”,然后选择“虚拟网络” 。

  3. 选择“添加”,创建虚拟网络。

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

    设置 建议值 描述
    订阅 单击下拉箭头并选择你的订阅。 要在其中创建此虚拟网络的订阅。
    资源组 单击下拉箭头并选择一个资源组,或者选择“新建”并输入新的资源组名称。 要在其中创建虚拟网络和其他资源的资源组的名称。 将所有应用资源放入一个资源组可以轻松地统一管理或删除这些资源。
    Name 输入虚拟网络名称。 该名称必须满足以下要求:以字母或数字开头;以字母、数字或下划线结尾;只包含字母、数字、下划线、句点或连字符。
    区域 下拉并选择一个区域。 选择使用你的虚拟网络的其他服务附近的区域
  5. 选择“IP 地址”选项卡 ,或选择页面底部的“下一步: IP 地址”按钮。

  6. 在“IP 地址”选项卡中,将“IPv4 地址空间”指定为采用 CIDR 表示法的一个或多个地址前缀(例如 192.168.1.0/24) 。

  7. 在“子网名称”下,选择“默认”以编辑子网的属性 。

  8. 在“编辑子网”窗格中,指定“子网名称”和“子网地址范围” 。 应以 CIDR 表示法表示子网的地址范围(例如 192.168.1.0/24)。 它必须包含在虚拟网络的地址空间中。

  9. 选择“保存”。

  10. 选择“查看 + 创建” 选项卡,或选择“查看 + 创建” 按钮。

  11. 确认所有信息是否正确,然后选择“创建”以创建虚拟网络。

创建专用终结点

要创建专用终结点,请执行以下步骤:

  1. 在 Azure 门户中,搜索“Azure Cache for Redis”。 然后,按 Enter 或者在缓存的搜索建议中选择该服务。

  2. 选择要向其中添加专用终结点的缓存实例。

  3. 在屏幕左侧选择“专用终结点”。

  4. 选择“专用终结点”按钮以创建专用终结点。

  5. 在“创建专用终结点”页面上,配置专用终结点的设置。

    设置 建议值 描述
    订阅 单击下拉箭头并选择你的订阅。 要在其中创建此专用终结点的订阅。
    资源组 单击下拉箭头并选择一个资源组,或者选择“新建”并输入新的资源组名称。 要在其中创建专用终结点和其他资源的资源组的名称。 将所有应用资源放入一个资源组可以轻松地统一管理或删除这些资源。
    Name 输入专用终结点名称。 该名称必须满足以下要求:以字母或数字开头;以字母、数字或下划线结尾;只能包含字母、数字、下划线、句点或连字符。
    区域 下拉并选择一个区域。 选择使用该专用终结点的其他服务附近的区域
  6. 选择页面底部的“下一步: 资源”按钮。

  7. 在“资源”选项卡中,选择你的订阅,选择资源类型为 Microsoft.Cache/redisEnterprise,然后选择要将专用终结点连接到的缓存。

  8. 选择页面底部的“下一步: 配置”按钮。

  9. 选择页面底部的“下一步: 虚拟网络”按钮。

  10. 在“配置”选项卡中,选择你在上一部分中创建的虚拟网络和子网。

  11. 在“虚拟网络”选项卡中,选择你在上一部分中创建的虚拟网络和子网。

  12. 选择页面底部的“下一步: 标记”按钮。

  13. 或者,在“标记”选项卡中,如果希望对资源分类,请输入名称或值。

  14. 选择“查看 + 创建”。 随后你会转到“查看 + 创建”选项卡,Azure 将在此处验证配置。

  15. 显示绿色的“已通过验证”消息后,选择“创建” 。

重要

有一个 publicNetworkAccess 标志,默认情况下为 Disabled。 可将该值设置为 DisabledEnabled。 设置为“启用”时,此标志允许公共终结点和专用终结点访问缓存。 设置为 Disabled 时,它只允许专用终结点访问。 有关如何更改该值的详细信息,请查看常见问题解答

使用 Azure PowerShell 创建专用终结点

若要为现有 Azure 托管 Redis 实例创建名为 MyPrivateEndpoint 的专用终结点,请运行以下 PowerShell 脚本。 用环境的详细信息替换变量值:


$SubscriptionId = "<your Azure subscription ID>"
# Resource group where the Azure Managed Redis instance and virtual network resources are located
$ResourceGroupName = "myResourceGroup"
# Name of the Azure Managed Redis instance
$redisCacheName = "mycacheInstance"

# Name of the existing virtual network
$VNetName = "myVnet"
# Name of the target subnet in the virtual network
$SubnetName = "mySubnet"
# Name of the private endpoint to create
$PrivateEndpointName = "MyPrivateEndpoint"
# Location where the private endpoint can be created. The private endpoint should be created in the same location where your subnet or the virtual network exists
$Location = "westcentralus"

$redisCacheResourceId = "/subscriptions/$($SubscriptionId)/resourceGroups/$($ResourceGroupName)/providers/Microsoft.Cache/Redis/$($redisCacheName)"

$privateEndpointConnection = New-AzPrivateLinkServiceConnection -Name "myConnectionPS" -PrivateLinkServiceId $redisCacheResourceId -GroupId "redisCache"
 
$virtualNetwork = Get-AzVirtualNetwork -ResourceGroupName  $ResourceGroupName -Name $VNetName  
 
$subnet = $virtualNetwork | Select -ExpandProperty subnets | Where-Object  {$_.Name -eq $SubnetName}  
 
$privateEndpoint = New-AzPrivateEndpoint -ResourceGroupName $ResourceGroupName -Name $PrivateEndpointName -Location "westcentralus" -Subnet  $subnet -PrivateLinkServiceConnection $privateEndpointConnection

使用 Azure Powershell 检索专用终结点

若要获取专用终结点的详细信息,请使用以下 PowerShell 命令:

Get-AzPrivateEndpoint -Name $PrivateEndpointName -ResourceGroupName $ResourceGroupName

使用 Azure Powershell 删除专用终结点

若要删除专用终结点,请使用以下 PowerShell 命令:

Remove-AzPrivateEndpoint -Name $PrivateEndpointName -ResourceGroupName $ResourceGroupName

使用 Azure CLI 创建专用终结点

若要为现有 Azure 托管 Redis 实例创建名为 MyPrivateEndpoint 的专用终结点,请运行以下 Azure CLI 脚本。 用环境的详细信息替换变量值:

# Resource group where the Azure Managed Redis and virtual network resources are located
ResourceGroupName="myResourceGroup"

# Subscription ID where the Azure Managed Redis and virtual network resources are located
SubscriptionId="<your Azure subscription ID>"

# Name of the existing Azure Managed Redis instance
redisCacheName="mycacheInstance"

# Name of the virtual network to create
VNetName="myVnet"

# Name of the subnet to create
SubnetName="mySubnet"

# Name of the private endpoint to create
PrivateEndpointName="myPrivateEndpoint"

# Name of the private endpoint connection to create
PrivateConnectionName="myConnection"

az network vnet create \
    --name $VNetName \
    --resource-group $ResourceGroupName \
    --subnet-name $SubnetName

az network vnet subnet update \
    --name $SubnetName \
    --resource-group $ResourceGroupName \
    --vnet-name $VNetName \
    --disable-private-endpoint-network-policies true

az network private-endpoint create \
    --name $PrivateEndpointName \
    --resource-group $ResourceGroupName \
    --vnet-name $VNetName  \
    --subnet $SubnetName \
    --private-connection-resource-id "/subscriptions/$SubscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.Cache/redisEnterprise/$redisCacheName" \
    --group-ids "redisEnterprise" \
    --connection-name $PrivateConnectionName

使用 Azure CLI 检索专用终结点

若要获取专用终结点的详细信息,请使用以下 CLI 命令:

az network private-endpoint show --name MyPrivateEndpoint --resource-group MyResourceGroup

使用 Azure CLI 删除专用终结点

若要删除专用终结点,请使用以下 CLI 命令:

az network private-endpoint delete --name MyPrivateEndpoint --resource-group MyResourceGroup

常见问题解答

如何使用专用终结点连接到缓存?

应用程序应在端口 10000 上连接到 <cachename>.<region>.redis.azure.net。 在订阅中自动创建名为 *.privatelink.redis.azure.net 的专用 DNS 区域。 专用 DNS 区域对于使用专用终结点建立 TLS 连接至关重要。 建议避免在客户连接配置中使用 <cachename>.privatelink.redis.azure.net

有关详细信息,请参阅 Azure 服务 DNS 区域配置

为什么无法连接到专用终结点?

专用终结点不支持哪些功能?

  • 使用 Azure Managed Redis(预览版)的专用终结点没有任何限制。

如何验证我的专用终结点配置是否正确?

在门户的“资源”菜单中转到“概述”。 可以在工作窗格中查看缓存的“主机名”。 若要验证该命令是否解析为缓存的专用 IP 地址,请从链接到专用终结点的 VNet 中运行类似 nslookup <hostname> 的命令。

在 Azure 门户中,对专用终结点进行 DNS 设置。

如何将专用终结点更改为禁用或启用公用网络访问?

要在 Azure 门户中更改值,请执行以下步骤:

  1. 在 Azure 门户中,搜索“Azure 托管 Redis”。 然后,按 Enter 或者在搜索建议中选择该服务。

  2. 选择要更改其公用网络访问值的缓存实例。

  3. 在屏幕左侧选择“专用终结点”。

  4. 删除专用终结点。

如何在不同的虚拟网络中拥有多个终结点?

若要在不同的虚拟网络中拥有多个专用终结点,必须在创建专用终结点之前,将专用 DNS 区域手动配置到多个虚拟网络。 有关详细信息,请参阅 Azure 专用终结点 DNS 配置

如果删除缓存上的所有专用终结点,会发生什么情况?

如果删除 Azure Managed Redis(预览版)缓存上的所有专用终结点,则网络默认具有公用网络访问权限。

是否对专用终结点启用了网络安全组 (NSG)?

否,已对专用终结点禁用了 NSG。 尽管包含专用终结点的子网可以有关联的 NSG,但这些规则不会针对专用终结点处理的流量生效。 必须禁用网络策略的强制实施,才能在子网中部署专用终结点。 NSG 仍会在同一子网中托管的其他工作负荷上强制实施。 任何客户端子网上的路由会使用前缀“/32”,若要更改默认路由行为,需要类似的 UDR。

对源客户端上的出站流量使用 NSG 规则来控制流量。 部署具有 /32 前缀的单个路由,以替代专用终结点路由。 仍支持为出站连接提供 NSG 流日志和监视信息,并且可以使用这些日志和信息。

我的专用终结点实例不在我的 VNet 中,它如何与我的 VNet 关联?

专用终结点仅链接到 VNet。 由于它不在你的 VNet 中,因此不需要修改依赖终结点的 NSG 规则。