設定您的私人連結

設定 Azure Private Link 執行個體需要您執行下列動作:

  • 使用資源建立 Azure 監視器私人連結範圍 (AMPLS)。
  • 在您的網路上建立私人端點並將其連線至該範圍。
  • 在 Azure 監視器資源上設定必要的存取權。

本文會檢閱如何透過 Azure 入口網站完成設定。 其中提供 Azure Resource Manager 範本(ARM 範本) 範例來自動化程序。

在本節中,我們會檢閱透過 Azure 入口網站設定私人連結的逐步流程。 若要使用命令列或 ARM 範本建立和管理私人連結,請參閱使用 API 和命令列

  1. 在 Azure 入口網站中移至 [建立資源],搜尋 Azure 監視器私人連結範圍

    Screenshot showing finding Azure Monitor Private Link Scope.

  2. 選取 建立

  3. 選取訂用帳戶和資源群組。

  4. 提供 AMPLS 的名稱。 使用有意義的清楚名稱,例如 AppServerProdTelem

  5. 選取 [檢閱 + 建立]。

    Screenshot that shows creating an Azure Monitor Private Link Scope.

  6. 讓驗證通過並選取 [建立]

連線 Azure 監視器資源

將 Log Analytics 工作區、Application Insights 元件和資料收集端點等 Azure 監視器資源連線到您的 Azure 監視器私人連結範圍 (AMPLS)。

  1. 在您的 AMPLS 中,選取左側功能表中的 [Azure 監視器資源]。 選取 [新增]。

  2. 新增工作區或元件。 選取 [新增] 會開啟對話方塊,您可以在其中選取 Azure 監視器資源。 您可以瀏覽訂用帳戶和資源群組。 您也可以輸入其名稱來加以篩選。 選取工作區或元件,然後選取 [套用] 將其新增至您的範圍。

    Screenshot that shows selecting a scope.

注意

刪除 Azure 監視器資源會要求您先將這些資源與其連線至的任何 AMPLS 物件中斷連線。 無法刪除連線至 AMPLS 的資源。

連線到私人端點

現在您已將資源連線到您的 AMPLS,請建立私人端點來與您的網路連線。 您可以在 Azure 入口網站 Private Link 中心或 AMPLS 內執行這項工作,如此範例所示。

  1. 在您的範圍資源中,從左側資源功能表中選取 [私人端點連線]。 選取 [私人端點] 以啟動端點建立流程。 您也可以選取在私人連結中心啟動的連線,然後選取 [核准] 來核准連線。

    Screenshot that shows Private Endpoint connections.

  2. 在 [基本] 索引標籤上,選取訂用帳戶資源群組

  3. 輸入端點的名稱網路介面名稱

  4. 選取私人端點應存留的區域。 該區域必須與所連線虛擬網路的區域相同。

  5. 選取 [下一步:資源]。

    A screenshot showing the create private endpoint basics tab.

  6. 在 [資源] 索引標籤上,選取包含 Azure 監視器私人連結範圍資源的「訂用帳戶」

  7. 在 [資源類型] 中選取 [Microsoft.insights/privateLinkScopes]

  8. 從 [資源] 下拉式清單中,選取您稍早建立的私人連結範圍。

  9. 選取 [下一步:虛擬網路]。

    Screenshot that shows the Create a private endpoint page in the Azure portal with the Resource tab selected.

  10. 在 [虛擬網络] 索引標籤上,選取您要連線到 Azure 監視器資源的虛擬網路子網路

  11. 針對 [私人端點的網路原則],如果您想要將網路安全性群組或路由表套用至包含私人端點的子網路,請選取 [編輯]

    在 [編輯子網路網路原則] 中,選取 [網路安全性群組] 和 [路由表] 旁的核取方塊,然後選取 [儲存]。 如需詳細資訊,請參閱管理私人端點的網路原則

  12. 在 [私人 IP 設定] 中,預設會選取 [動態配置 IP 位址]。 如果想要指派靜態的 IP 位址,請選取 [靜態配置 IP 位址]。 然後輸入名稱和私人 IP。
    您可以選擇性地選取或建立 [應用程式安全性群組]。 您可以使用應用程式安全性群組來將虛擬機器分組,並根據這些群組定義網路安全性原則。

  13. 選取 [下一步:DNS]。

    Screenshot that shows the Create a private endpoint page in the Azure portal with the Virtual Network tab selected.

  14. 在 [DNS] 索引標籤上的 [與私人 DNS 區域整合] 中選擇 [是],使其自動建立新的私人 DNS 區域。 實際的 DNS 區域可能與下列螢幕擷取畫面中顯示的不同。

    注意

    如果您選取 [否],並偏好手動管理 DNS 記錄,請先完成設定您的私人連結。 包含此私人端點和 AMPLS 設鄧。 然後,根據 Azure 私人端點 DNS 設定中的指示來設定您的 DNS。 在準備您的私人連結設定時,請務必不要建立空白記錄。 您所建立的 DNS 記錄可以覆寫現有的設定,並影響您與 Azure 監視器的連線能力。

  15. 選取 [下一步:標記],然後選取 [檢閱 + 建立]

    Screenshot that shows the Create a private endpoint page in the Azure portal with the DNS tab selected.

  16. 在 [檢閱 + 建立] 上,通過驗證之後,請選取 [建立]

