設定 Azure AI 服務虛擬網路

Azure AI 服務提供多層式安全性模型。 此模型可讓您將 Azure AI 服務帳戶固定在特定的網路子集。 設定網路規則時,只有透過一組指定網路要求資料的應用程式才能存取帳戶。 您可以使用要求篩選來限制資源的存取,只有源自所指定 IP 位址、IP 範圍或來自 Azure 虛擬網路中子網路清單的要求。

在網路規則生效時存取 Azure AI 服務資源的應用程式需要授權。 Microsoft Entra ID 認證或有效的 API 金鑰支援授權。

重要

為您的 Azure AI 服務帳戶開啟防火牆規則時,預設會封鎖資料的傳入要求。 為了允許要求通過,必須符合下列其中一個條件:

  • 要求源自 Azure 虛擬網路內操作的服務,而此虛擬網路是在目標 Azure AI 服務帳戶允許的子網路清單上。 要求中源自虛擬網路的端點必須設定為 Azure AI 服務帳戶的自訂子網域
  • 要求源自允許的 IP 位址清單。

封鎖的要求包括來自其他 Azure 服務、Azure 入口網站及記錄與計量服務。

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 請參閱安裝 Azure PowerShell 以開始使用。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

案例

若要保護您的 Azure AI 服務帳戶,您應該先設定規則,預設為拒絕存取來自所有網路的流量 (包括網際網路流量)。 然後,設定規則,以授與特定虛擬網路中流量的存取權。 此設定可讓您為應用程式設定安全的網路界限。 您也可以設定規則,授與存取所選取公用網際網路 IP 位址範圍中流量的權限,這會啟用來自特定網際網路或內部部署用戶端的連線。

Azure AI 服務的所有網路通訊協定上都會強制執行網路規則,包括 REST 和 SMB。 若要使用 Azure 測試主控台之類的工具來存取資料,必須設定明確的網路規則。 您可以將網路規則套用至現有的 Azure AI 服務資源,或在建立新的 Azure AI 服務資源時套用這些規則。 套用網路規則後,就會對所有要求執行。

支援的區域和服務供應項目

提供 Azure AI 服務的區域支援虛擬網路。 Azure AI 服務支援網路規則組態的服務標籤。 此處列出的服務包含在 CognitiveServicesManagement 服務標籤中。

  • 異常偵測器
  • Azure OpenAI
  • 內容仲裁者
  • 自訂視覺
  • 臉部
  • Language Understanding (LUIS)
  • 個人化服務工具
  • 語音服務
  • 語言
  • QnA Maker
  • Translator

注意

如果您使用 Azure OpenAI、LUIS 或語音服務,或語言服務,CognitiveServicesManagement 標記只讓您可以使用 SDK 或 REST API 來使用服務。 若要從虛擬網路存取及使用 Azure OpenAI Studio、LUIS 入口網站、Speech Studio 或語言服務,您必須使用下列標記:

  • AzureActiveDirectory
  • AzureFrontDoor.Frontend
  • AzureResourceManager
  • CognitiveServicesManagement
  • CognitiveServicesFrontEnd
  • Storage (僅限語音工作室)

如需設定 Azure AI Studio 的詳細資訊,請參閱 Azure AI Studio 檔

變更預設的網路存取規則

根據預設,Azure AI 服務資源會接受來自任何網路上用戶端的連線。 若要限制對所選網路的存取權,您必須先變更預設動作。

警告

變更網路規則會影響應用程式連接到 Azure AI 服務的能力。 將預設網路規則設定為拒絕會封鎖數據的所有存取,除非也套用授與存取權的特定網路規則

變更預設規則以拒絕存取前,請務必先將存取權授與任何使用網路規則的允許網路。 如果您允許列出內部部署網路的 IP 位址,請務必從您的內部部署網路新增所有可能的傳出公用 IP 位址。

管理預設網路存取規則

您可以透過 Azure 入口網站、PowerShell 或 Azure CLI 來管理 Azure AI 服務資源的預設網路存取規則。

  1. 移至您想要保護的 Azure AI 服務資源。

  2. 選取 [資源管理] 以展開,然後選取 [網路功能]

    顯示網路功能頁面的螢幕擷取畫面,其中已選取 [選取的網路與私人端點]。

  3. 若要預設拒絕存取,請在 [防火牆與虛擬網路] 選取 [選取的網路與私人端點]

    只有此設定,未伴隨設定的 [虛擬網路] 或 [位址範圍],所有存取都會遭到有效地拒絕。 當所有存取遭到拒絕時,不允許嘗試取用 Azure AI 服務資源的要求。 仍然可以使用 Azure 入口網站、Azure PowerShell 或 Azure CLI 來設定 Azure AI 服務資源。

  4. 若要允許來自所有網路的流量,請選取 [所有網路]

    顯示網路頁面的螢幕擷取畫面,其中已選取 [所有網路] 選項。

  5. 選取儲存套用變更。

