什麼是 Azure Cache for Redis 與 Azure Private Link?

在本文中,您將瞭解如何使用 Azure 入口網站,建立具有私人端點的虛擬網路和 Azure Cache for Redis 實例。 您也會瞭解如何將私人端點新增至現有的 Azure Cache for Redis 實例。

Azure 私人端點是一種網路介面,可讓您以私人且安全地方式連線至 Azure Private Link 所支援的 Azure Cache for Redis。

您可以停用 PublicNetworkAccess 旗標來限制對快取私人端點的公用存取。

重要

預設會有旗 publicNetworkAccessDisabled 。 您可以將值設定為 DisabledEnabled。 設定為啟用時,此旗標同時允許公用和私人端點存取快取。 當設定為 Disabled時,它只允許私人端點存取。 企業層和企業 Flash 層都未支援 publicNetworkAccess 旗標。 如需如何變更值的詳細資訊,請參閱 常見問題

重要

快取層支援私人端點基本、標準、進階版 和企業。 我們建議使用私人端點,而不是 VNet。 私人端點很容易設定或移除,在所有層上都受到支援,而且可以一次將您的快取連線到多個不同的 VNet。

使用基本層時,當您刪除並重新建立私人端點時,可能會遇到數據遺失。

可用性範圍

基本、標準、進階 Enterprise、Enterprise Flash
可用的 Yes Yes

必要條件

重要

使用私人連結時,您無法將數據匯出或匯入至已啟用防火牆的記憶體帳戶,除非您使用具有受控識別的 進階版 層快取來緊縮至記憶體帳戶。 如需詳細資訊,請參閱 如果我已在記憶體帳戶上啟用防火牆,該怎麼辦?

使用新的 Azure Cache for Redis 實例建立私人端點

在本節中,您會使用私人端點建立新的 Azure Cache for Redis 實例。

建立新快取的虛擬網路

  1. 登入 Azure 入口網站,然後選取 [建立資源]

    選取 [建立資源]。

  2. 在 [ 新增 ] 頁面上,選取 [ 網络功能 ],然後選取 [ 虛擬網络]。

  3. 選取 [ 新增 ] 以建立虛擬網路。

  4. 在 [建立虛擬網路] 的 [基本] 索引標籤中輸入或選取此資訊:

    設定 建議的值 描述
    訂用帳戶 下拉並選取您的訂用帳戶。 要在其中建立此虛擬網路的訂用帳戶。
    資源群組 下拉並選取資源群組,或選取 [新建] 並輸入新的資源群組名稱。 要在其中建立虛擬網路和其他資源的資源組名。 將所有的應用程式資源放在一個資源群組中,您將可輕鬆地一併管理或刪除這些資源。
    名稱 輸入虛擬網路名稱。 名稱必須:以字母或數字開頭;以字母、數位或底線結尾;和只包含字母、數位、底線、句點或連字元。
    區域 下拉式清單並選取區域。 選取使用虛擬網路之其他服務附近的區域
  5. 選取 [IP 位址] 索引標籤,或選取頁面底部的 [下一步:IP 位置] 按鈕。

  6. 在 [ IP 位址] 索引標籤中,將 IPv4 位址空間 指定為 CIDR 表示法中的一或多個位址前綴(例如 192.168.1.0/24)。

  7. 在 [ 子網名稱] 底下 ,選取 [預設 ] 以編輯子網的屬性。

  8. 在 [ 編輯子網 ] 窗格中,指定 [子網名稱 ] 和 [ 子網位址範圍]。 子網的位址範圍應為 CIDR 表示法(例如 192.168.1.0/24)。 其必須包含在虛擬網路的位址空間中。

  9. 選取 [儲存]。

  10. 選取 [檢閱 + 建立] 索引標籤,或選取 [檢閱 + 建立] 按鈕。

  11. 確認所有資訊都正確無誤,然後選取 [建立 ] 以建立虛擬網路。

使用私人端點建立 Azure Cache for Redis 實例