您現在已建立連線到此 AMPLS 的新私人端點。

設定對您資源的存取

到目前為止,我們說明了網路設定。 但您也應該考慮如何設定對受監視資源的網路存取,例如 Log Analytics 工作區、Application Insights 元件和資料收集端點

前往 Azure 入口網站。 在資源的功能表上,尋找左側的 [網路隔離]。 此頁面控制哪些網路可以透過私人連結連線到資源,以及其他網路是否可以連線到該資源。

Screenshot that shows Network Isolation.

您可以在這裡檢閱及設定資源與 AMPLS 的連線。 連線到 AMPLS 可允許來自虛擬網路 (連線到每個 AMPLS) 的流量連線到資源。 其效果與從範圍進行連線相同,如同我們在連線 Azure 監視器資源一節中所做的。

若要新增連線,請選取 [新增],然後選取 AMPLS。 按一下 [套用] 以進行連線。 您的資源可以連線到五個 AMPLS 物件,如考慮 AMPLS 限制中所述。

此頁面底部的設定會控制來自公用網路的存取,這表示未連線到所列範圍的網路。

如果您將 [接受未透過私人連結範圍連線的公用網路的擷取] 設定為 [否],則連線範圍外的用戶端 (例如機器或 SDK) 無法上傳資料或傳送記錄至資源。

如果您將 [接受未透過私人連結範圍連線的公用網路查詢] 設定為 [否],則連線範圍外的用戶端 (例如機器或 SDK) 無法查詢資源中的資料。

這些資料包括記錄、計量和即時計量資料流的存取。 也包含活頁簿、儀表板、以查詢 API 為基礎的用戶端體驗,以及 Azure 入口網站中深入解析等等的體驗。 在 Azure 入口網站外執行的體驗,以及查詢 Log Analytics 資料的體驗,也必須在私人連結的虛擬網路內執行。

使用 API 和命令列

您可以使用 ARM 範本、REST 和命令列介面,將稍早所述的流程自動化。

若要建立和管理私人連結範圍,請使用 REST APIAzure CLI (az monitor private-link-scope)

使用開放存取模式建立 AMPLS:CLI 範例

下列 CLI 命令會建立名為 "my-scope" 的新 AMPLS 資源,並將查詢和擷取存取模式設定為 Open

az resource create -g "my-resource-group" --name "my-scope" -l global --api-version "2021-07-01-preview" --resource-type Microsoft.Insights/privateLinkScopes --properties "{\"accessModeSettings\":{\"queryAccessMode\":\"Open\", \"ingestionAccessMode\":\"Open\"}}"

使用混合存取模式建立 AMPLS:PowerShell 範例

下列 PowerShell 指令碼會建立名為 "my-scope" 的新 AMPLS 資源,並將查詢存取模式設定為 Open,但擷取存取模式會設定為 PrivateOnly。 此設定表示其只允許擷取 AMPLS 中的資源。

# scope details
$scopeSubscriptionId = "ab1800bd-ceac-48cd-...-..."
$scopeResourceGroup = "my-resource-group"
$scopeName = "my-scope"
$scopeProperties = @{
    accessModeSettings = @{
        queryAccessMode     = "Open"; 
        ingestionAccessMode = "PrivateOnly"
    } 
}

# login
Connect-AzAccount

# select subscription
Select-AzSubscription -SubscriptionId $scopeSubscriptionId

# create private link scope resource
$scope = New-AzResource -Location "Global" -Properties $scopeProperties -ResourceName $scopeName -ResourceType "Microsoft.Insights/privateLinkScopes" -ResourceGroupName $scopeResourceGroup -ApiVersion "2021-07-01-preview" -Force

