共用方式為


稽核與管理 Azure Machine Learning

當小組在 Azure Machine Learning 進行共同作業時,可能會面臨對資源的設定和組織有不同的需求。 Machine Learning 小組可能希望能靈活地根據共同作業來組織工作區,或根據使用案例的要求來計算叢集的大小。 在這些案例中,如果應用程式小組可以管理自己的基礎結構,才能提升生產力。

身為平台管理員,您可以使用原則來佈置護欄,讓小組能夠管理自己的資源。 Azure 原則有助於稽核和管控資源狀態。 本文說明如何使用適用於 Azure Machine Learning 的稽核控制項和治理做法。

Azure Machine Learning 的原則

Azure 原則是一種管理工具,可協助確保 Azure 資源遵循您的原則。

Azure 原則提供了一組原則,可用於 Azure Machine Learning 的一般案例。 您可以將這些原則定義指派給現有的訂用帳戶,或使用這些原則作為基礎來建立您自己的自訂定義

下表列出了可以使用 Azure Machine Learning 來指派的內建原則。 如需所有 Azure 內建原則的清單,請參閱內建原則

名稱
(Azure 入口網站)
描述 效果 版本
(GitHub)
[預覽]:Azure Machine Learning 模型登錄部署受限,但允許的登錄除外 只在允許的登錄中部署登錄模型,且不受限制。 稽核, 拒絕, 停用 1.0.0-preview
Azure Machine Learning Compute 執行個體應有閒置關機。 閒置關機排程可在預先決定活動期間後的閒置階段關閉計算,來降低成本。 Audit, Deny, Disabled 1.0.0
應重新建立 Azure Machine Learning 計算執行個體以取得最新的軟體更新 請確定 Azure Machine Learning 計算執行個體會在最新的可用作業系統上執行。 藉由使用最新的安全性修補檔來執行,可改善安全性並減少弱點。 如需詳細資訊,請瀏覽 https://aka.ms/azureml-ci-updates/ [parameters('effects')] 1.0.3
Azure Machine Learning Compute 應位於虛擬網路中 Azure 虛擬網路除了為 Azure Machine Learning 計算叢集與執行個體提供子網路、存取控制原則及其他可進一步限制存取的功能之外,也提供增強的安全性與隔離環境。 當計算是以虛擬網路設定時,將不會是公開定址,且只能從虛擬網路中的虛擬機器和應用程式存取。 Audit, Disabled 1.0.1
Azure Machine Learning Compute 應已停用本機驗證方法 停用本機驗證方法,藉由確保 Machine Learning 計算要求 Azure Active Directory 以獨佔方式識別來進行驗證,從而提高安全性。 深入了解:https://aka.ms/azure-ml-aad-policy Audit, Deny, Disabled 2.1.0
應該使用客戶自控金鑰來加密 Azure Machine Learning 工作區 使用客戶自控金鑰來管理 Azure Machine Learning 工作區資料的待用加密。 根據預設,客戶資料會使用服務管理的金鑰進行加密,但通常需要有客戶自控金鑰才能符合法規合規性標準。 客戶自控金鑰可讓您使用由您建立及擁有的 Azure Key Vault 金鑰來加密資料。 您對金鑰生命週期擁有完全的控制權和責任,包括輪替和管理。 深入了解:https://aka.ms/azureml-workspaces-cmk Audit, Deny, Disabled 1.1.0
Azure Machine Learning 工作區應停用公用網路存取 停用公用網路存取,確保 Machine Learning 工作區不會在公用網際網路上公開,藉此改善安全性。 您可改為建立私人端點,以控制工作區的曝光狀況。 深入了解:https://learn.microsoft.com/azure/machine-learning/how-to-configure-private-link?view=azureml-api-2&tabs=azure-portal. Audit, Deny, Disabled 2.0.1
Azure Machine Learning 工作區應啟用 V1LegacyMode 以支援網路隔離回溯相容性 Azure ML 正在 Azure Resource Manager 上轉換至新的 V2 API 平台,您可以使用 V1LegacyMode 參數來控制 API 平台版本。 啟用 V1LegacyMode 參數可讓您將工作區保持在與 V1 相同的網路隔離中,但您將無法使用新的 V2 功能。 建議您在需要將 AzureML 控制平面資料保留在私人網路內時,才開啟 V1 傳統模式。 深入了解:https://aka.ms/V1LegacyMode Audit, Deny, Disabled 1.0.0
Azure Machine Learning 工作區應使用私人連結 Azure Private Link 可讓您將虛擬網路連線到 Azure 服務,而不需要來源或目的地上的公用 IP 位址。 Private Link 平台會透過 Azure 骨幹網路處理取用者與服務之間的連線。 藉由將私人端點對應至 Azure Machine Learning 工作區,可降低資料洩漏風險。 深入了解私人連結:https://docs.microsoft.com/azure/machine-learning/how-to-configure-private-link Audit, Disabled 1.0.0
Azure Machine Learning 工作區應使用使用者指派的受控識別 使用使用者指派的受控識別,管理 Azure ML 工作區的存取權,以及相關聯的資源、Azure Container Registry、KeyVault、儲存體和 App Insights。 根據預設,Azure ML 工作區會使用系統指派的受控識別來存取相關資源。 使用者指派的受控識別可讓您建立身分識別做為 Azure 資源,並維護該身分識別的生命週期。 深入了解:https://docs.microsoft.com/azure/machine-learning/how-to-use-managed-identities?tabs=python Audit, Deny, Disabled 1.0.0
設定 Azure Machine Learning 計算以停用本機驗證方法 停用位置驗證方法,讓您的 Machine Learning 計算要求 Azure Active Directory 識別以獨佔方式來進行驗證。 深入了解:https://aka.ms/azure-ml-aad-policy 修改、停用 2.1.0
設定 Azure Machine Learning 工作區以使用私人 DNS 區域 使用私人 DNS 區域來覆寫私人端點的 DNS 解析。 私人 DNS 區域連結至您的虛擬網路,以針對 Azure Machine Learning 工作區進行解析。 深入了解:https://docs.microsoft.com/azure/machine-learning/how-to-network-security-overview DeployIfNotExists, Disabled 1.1.0
設定 Azure Machine Learning 工作區以停用公用網路存取 停用 Azure Machine Learning 工作區的公用網路存取,讓您的工作區無法透過公用網際網路存取。 這有助於保護工作區免於遭受資料洩漏的風險。 您可改為建立私人端點,以控制工作區的曝光狀況。 深入了解:https://learn.microsoft.com/azure/machine-learning/how-to-configure-private-link?view=azureml-api-2&tabs=azure-portal 修改、停用 1.0.3
使用私人端點設定 Azure Machine Learning 工作區 私人端點會將您的虛擬網路連線到 Azure 服務,而不需要來源或目的地上的公用 IP 位址。 藉由將私人端點對應至 Azure Machine Learning 工作區,您可以降低資料洩漏風險。 深入了解私人連結:https://docs.microsoft.com/azure/machine-learning/how-to-configure-private-link DeployIfNotExists, Disabled 1.0.0
將 Azure Machine Learning 工作區的診斷設定設定為 Log Analytics 工作區 在建立或更新任何缺少此診斷設定的 Azure Machine Learning 工作區時,請將 Azure Machine Learning 工作區的診斷設定部署至 Log Analytics 工作區的串流資源記錄。 DeployIfNotExists, Disabled 1.0.1
應啟用 Azure Machine Learning 工作區中的資源記錄 資源記錄可在發生安全性事件或網路遭到損害時,重新建立活動線索以供調查之用。 AuditIfNotExists, Disabled 1.0.1