授與虛擬網路存取權

您可以將 Azure AI 服務資源設定為僅允許來自特定子網路的存取。 允許的子網路可能屬於相同訂用帳戶或不同訂用帳戶中的虛擬網絡。 另一個訂用帳戶可以屬於不同的 Microsoft Entra 租使用者。 當子網屬於不同的訂用帳戶時,Microsoft.CognitiveServices 資源提供者也必須註冊該訂用帳戶。

為虛擬網路內的 Azure AI 服務啟用服務端點。 服務端點會透過 Azure AI 服務的最佳路徑,將來自虛擬網路的流量路由傳送。 如需詳細資訊,請參閱虛擬網路服務端點

子網路和虛擬網路的身分識別也會隨著每個要求傳輸。 管理員接著可以設定 Azure AI 服務資源的網路規則,允許來自虛擬網路中特定子網路的要求。 透過這些網路規則授與存取的用戶端,必須仍要繼續符合 Azure AI 服務資源的授權需求,才能存取資料。

每個 Azure AI 服務資源最多可支援 100 個虛擬網路規則,它們也可以結合 IP 網路規則。 如需詳細資訊,請參閱本文稍後說明的從網際網路 IP 範圍授與存取權

設定必要權限

若要將虛擬網路規則套用至 Azure AI 服務資源,您必須對要新增的子網路具有適當權限。 必要的權限是預設的參與者角色或認知服務參與者角色。 必要的許可權也可以新增至自定義角色定義。

授與存取權的 Azure AI 服務資源和虛擬網路可能位於不同的訂用帳戶中,包括屬於不同 Microsoft Entra 租使用者的訂用帳戶。

注意

目前僅透過PowerShell、Azure CLI和REST API支援對屬於不同 Microsoft Entra 租使用者一部分之虛擬網路中子網的存取權的規則設定。 您可以在 Azure 入口網站中檢視這些規則,但無法加以設定。

設定虛擬網路規則

您可以透過 Azure 入口網站、PowerShell 或 Azure CLI 來管理 Azure AI 服務資源的虛擬網路規則。

若要使用現有的網路規則授與存取權給虛擬網路:

  1. 移至您想要保護的 Azure AI 服務資源。

  2. 選取 [資源管理] 以展開,然後選取 [網路功能]

  3. 確認您已選取 [選取的網路與私人端點]

  4. [允許下列存取] 底下,選取 [新增現有的虛擬網路]

    顯示網路功能頁面的螢幕擷取畫面,其中已選取 [選取的網路與私人端點],且反白顯示 [新增現有的虛擬網路]。

  5. 選取 [ 虛擬網络子網 ] 選項,然後選取 [ 啟用]。

    顯示「新增網路」對話方塊的螢幕擷取畫面,可在其中輸入虛擬網路和子網路。

    注意

    如果 Azure AI 服務的服務端點未針對所選虛擬網路和子網路事先設定,可以將其設定為這項作業的一部分。

    目前,只有屬於相同 Microsoft Entra 租使用者的虛擬網路才能在規則建立期間進行選取。 當虛擬網路屬於另一個租用戶時,若要授與權限存取其中的子網路,請使用 PowerShell、Azure CLI 或 REST API。

  6. 選取儲存套用變更。

若要建立新的虛擬網路並授與存取權:

  1. 在與上一個程序相同的頁面上,選取 [新增新的虛擬網路]

    顯示網路功能頁面的螢幕擷取畫面,其中已選取 [選取的網路與私人端點],且反白顯示 [新增新的虛擬網路]。

  2. 提供建立新虛擬網路所需的信息,然後選取 [ 建立]。

    顯示 [建立虛擬網路] 對話方塊的螢幕擷取畫面。

  3. 選取儲存套用變更。

若要移除現有虛擬網路或子網路規則:

  1. 在與先前程序相同的頁面上,選取 [...(其他選項)] 以開啟虛擬網路或子網路的捷徑功能表,然後選取 [移除]

    顯示移除虛擬網路的選項的螢幕擷取畫面。

  2. 選取儲存套用變更。

重要

請務必將 默認規則 設定為 拒絕,或網路規則沒有任何作用。

授與網際網路 IP 範圍存取權

您可以將 Azure AI 服務設定為允許從特定公用網際網路 IP 位址範圍進行存取。 此設定可將存取權授與特定服務和內部部署網路,這會有效地封鎖一般網際網路流量。

您可以使用 CIDR 格式 (RFC 4632)192.168.0.0/16 的形式或 192.168.0.1 一類的個別 IP 位址來指定允許的網際網路位址範圍。

提示

不支援使用 /31/32 前置詞大小的小型位址範圍。 使用個別 IP 位址規則設定這些範圍。