若要建立快取實例,請遵循下列步驟:

  1. 返回 Azure 入口網站 首頁或開啟提要字段功能表,然後選取 [建立資源]。

  2. 在 [新增] 頁面上選取 [資料庫],然後選取 [Azure Cache for Redis]

    選取 [Azure Cache for Redis]。

  3. 在 [新的 Redis 快取] 頁面上,設定新快取的設定。

    設定 建議的值 描述
    DNS 名稱 輸入全域唯一名稱。 快取名稱必須是介於 1 到 63 個字元之間的字串。 字串必須只包含數位、字母或連字元。 名稱的開頭和結尾必須是數字或字母,且不可包含連續的連字號。 快取執行個體的「主機名稱」為「<DNS 名稱>.redis.cache.windows.net」
    訂用帳戶 下拉並選取您的訂用帳戶。 這個新的 Azure Cache for Redis 執行個體建立所在的訂用帳戶。
    資源群組 下拉並選取資源群組,或選取 [新建] 並輸入新的資源群組名稱。 用來建立快取和其他資源的資源群組名稱。 將所有的應用程式資源放在一個資源群組中,您將可輕鬆地一併管理或刪除這些資源。
    地點 下拉並選取位置。 選取其他要使用快取之服務附近的區域
    定價層 下拉式清單並選取 定價層 快取的可用大小、效能和功能取決於定價層。 如需詳細資訊,請參閱 Azure Cache for Redis 概觀
  4. 選取 [網路] 索引標籤,或選取頁面底部的 [網路] 按鈕。

  5. 在 [ 網络] 索引 標籤中,針對連線方法選取 [私人端點 ]。

  6. 選取 [ 新增 ] 按鈕以建立您的私人端點。

    在網路中,新增私人端點。

  7. 在 [ 建立私人端點 ] 頁面上,使用您在上一節中建立的虛擬網络和子網來設定私人端點的設定,然後選取 [ 確定]。

  8. 選取 [ 下一步:進階 ] 索引標籤,或選取頁面底部的 [ 下一步:進階 ] 按鈕。

  9. 如果您想要啟用非 TLS 埠,請在基本或標準快取實例的 [ 進階 ] 索引標籤中,選取 [啟用] 切換開關。

  10. 在進階快取實例的 [ 進階 ] 索引標籤中,設定非 TLS 連接埠、叢集和數據持續性的設定。

  11. 選取 [下一步: 標記] 索引標籤,或選取頁面底部的 [下一步: 標記] 按鈕。

  12. 在 [標記] 索引標籤中,如果您想要分類資源,可以選擇性地輸入名稱和值。

  13. 選取 [檢閱 + 建立]。 您會移至 [檢閱 + 建立] 索引標籤,Azure 會在其中驗證您的設定。

  14. 出現綠色的「通過驗證」訊息之後,請選取 [建立]

建立快取需要一些時間。 您可以在 Azure Cache for Redis 的 [概觀] 頁面上監視進度。 當 [狀態] 顯示為 [執行中] 時,表示快取已可供使用。

重要

預設會有旗 publicNetworkAccessDisabled 。 您可以將值設定為 DisabledEnabled。 當設定為 Enabled時,此旗標同時允許公用和私人端點存取快取。 當設定為 Disabled時,它只允許私人端點存取。 如需如何變更值的詳細資訊,請參閱 常見問題

使用現有的 Azure Cache for Redis 實例建立私人端點

在本節中,您會將私人端點新增至現有的 Azure Cache for Redis 實例。

建立現有快取的虛擬網路