您可以在不同範圍 (例如訂用帳戶或資源群組層級) 上設定原則。 如需詳細資訊,請參閱 Azure 原則文件

指派內建原則

若要檢視與 Azure Machine Learning 相關的內建原則定義,請使用下列步驟:

  1. 移至 Azure 入口網站中的 Azure 原則
  2. 選取 [定義]
  3. 對於 [類型],請選取 [內建]。 對於 [類別],請選取 [機器學習]

您可以從這裡選取原則定義來加以檢視。 在檢視定義時,您可以使用指派連結將原則指派給特定範圍,並設定原則的參數。 如需詳細資訊,請參閱使用 Azure入口網站建立原則指派,以識別不符合規範的資源

還可以使用 Azure PowerShellAzure CLI範本來指派原則。

條件式存取原則

若要控制誰可以存取您的 Azure Machine Learning 工作區,請使用 Microsoft Entra 條件式存取。 若要針對 Azure Machine Learning 工作區使用條件式存取,請將條件式存取原則指派至名為 Azure Machine Learning 的應用程式。 應用程式識別碼為 0736f41a-0425-bdb5-1563eff02385

使用登陸區域啟用自助服務

登陸區域是一種架構模式,在設定 Azure 環境時負責規模調整、治理、安全性和生產力。 資料登陸區域是由管理員設定的環境,應用程式小組會使用此環境來託管資料和分析工作負載。