只有公用因特網IP位址才允許IP網路規則。 IP 規則中不允許保留私人網路的 IP 位址範圍。 專用網包含開頭為10.*172.31.*172.16.* - 和 的192.168.*位址。 如需詳細資訊,請參閱私人位址空間 (RFC 1918)

目前僅支援 IPv4 位址。 每個 Azure AI 服務資源最多可支援 100 個 IP 網路規則,它們也可以結合虛擬網路規則

設定內部部署網路存取權

若要使用 IP 網路規則,從您的內部部署網路將存取權授與您的 Azure AI 服務資源,請識別網路所使用的網際網路對應 IP 位址。 請連絡網路系統管理員尋求協助。

如果使用 Azure ExpressRoute 內部部署,進行公用對等互連或 Microsoft 對等互連,您必須識別 NAT IP 位址。 如需詳細資訊,請參閱何謂 Azure ExpressRoute

針對公用對等互連,每個 ExpressRoute 線路預設都會使用兩個 NAT IP 位址。 當流量進入 Microsoft Azure 網路骨幹時,每個流量都會套用至 Azure 服務流量。 若為 Microsoft 對等互連,所使用的 NAT IP 位址是由客戶提供或由服務提供者提供。 若要允許存取您的服務資源,您必須在資源 IP 防火牆設定中允許這些公用 IP 位址。

若要尋找您的公用對等互連 ExpressRoute 線路 IP 位址,請使用 Azure 入口網站開啟有 ExpressRoute 的支援票證。 如需詳細資訊,請參閱 Azure 公用對等互連的 NAT 需求

管理 IP 網路規則

您可以透過 Azure 入口網站、PowerShell 或 Azure CLI 來管理 Azure AI 服務資源的 IP 網路規則。

  1. 移至您想要保護的 Azure AI 服務資源。

  2. 選取 [資源管理] 以展開,然後選取 [網路功能]

  3. 確認您已選取 [選取的網路與私人端點]

  4. [防火牆與虛擬網路] 底下,找出 [位址範圍] 選項。 若要授與網際網路 IP 範圍的存取權,請輸入 IP 位址或位址範圍 (採用 CIDR 格式)。 只接受有效的公用 IP (非保留) 位址。

    顯示網路功能頁面的螢幕擷取畫面,其中已選取 [選取的網路與私人端點],且反白顯示 [位址範圍]。

    若要移除IP網路規則,請選取位址範圍旁邊的垃圾桶 圖示。

  5. 選取儲存套用變更。

重要

請務必將 默認規則 設定為 拒絕,或網路規則沒有任何作用。

使用私人端點

您可以將私人端點用於 Azure AI 服務資源,以允許虛擬網路上的用戶端可安全地透過 Azure Private Link 存取資料。 私人端點會使用來自虛擬網路位址空間的 IP 位址來執行 Azure AI 服務資源。 虛擬網路上的用戶端與資源之間的網路流量會流經虛擬網路和 Microsoft Azure 骨幹網路上的私人連結,以排除公開網際網路的風險。

Azure AI 服務資源的私人端點可讓您:

  • 藉由設定防火牆來封鎖 Azure AI 服務公用端點上的所有連線,以保護您的 Azure AI 服務資源。
  • 藉由讓您封鎖從虛擬網路外泄數據,來增加虛擬網路的安全性。
  • 使用 Azure VPN 閘道ExpressRoute 私人對等互連,從連線至虛擬網路的內部部署網路安全地連線到 Azure AI 服務資源。

了解私人端點

在您的虛擬網路中,私人端點是 Azure 資源的特殊網路介面。 為您的 Azure AI 服務資源建立私人端點,可在虛擬網路中的用戶端與您的資源之間提供安全的連線能力。 私人端點會獲指派您虛擬網路 IP 位址範圍中的 IP 位址。 私人端點與 Azure AI 服務之間的聯機會使用安全的私人連結。

虛擬網路中的應用程式可以順暢地透過私人端點連線到服務。 連線會使用與其他連線相同的連接字串和授權機制。 例外狀況是語音服務,其需要個別的端點。 如需詳細資訊,請參閱本文中的具有語音服務的私人端點。 私人端點可與 Azure AI 服務資源所支援的所有通訊協定搭配使用,包括 REST。

私人端點可以在使用服務端點的子網路中建立。 子網路中的用戶端可以使用私人端點連線至 Azure AI 服務資源,同時使用服務端點存取其他服務。 如需詳細資訊,請參閱虛擬網路服務端點

在虛擬網路中為 Azure AI 服務資源建立私人端點時,Azure 會將同意要求傳送給 Azure AI 服務資源擁有者。 如果要求建立私人端點的使用者也是儲存體帳戶的擁有者,則系統會自動核准此同意要求。