若要建立虛擬網路,請遵循下列步驟:

  1. 登入 Azure 入口網站,然後選取 [建立資源]

  2. 在 [ 新增 ] 頁面上,選取 [ 網络功能 ],然後選取 [ 虛擬網络]。

  3. 選取 [ 新增 ] 以建立虛擬網路。

  4. 在 [建立虛擬網路] 的 [基本] 索引標籤中輸入或選取此資訊:

    設定 建議的值 描述
    訂用帳戶 下拉並選取您的訂用帳戶。 要在其中建立此虛擬網路的訂用帳戶。
    資源群組 下拉並選取資源群組,或選取 [新建] 並輸入新的資源群組名稱。 要在其中建立虛擬網路和其他資源的資源組名。 將所有的應用程式資源放在一個資源群組中,您將可輕鬆地一併管理或刪除這些資源。
    名稱 輸入虛擬網路名稱。 名稱必須:以字母或數字開頭;以字母、數位或底線結尾;和只包含字母、數位、底線、句點或連字元。
    區域 下拉式清單並選取區域。 選取使用虛擬網路之其他服務附近的區域
  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 鍵,或從搜尋建議中選取它。

    搜尋 Azure Cache for Redis。

  2. 選取您要新增私人端點的快取實例。

  3. 在畫面左側,選取 [私人端點]。

  4. 選取 [ 私人端點] 按鈕以建立您的私人端點。

    新增私人端點。

  5. 在 [ 建立私人端點] 頁面上,設定私人端點的設定。

    設定 建議的值 描述
    訂用帳戶 下拉並選取您的訂用帳戶。 要在其中建立此私人端點的訂用帳戶。
    資源群組 下拉並選取資源群組,或選取 [新建] 並輸入新的資源群組名稱。 要在其中建立私人端點和其他資源的資源群組名稱。 將所有的應用程式資源放在一個資源群組中,您將可輕鬆地一併管理或刪除這些資源。
    名稱 輸入私人端點名稱。 名稱必須:以字母或數字開頭;以字母、數位或底線結尾;和只能包含字母、數位、底線、句點或連字元。
    區域 下拉式清單並選取區域。 選取使用私人端點之其他服務附近的區域
  6. 選取頁面底部的 [ 下一步:資源 ] 按鈕。

  7. 在 [ 資源] 索引標籤中,選取您的訂用帳戶,選擇資源類型作為 Microsoft.Cache/Redis,然後選取您要將私人端點連線至的快取。

  8. 選取頁面底部的 [ 下一步:組態 ] 按鈕。

  9. 選取頁面底部的 [下一步:虛擬網絡] 按鈕。

  10. 在 [組態] 索引標籤中,選取您在上一節中建立的虛擬網路和子網。

  11. 在 [虛擬網絡] 索引標籤中,選取您在上一節中建立的虛擬網路和子網。

  12. 選取頁面底部的 [下一步: 標記] 按鈕。

  13. 在 [標記] 索引標籤中,如果您想要分類資源,可以選擇性地輸入名稱和值。

  14. 選取 [檢閱 + 建立]。 系統會帶您前往 Azure 驗證設定的 [ 檢閱 + 建立] 索引標籤。

  15. 綠色 [驗證通過 的訊息] 出現之後,選取 [ 建立]。

重要

預設會有旗 publicNetworkAccessDisabled 。 您可以將值設定為 DisabledEnabled。 設定為啟用時,此旗標同時允許公用和私人端點存取快取。 當設定為 Disabled時,它只允許私人端點存取。 如需如何變更值的詳細資訊,請參閱 常見問題

使用 Azure PowerShell 建立私人端點

若要為現有的 Azure Cache for Redis 實例建立名為 MyPrivateEndpoint 的私人端點,請執行下列 PowerShell 腳本。 以您環境的詳細資料取代變數值:


$SubscriptionId = "<your Azure subscription ID>"
# Resource group where the Azure Cache for Redis instance and virtual network resources are located
$ResourceGroupName = "myResourceGroup"
# Name of the Azure Cache for 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 Cache for Redis 實例建立名為 myPrivateEndpoint 的私人端點,請執行下列 Azure CLI 腳本。 以您環境的詳細資料取代變數值:

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

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

# Name of the existing Azure Cache for 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/Redis/$redisCacheName" \
    --group-ids "redisCache" \
    --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

常見問題集

如何? 使用私人端點連線到我的快取嗎?

針對基本、標準和 進階版 層快取,您的應用程式應該連線到<cachename>.redis.cache.windows.net6380。 名為 *.privatelink.redis.cache.windows.net的私人 DNS 區域會自動在您的訂用帳戶中建立。 私人 DNS 區域對於建立私人端點的 TLS 連線至關重要。 建議您避免在組態或 連接字串 中使用 <cachename>.privatelink.redis.cache.windows.net

針對 Enterprise 和 Enterprise Flash 層快取,您的應用程式應該連線到 <cachename>.<region>.redisenterprise.cache.azure.net10000

如需詳細資訊,請參閱 Azure 服務 DNS 區域設定