登陸區域的用途是確保小組在 Azure 環境中開始作業時,所有基礎結構設定工作都已完成。 比方說,安全性控制項已設定為符合組織標準,而且已設定網路連線能力。

當您使用登陸區域模式時,可以讓機器學習小組能夠以自助方式部署及管理自己的資源。 藉由使用 Azure 原則作為系統管理員,可以稽核和管理 Azure 資源以滿足合規性。

Azure Machine Learning 可以與雲端採用架構資料管理和分析案例中的資料登陸區域整合。 此參考實作提供最佳化的環境,可將機器學習工作負載遷移至 Azure Machine Learning 中,並包含預先設定的原則。

設定內建原則

計算執行個體應處於閒置關機狀態

此原則可控制 Azure Machine Learning 計算執行個體是否應該啟用閒置關機。 閒置關機會在指定的一段時間內處於閒置狀態時自動停止計算執行個體。 此原則有助於節省成本,以及確保不必要地使用資源。

若要設定此原則,請將 effect 參數設定為 AuditDenyDisabled。 如果設定為 Audit,則可以建立未啟用閒置關機的計算執行個體,並在活動記錄中建立警告事件。

應重新建立計算執行個體以取得軟體更新

控制是否應稽核 Azure Machine Learning 計算執行個體,以確保其正在執行最新的可用軟體更新。 此原則有助於確保計算執行個體正在執行最新的軟體更新,以維護安全性和效能。 如需詳細資訊,請參閱 Azure Machine Learning 的弱點管理

若要設定此原則,請將 effect 參數設定為 AuditDisabled。 如果設定為 Audit,則計算未執行最新的軟體更新時,就會在活動記錄中建立警告事件。

計算叢集和執行個體應位於虛擬網路中

控制虛擬網路後方的計算叢集和執行個體資源稽核。

若要設定此原則,請將 effect 參數設定為 AuditDisabled。 如果設定為 Audit,則可以建立未在虛擬網路後方設定的計算,並在活動記錄中建立警告事件。

計算應已停用本機驗證方法。

控制 Azure Machine Learning 計算叢集或執行個體是否應該停用 本機驗證 (SSH)。

若要設定此原則,請將 effect 參數設定為 AuditDenyDisabled。 如果設定為 Audit,則可以建立已啟用 SSH 的計算,並在活動記錄中建立警告事件。

如果原則設定為 Deny,則除非停用 SSH,否則無法建立計算。 嘗試建立啟用 SSH 的計算會導致錯誤。 此錯誤也會記錄在活動記錄中。 此錯誤中會傳回原則識別碼。

工作區應使用客戶管理的金鑰進行加密

控制是否應使用客戶自控金鑰將工作區加密,或使用 Microsoft 管理的金鑰來將計量和中繼資料加密。 如需如何使用客戶自控金鑰的詳細資訊,請參閱資料加密文章的 Azure Cosmos DB 一節。