Azure AI 服務資源擁有者可以透過 Azure 入口網站中 Azure AI 服務資源的 [私人端點連線] 索引標籤,來管理同意要求和私人端點。

指定私人端點

建立私人端點時,請指定其所連線的 Azure AI 服務資源。 如需建立私人端點的詳細資訊,請參閱:

連線 至私人端點

注意

Azure OpenAI 服務使用不同於其他 Azure AI 服務的私人 DNS 區域和公用 DNS 區域轉寄站。 如需正確的區域和轉寄站名稱,請參閱 Azure 服務 DNS 區域設定

虛擬網路上使用私人端點的用戶端在用戶端連線至公用端點時,將相同的連接字串用於 Azure AI 服務資源。 例外狀況是語音服務,其需要個別的端點。 如需詳細資訊,請參閱本文中的使用具有語音服務的私人端點。 DNS 解析會自動透過私人連結將虛擬網路連線路由傳送至 Azure AI 服務資源。

根據預設,Azure 建立附加至虛擬網路的私人 DNS 區域,並對私人端點進行必要更新。 如果您使用自己的 DNS 伺服器,您可能需要對 DNS 設定進行更多變更。 如需私人端點可能需要的更新,請參閱本文中的套用私人端點的 DNS 變更

使用具有語音服務的私人端點

請參閱透過私人端點使用語音服務

套用私人端點的 DNS 變更

建立私人端點時,Azure AI 服務資源的 DNS CNAME 資源記錄會更新為子網域中首碼為 'privatelink' 的別名。 根據預設,Azure 也會以私人端點的 DNS A 資源記錄建立對應於 privatelink 子網域的私人 DNS 區域。 如需詳細資訊,請參閱何謂 Azure Private DNS

當您從具有私人端點的虛擬網路外部解析端點 URL 時,其會解析為 Azure AI 服務資源的公用端點。 從裝載私人端點的虛擬網路進行解析時,端點 URL 會解析為私人端點的 IP 位址。

這種方法可讓您將相同的連接字串用於虛擬網路 (裝載私人端點) 中的用戶端和虛擬網路外的用戶端來存取 Azure AI 服務資源。

如果您是在網路上使用自訂 DNS 伺服器,用戶端必須能夠將 Azure AI 服務資源端點的完整網域名稱 (FQDN) 解析為私人端點 IP 位址。 設定您的 DNS 伺服器,以將 Private Link 子網域委派給虛擬網路的私人 DNS 區域。

提示

使用自訂或內部部署 DNS 伺服器時,您應設定 DNS 伺服器將 privatelink 子網域中的 Azure AI 服務資源名稱解析為私人端點 IP 位址。 將 privatelink 子網域委派給虛擬網路的私人 DNS 區域。 或者,在 DNS 伺服器上設定 DNS 區域,並新增 DNS A 記錄。

如需有關設定您自己的 DNS 伺服器以支援私人端點的詳細資訊,請參閱下列資源:

為 Azure OpenAI 授與受信任 Azure 服務的存取權

您可以授與 Azure OpenAI 的受信任 Azure 服務存取權子集,同時為其他應用程式維護網路規則。 這些受信任的服務接著會使用受控識別來驗證您的 Azure OpenAI 服務。 下表列出如果這些服務的受控識別具有適當的角色指派,則可以存取 Azure OpenAI 的服務。

服務 資源提供者名稱
Azure AI 服務 Microsoft.CognitiveServices
Azure Machine Learning Microsoft.MachineLearningServices
Azure AI 搜尋服務 Microsoft.Search

您可以使用 REST API 建立網路規則例外狀況,以授與對受信任 Azure 服務的網路存取權:


accessToken=$(az account get-access-token --resource https://management.azure.com --query "accessToken" --output tsv)
rid="/subscriptions/<your subscription id>/resourceGroups/<your resource group>/providers/Microsoft.CognitiveServices/accounts/<your Azure AI resource name>"

curl -i -X PATCH https://management.azure.com$rid?api-version=2023-10-01-preview \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $accessToken" \
-d \
'
{
    "properties":
    {
        "networkAcls": {
            "bypass": "AzureServices"
        }
    }
}
'

注意

受信任的服務功能只能使用上述命令行來使用,而且無法使用 Azure 入口網站。

若要撤銷例外狀況,請將 設定 networkAcls.bypassNone

若要確認信任的服務是否已從 Azure 入口網站 啟用,

  1. 使用 Azure OpenAI 資源概觀頁面中的 JSON 檢視

    螢幕快照,顯示 Azure 入口網站 中資源的 JSON 檢視選項。

  2. 在 [API 版本] 下 選擇您最新的 API 版本。 只支援最新的 API 版本。 2023-10-01-preview

    顯示已啟用受信任服務的螢幕快照。

定價

如需價格詳細資料,請參閱 Azure Private Link 價格

下一步