建立 AMPLS:ARM 範本

以下 ARM 範本會建立:

  • 名為 "my-scope" 的 AMPLS,並將查詢和擷取存取模式設定為 Open
  • 名為 "my-workspace" 的 Log Analytics 工作區。
  • 並將範圍資源新增至名為 "my-workspace-connection""my-scope" AMPLS。

注意

請務必使用新的 API 版本 (2021-07-01-preview 或更新版本) 來建立 AMPLS 物件 (如下所示的 microsoft.insights/privatelinkscopes 類型)。 過去記載的 ARM 範本使用舊的 API 版本,這會導致 AMPLS 是在 QueryAccessMode="Open"IngestionAccessMode="PrivateOnly" 的情況下設定。

{
    "$schema": https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#,
    "contentVersion": "1.0.0.0",
    "parameters": {
        "private_link_scope_name": {
            "defaultValue": "my-scope",
            "type": "String"
        },
        "workspace_name": {
            "defaultValue": "my-workspace",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "microsoft.insights/privatelinkscopes",
            "apiVersion": "2021-07-01-preview",
            "name": "[parameters('private_link_scope_name')]",
            "location": "global",
            "properties": {
                "accessModeSettings":{
                    "queryAccessMode":"Open",
                    "ingestionAccessMode":"Open"
                }
            }
        },
        {
            "type": "microsoft.operationalinsights/workspaces",
            "apiVersion": "2020-10-01",
            "name": "[parameters('workspace_name')]",
            "location": "westeurope",
            "properties": {
                "sku": {
                    "name": "pergb2018"
                },
                "publicNetworkAccessForIngestion": "Enabled",
                "publicNetworkAccessForQuery": "Enabled"
            }
        },
        {
            "type": "microsoft.insights/privatelinkscopes/scopedresources",
            "apiVersion": "2019-10-17-preview",
            "name": "[concat(parameters('private_link_scope_name'), '/', concat(parameters('workspace_name'), '-connection'))]",
            "dependsOn": [
                "[resourceId('microsoft.insights/privatelinkscopes', parameters('private_link_scope_name'))]",
                "[resourceId('microsoft.operationalinsights/workspaces', parameters('workspace_name'))]"
            ],
            "properties": {
                "linkedResourceId": "[resourceId('microsoft.operationalinsights/workspaces', parameters('workspace_name'))]"
            }
        }
    ]
}

設定 AMPLS 存取模式:PowerShell 範例

若要在 AMPLS 上設定存取模式旗標,您可以使用下列 PowerShell 指令碼。 下列指令碼會將旗標設定為 Open。 若要使用僅限私人模式,請使用 "PrivateOnly" 一值。

等待大約 10 分鐘,讓 AMPLS 存取模式更新生效。

# scope details
$scopeSubscriptionId = "ab1800bd-ceac-48cd-...-..."
$scopeResourceGroup = "my-resource-group-name"
$scopeName = "my-scope"

# login
Connect-AzAccount

# select subscription
Select-AzSubscription -SubscriptionId $scopeSubscriptionId

# get private link scope resource
$scope = Get-AzResource -ResourceType Microsoft.Insights/privateLinkScopes -ResourceGroupName $scopeResourceGroup -ResourceName $scopeName -ApiVersion "2021-07-01-preview"

# set access mode settings
$scope.Properties.AccessModeSettings.QueryAccessMode = "Open";
$scope.Properties.AccessModeSettings.IngestionAccessMode = "Open";
$scope | Set-AzResource -Force

設定資源存取旗標

若要管理工作區或元件存取旗標,請在 az monitor log-analytics 工作區az monitor app-insights 元件上使用旗標 [--ingestion-access {Disabled, Enabled}][--query-access {Disabled, Enabled}]

請遵循本節中的步驟來檢閱及驗證您的私人連結設定。

檢閱端點的 DNS 設定

您建立的私人端點現在應該已設定五個 DNS 區域:

  • privatelink.monitor.azure.com
  • privatelink.oms.opinsights.azure.com
  • privatelink.ods.opinsights.azure.com
  • privatelink.agentsvc.azure.automation.net
  • privatelink.blob.core.windows.net

其中每個區域都會從虛擬網路的 IP 集區將特定的 Azure 監視器端點對應至私人 IP。 下圖中顯示的 IP 位址只是範例。 您的設定應該改為顯示來自您自己網路的私人 IP。