若要設定此原則,請將 effect 參數設定為 AuditDeny。 如果設定為 Audit,您可以建立不使用客戶自控金鑰的工作區,並在活動記錄中建立警告事件。

如果原則設定為 Deny,則除非指定客戶自控金鑰,否則您無法建立工作區。 嘗試建立不使用客戶自控金鑰的工作區會產生類似 Resource 'clustername' was disallowed by policy 的錯誤,並在活動記錄中建立錯誤。 原則識別碼也會在此錯誤中傳回。

設定工作區以停用公用網路存取

控制工作區是否應停用來自公用網際網路的網路存取。

若要設定此原則,請將 effect 參數設定為 AuditDenyDisabled。 如果設定為 Audit,您可以建立使用公用存取的工作區,並在活動記錄中建立警告事件。

如果原則設定為 Deny,則您無法建立允許從公用網際網路進行網路存取的工作區。

工作區應啟用 V1LegacyMode 以支援網路隔離回溯相容性

控制工作區是否應啟用 V1LegacyMode 以支援網路隔離回溯相容性。 如果您要將 Azure Machine Learning 控制平面資料保留在私人網路內,則此原則很有用。 如需詳細資訊,請參閱使用我們的新 API 平台進行網路隔離變更

若要設定此原則,請將 effect 參數設定為 AuditDenyDisabled。 如果設定為 Audit,您可以建立不啟用 V1LegacyMode 的情況下建立工作區,並在活動記錄中建立警告事件。

如果原則設定為 Deny,則除非它啟用 V1LegacyMode,否則無法建立工作區。

控制工作區是否應使用 Azure Private Link 與 Azure 虛擬網路進行通訊。 如需使用私人連結的詳細資訊,請參閱設定 Azure Machine Learning 工作區的私人端點

若要設定此原則,請將 effect 參數設定為 AuditDeny。 如果設定為 Audit,您可以建立不使用私人連結的工作區,並在活動記錄中建立警告事件。

如果原則設定為 Deny,則除非使用私人連結,否則無法建立工作區。 嘗試建立沒有私人連結的工作區會導致錯誤。 此錯誤也會記錄在活動記錄中。 此錯誤中會傳回原則識別碼。

工作區應使用使用者指派的受控識別

控制是否使用系統指派的受控識別 (預設) 或使用者指派的受控識別來建立工作區。 工作區的受控識別會用來存取相關聯的資源,例如 Azure 儲存體、Azure Container Registry、Azure Key Vault 和 Azure Application Insights。 如需詳細資訊,請參閱設定 Azure Machine Learning 與其他服務之間的驗證

若要設定此原則,請將 effect 參數設定為 AuditDenyDisabled。 如果設定為 Audit,即使不指定使用者指派的受控識別,您也可以建立工作區。 將會使用系統指派的身分識別,並在活動記錄中建立警告事件。

如果原則設定為 Deny,則除非在建立程序期間提供使用者指派的身分識別,否則無法建立工作區。 嘗試建立工作區但不提供使用者指派的身分識別會導致錯誤。 此錯誤也會記錄到活動記錄檔中。 此錯誤中會傳回原則識別碼。

設定計算以修改/停用本機驗證

此原則修改任何 Azure Machine Learning 計算叢集或執行個體建立要求,以停用本機驗證 (SSH)。

若要設定此原則,請將效果參數設定為 ModifyDisabled。 如果設定 [修改],在原則套用範圍內建立的任何計算叢集或執行個體,都會自動停用本機驗證。

設定工作區以使用私人 DNS 區域

此原則將工作區設定為使用私人 DNS 區域,並覆寫私人端點的預設 DNS 解析。

若要設定此原則,請將效果參數設定為 DeployIfNotExists。 將 privateDnsZoneId 設定為待用私人 DNS 區域的 Azure Resource Manager 識別碼。

設定工作區以停用公用網路存取