為什麼我無法連線到私人端點?

  • 如果您的快取已經插入 VNet 快取,私人端點就無法與快取實例搭配使用。

  • 針對基本、標準和 進階版 層快取,您只能使用100個私人連結。

  • 在使用叢集的 進階版 層快取上,您只能使用一個私人連結。

  • 企業和企業快取限制為84個私人連結。

  • 您嘗試將數據 保存到套用防火牆規則的記憶體帳戶 ,可能會讓您無法建立 Private Link。

  • 如果您的快取實例使用 不支援的功能,您可能無法連線到您的私人端點。

私人端點不支援哪些功能?

  • 嘗試從 Azure 入口網站 主控台連線,是您看到連線失敗的不支援案例。

  • 私人鏈接無法新增至已在 進階版 層中使用被動異地復寫的快取。 若要將私人連結新增至異地復寫快取:1。 取消連結異地複寫。 2. 新增 Private Link。 3. 最後,重新連結異地復寫。 (使用 作用中異地復 寫的企業層快取沒有此限制。

如何? 確認我的私人端點是否已正確設定?

在入口網站的 [資源] 功能表中,移至 [概觀 ]。 您會在工作窗格中看到 快取的主機名 。 從連結至私人端點的 VNet 內執行命令 nslookup <hostname> ,以確認命令解析為快取的私人 IP 位址。

在 Azure 入口網站,私人端點 D N S 設定。

如何從公用網路存取中將我的私人端點變更為停用或啟用?

預設會有旗 publicNetworkAccessDisabled 。 當設定為 Enabled時,此旗標同時允許公用和私人端點存取快取。 當設定為 Disabled時,它只允許私人端點存取。 您可以在 Azure 入口網站 中或使用 RESTful API PATCH 要求,將值設定為 DisabledEnabled

若要變更 Azure 入口網站 中的值,請遵循下列步驟:

  1. 在 Azure 入口網站 中,搜尋 Azure Cache for Redis。 然後,按 Enter 鍵,或從搜尋建議中選取它。

  2. 選取您想要變更公用網路存取值的快取實例。

  3. 在畫面左側,選取 [私人端點]。

  4. 選取 [ 啟用公用網络存取] 按鈕。

您也可以透過 RESTful API PATCH 要求變更值。 例如,針對基本、標準或 進階版 層快取使用下列程序代碼,並編輯值以反映您想要的快取旗標。

PATCH  https://management.azure.com/subscriptions/{subscription}/resourceGroups/{resourcegroup}/providers/Microsoft.Cache/Redis/{cache}?api-version=2020-06-01
{    "properties": {
       "publicNetworkAccess":"Disabled"
   }
}

如需詳細資訊,請參閱 Redis - 更新

如需如何將 VNet 插入快取移轉至 Private Link 快取的不同方法,請參閱我們的 移轉指南

如何在不同的虛擬網路中有多個端點?

若要在不同的虛擬網路中有多個私人端點,私人 DNS 區域必須先手動設定為多個虛擬網路 ,才能 建立私人端點。 如需詳細資訊,請參閱 Azure 私人端點 DNS 設定

如果我刪除快取上的所有私人端點,會發生什麼事?

一旦您刪除快取上的私人端點,快取實例可能會變得無法連線,直到:您明確啟用公用網路存取,或新增另一個私人端點。 您可以在 Azure 入口網站 或透過 RESTful API PATCH 要求變更publicNetworkAccess旗標。 如需如何變更值的詳細資訊,請參閱 常見問題

是否為私人端點啟用網路安全組 (NSG?

否,私人端點會停用它們。 雖然包含私人端點的子網可以有與其相關聯的 NSG,但規則對私人端點處理的流量並不有效。 您必須 停用 強制執行網路原則,才能在子網中部署私人端點。 NSG 仍會在裝載於相同子網的其他工作負載上強制執行。 任何用戶端子網上的路由都會使用 /32 前置詞,變更預設路由行為需要類似的 UDR。

針對來源用戶端上的輸出流量,使用NSG規則來控制流量。 部署具有 /32 前置詞的個別路由,以覆寫私人端點路由。 仍支援輸出連線的NSG流量記錄和監視資訊,而且可以使用。

我的私人端點實例不在我的 VNet 中,所以它如何與我的 VNet 相關聯?

它只會連結至您的 VNet。 因為它不在 VNet 中,所以不需要修改相依端點的 NSG 規則。