重要

從 2021 年 12 月 1 日開始建立的 AMPLS 和私人端點資源會使用稱為端點壓縮的機制。 現在資源特定端點 (例如 OMS、ODS 和 AgentSVC 端點) 會在每個區域和每個 DNS 區域上共用相同的 IP 位址。 此機制表示從虛擬網路的 IP 集區取得的 IP 更少,並且可以新增至 AMPLS 的資源更多。

此區域涵蓋 Azure 監視器所使用的全域端點,這表示可全域/地區提供要求的端點,而不是提供資源特定要求的端點。 此區域應該具有針對下列項目對應的端點:

  • in.ai:Application Insights 擷取端點 (全域和區域項目)。
  • api:Application Insights 和 Log Analytics API 端點。
  • live:Application Insights 即時計量端點。
  • profiler:Application Insights 分析工具端點。
  • snapshot:Application Insights 快照集端點。
  • diagservices-query:Application Insights 分析工具和快照偵錯工具 (在存取 Azure 入口網站中的分析工具/偵錯工具結果時使用)。

此區域也涵蓋資料收集端點 (DCE) 的資源特定端點:

  • <unique-dce-identifier>.<regionname>.handler.control:私人設定端點,屬於 DCE 資源的一部分。
  • <unique-dce-identifier>.<regionname>.ingest:私人擷取端點,屬於 DCE 資源的一部分。

Screenshot that shows Private DNS zone monitor-azure-com.

Log Analytics 端點

重要

從 2021 年 12 月 1 日開始建立的 AMPLS 和私人端點會使用稱為端點壓縮的機制。 現在每個資源特定的端點 (例如 OMS、ODS 和 AgentSVC) 會針對該區域中的所有工作區,在每個區域和每個 DNS 區域使用單一 IP 位址。 此機制表示從虛擬網路的 IP 集區取得的 IP 更少,並且可以新增至 AMPLS 的資源更多。

Log Analytics 使用四個 DNS 區域:

  • privatelink-oms-opinsights-azure-com:涵蓋 OMS 端點的工作區特定對應。 您應該會看到一個項目,表示每個連結至 AMPLS (此私人端點連線) 的工作區。
  • privatelink-ods-opinsights-azure-com:涵蓋 ODS 端點的工作區特定對應,這些是 Log Analytics 的擷取端點。 您應該會看到一個項目,表示每個連結至 AMPLS (此私人端點連線) 的工作區。
  • privatelink-agentsvc-azure-automation-net:涵蓋代理程式服務自動化端點的工作區特定對應。 您應該會看到一個項目,表示每個連結至 AMPLS (此私人端點連線) 的工作區。
  • privatelink-blob-core-windows-net:設定與全域代理程式解決方案套件儲存體帳戶的連線。 透過該連線,代理程式可以下載新的或更新的解決方案套件 (也稱為管理組件)。 不論使用多少個工作區,只需一個項目,即可處理所有 Log Analytics 代理程式。 此項目只會新增至在 2021 年 4 月 19 日或之後建立的私人連結設定 (或從 2021 年 6 月開始,在 Azure 主權雲端上建立的私人連結設定)。

下列螢幕擷取畫面顯示針對 AMPLS 對應的端點,在美國東部有兩個工作區,而在西歐有一個工作區。 請注意,美國東部工作區會共用 IP 位址。 西歐工作區端點會對應至不同的 IP 位址。 Blob 端點不會出現在此影像中,但已設定。

Screenshot that shows private link compressed endpoints.

確定您的私人連結處於良好的工作順序:

  • 若要驗證您的要求現在是否會透過私人端點傳送,您可以使用網路追蹤工具或甚至是瀏覽器來檢閱這些要求。 例如,嘗試查詢工作區或應用程式時,請確定要求會傳送至對應至 API 端點的私人 IP。 在此範例中為 172.17.0.9

    注意

    某些瀏覽器可能會使用其他 DNS 設定。 如需詳細資訊,請參閱瀏覽器 DNS 設定。 確定您的 DNS 設定適用。

  • 若要確定您的工作區或元件未從公用網路接收要求 (未透過 AMPLS 連線),請將資源的公用擷取和查詢旗標設定為 No,如設定對您資源的存取中所述。

  • 從受保護網路上的用戶端中,使用 nslookup 以查閱 DNS 區域中所列的任何端點。 DNS 伺服器應該將其解析為對應的私人 IP,而不是預設使用的公用 IP。

下一步