設定工作區以停用來自公用網際網路的網路存取。 停用公用網路存取有助於保護工作區免於遭受資料外洩的風險。 您可以改為透過建立私人端點來存取工作區。 如需詳細資訊,請參閱設定 Azure Machine Learning 工作區的私人端點

若要設定此原則,請將效果參數設定為 ModifyDisabled。 如果設定為 [修改],在原則適用範圍內建立的任何工作區都會自動停用公用網路存取。

使用私人端點設定工作區

將工作區設定為在 Azure 虛擬網路的指定子網路內建立私人端點。

若要設定此原則,請將效果參數設定為 DeployIfNotExists。 將 privateEndpointSubnetID 設定為子網路的 Azure Resource Manager 識別碼。

設定診斷工作區以將記錄傳送至記錄分析工作區

設定 Azure Machine Learning 工作區的診斷設定,以將記錄傳送至 Log Analytics 工作區。

若要設定此原則,請將 effect參數設定為 DeployIfNotExistsDisabled。 如果設定為 DeployIfNotExists,原則會建立診斷設定,以將記錄傳送至 Log Analytics 工作區 (如果記錄不存在)。

應啟用工作區中的資源記錄

稽核 Azure Machine Learning 工作區是否已啟用資源記錄。 資源記錄提供有關工作區中對資源執行的操作的詳細資訊。

若要設定此原則,請將 effect參數設定為 AuditIfNotExistsDisabled。 如果設定為 AuditIfNotExists,若沒有為工作區啟用資源記錄,則原則會進行稽核。

建立自訂定義

當您需要為組織建立自訂原則時,您可以使用 Azure 原則定義結構 (部分機器翻譯) 來建立您自己的定義。 您可以使用 Azure 原則 Visual Studio Code 延伸模組 (英文) 來撰寫及測試您的原則。

若要探索您可以在定義中使用的原則別名,請使用下列 Azure CLI 命令來列出 Azure Machine Learning 的別名:

az provider show --namespace Microsoft.MachineLearningServices --expand "resourceTypes/aliases" --query "resourceTypes[].aliases[].name"

若要探索特定別名允許的值,請瀏覽 Azure Machine Learning REST API 參考 (部分機器翻譯)。

如需有關如何建立自訂原則的教學課程 (非 Azure Machine Learning 特定),請瀏覽建立自訂原則定義

範例:封鎖無伺服器 Spark 計算作業

{
    "properties": {
        "displayName": "Deny serverless Spark compute jobs",
        "description": "Deny serverless Spark compute jobs",
        "mode": "All",
        "policyRule": {
            "if": {
                "allOf": [
                    {
                        "field": "Microsoft.MachineLearningServices/workspaces/jobs/jobType",
                        "in": [
                            "Spark"
                        ]
                    }
                ]
            },
            "then": {
                "effect": "Deny"
            }
        },
        "parameters": {}
    }
}

範例:針對受控計算設定無公用 IP

{
    "properties": {
        "displayName": "Deny compute instance and compute cluster creation with public IP",
        "description": "Deny compute instance and compute cluster creation with public IP",
        "mode": "all",
        "parameters": {
            "effectType": {
                "type": "string",
                "defaultValue": "Deny",
                "allowedValues": [
                    "Deny",
                    "Disabled"
                ],
                "metadata": {
                    "displayName": "Effect",
                    "description": "Enable or disable the execution of the policy"
                }
            }
        },
        "policyRule": {
            "if": {
                "allOf": [
                  {
                    "field": "type",
                    "equals": "Microsoft.MachineLearningServices/workspaces/computes"
                  },
                  {
                    "allOf": [
                      {
                        "field": "Microsoft.MachineLearningServices/workspaces/computes/computeType",
                        "notEquals": "AKS"
                      },
                      {
                        "field": "Microsoft.MachineLearningServices/workspaces/computes/enableNodePublicIP",
                        "equals": true
                      }
                    ]
                  }
                ]
              },
            "then": {
                "effect": "[parameters('effectType')]"
            }
        }
    }
}