在 Microsoft Foundry 中停用預覽功能

限制 Microsoft Foundry 的預覽功能,讓生產環境專注於普遍可用的功能。 本文涵蓋兩種方法:

  • Azure 標籤 隱藏 Foundry 入口網站中的預覽介面(目前及經典入口網站)。
  • 自訂 RBAC 角色會在 API 層級阻擋特定的預覽操作。

在入口網站層級隱藏時,請使用標籤;當您需要封鎖特定作業或權限時,請使用自訂 RBAC 角色。

先決條件

  • 一個 Foundry 資源與專案。
  • 在 Azure 中,允許在你的目標範圍新增或編輯標籤。 例如, 貢獻者標籤貢獻者。
  • 擁有在指定範圍內建立自訂角色權限的 Azure 訂用帳戶 (例如,擁有者角色或使用者存取管理員角色)。
  • 在您指派存取權的範圍內指派角色的權限 (例如,角色型存取控制管理員角色或使用者存取管理員角色)。
  • 如果你從命令列建立角色,Azure CLI 會安裝並登入。 更多資訊請參見 安裝 Azure CLI
  • 存取Azure入口網站

貼標籤

在你組織所管轄的範圍內套用預覽功能抑制標籤。

重要

使用精確的標籤鍵與值:

  • 標籤鍵: AZML_DISABLE_PREVIEW_FEATURE
  • 標籤值:true

在符合你治理需求的範圍內套用標籤:

  • 訂用帳戶,用於全組織治理。
  • 資源群組 涵蓋群組中所有資源。
  • Foundry 資源,用於細微控制。

請用你訂閱、資源群組或 Foundry 資源的完整資源 ID 來替換 <resource-id>

az tag update --resource-id <resource-id> --operation merge --tags AZML_DISABLE_PREVIEW_FEATURE=true

要找到 Foundry 資源的識別碼:

az resource show --name <resource-name> --resource-group <resource-group> --resource-type "Microsoft.CognitiveServices/accounts" --query id --output tsv

移除標籤以重新啟用預覽功能

若要恢復預覽功能,請移除該 AZML_DISABLE_PREVIEW_FEATURE 標籤。

az tag update --resource-id <resource-id> --operation delete --tags AZML_DISABLE_PREVIEW_FEATURE=true

移除標籤後,請重新整理 Foundry 入口網站,或登出後重新登入。 預覽功能會在幾分鐘內重新出現。

在兩個入口網站體驗中驗證隱藏狀態

標籤儲存後,給幾分鐘傳播時間,然後驗證兩種經驗的行為。

  1. 開啟Microsoft Foundry
  2. 打開你標記的專案。
  3. 確認僅預覽的使用者介面功能是隱藏的。
    • 在經典入口網站中,右上角的預覽功能工具被停用。
    • 在新入口網站中,你不會看到任何 預覽 標籤,因為預覽功能將不再可見。
  4. 透過 New Foundry 在新體驗與經典體驗間切換,並驗證相同的行為。

預期結果:預覽功能隱藏於新舊 Foundry 入口網站體驗中。

排除抑制問題

當抑制不如預期時,請使用以下表格。

症狀 成因 解決方法
套用標籤後,預覽功能仍然會顯示。 標籤鍵或值錯誤。 確認標籤鍵正確 AZML_DISABLE_PREVIEW_FEATURE 且值為 true (大小寫區分)。 再儲存一次標籤。
標籤會被套用,但只有部分範圍會被抑制。 標籤的適用範圍比預期更狹窄。 確認標籤是否套用在預期的治理範圍(訂閱、資源群組或資源)。 如果需要,可以應用在更廣泛的範圍。
預覽功能會在幾分鐘後重新出現。 瀏覽器會話正在使用快取狀態。 登出再重新登入,或清除瀏覽器快取並刷新 Foundry 入口網站。
無法新增或編輯標籤。 在該範圍內,你的帳號不具標籤權限。 確認你在目標範圍中擁有 貢獻者標籤貢獻者 角色。
驗證範圍、標籤與權限後,預覽功能仍會顯示。 可能是傳播延遲或產品錯誤。 等幾分鐘讓它繁殖。 如果問題依舊,請提出支援申請。

使用自訂 RBAC 角色封鎖預覽功能

你可以透過建立一個自訂的 Azure 角色,排除對應權限,然後將該角色指派給使用者,來阻擋特定預覽功能。

因為你無法修改內建角色,你只能建立一個 自訂角色 ,使用 notDataActions (或 notActions 用於控制平面功能如追蹤)來排除你想封鎖的權限。

下表總結了你可以封鎖的預覽功能以及要排除的權限類型。

預覽功能 資源提供者路徑 權限類型 排斥場
代理服務 Microsoft.CognitiveServices/accounts/AIServices/agents/* 資料操作 notDataActions
內容理解 Microsoft.CognitiveServices/accounts/MultiModalIntelligence/* 資料操作 notDataActions
微調 Microsoft.CognitiveServices/accounts/OpenAI/fine-tunes/* 及相關路徑 資料操作 notDataActions
評價 Microsoft.CognitiveServices/accounts/AIServices/evaluations/* 資料操作 notDataActions
內容安全 Microsoft.CognitiveServices/accounts/ContentSafety/* 資料操作 notDataActions
追蹤 Microsoft.Insights/* 控制平面動作 notActions

建立一個自訂角色來阻擋預覽功能

本節將說明如何建立自訂角色定義並將其指派給使用者。 範例中阻擋了代理服務,但你可以將本文功能 區塊 中的任何資料動作替換。

步驟 1:定義角色 JSON

建立一個包含以下內容的 custom-role.json JSON 檔案。 將 <subscription-id> 替換成你的 Azure 訂閱 ID,並將你想封鎖的資料動作加入 notDataActions

{
  "properties": {
    "roleName": "Foundry custom role (preview features blocked)",
    "description": "Custom role that excludes specific Foundry preview features.",
    "assignableScopes": [
      "/subscriptions/<subscription-id>"
    ],
    "permissions": [
      {
        "actions": [
          "Microsoft.CognitiveServices/*/read",
          "Microsoft.Authorization/*/read"
        ],
        "notActions": [],
        "dataActions": [
          "Microsoft.CognitiveServices/accounts/AIServices/*"
        ],
        "notDataActions": [
          "Microsoft.CognitiveServices/accounts/AIServices/agents/write",
          "Microsoft.CognitiveServices/accounts/AIServices/agents/read",
          "Microsoft.CognitiveServices/accounts/AIServices/agents/delete"
        ]
      }
    ]
  }
}

提示

如果您複製現有角色或在dataActions中使用萬用字元權限,請將預覽功能資料動作新增至notDataActions,以讓角色排除這些動作。 對於追蹤,請使用 notActions 代替,因為追蹤使用控制平面動作。

步驟二:創建角色

az role definition create --role-definition custom-role.json

步驟三:指派角色

az role assignment create \
    --role "Foundry custom role (preview features blocked)" \
    --assignee "<user-email-or-object-id>" \
    --scope "/subscriptions/<subscription-id>"

步驟四:確認角色分配

確認自訂角色排除了預期的權限。

列出使用者的角色分配並確認自訂角色是否顯示:

az role assignment list --assignee "<user-email-or-object-id>" --output table

查看自訂角色定義以確認 notDataActions 包含預期的資料動作:

az role definition list --name "Foundry custom role (preview features blocked)" --output json

預覽功能資料動作

以下每個章節列出預覽功能的權限。 將您要封鎖的資料動作新增至自訂角色定義中的 notDataActions,但 Tracing 除外,其會使用 notActions 中的控制平面動作。

代理服務

將這些資料動作加入至notDataActions的自訂角色定義中:

  • Microsoft.CognitiveServices/accounts/AIServices/agents/write
  • Microsoft.CognitiveServices/accounts/AIServices/agents/read
  • Microsoft.CognitiveServices/accounts/AIServices/agents/delete

若要以單一條目阻擋所有代理服務操作,請使用通配符 Microsoft.CognitiveServices/accounts/AIServices/agents/*

內容理解

將這些資料動作加入至notDataActions的自訂角色定義中:

  • Microsoft.CognitiveServices/accounts/MultiModalIntelligence/analyzers/read
  • Microsoft.CognitiveServices/accounts/MultiModalIntelligence/analyzers/write
  • Microsoft.CognitiveServices/accounts/MultiModalIntelligence/analyzers/delete
  • Microsoft.CognitiveServices/accounts/MultiModalIntelligence/classifiers/read
  • Microsoft.CognitiveServices/accounts/MultiModalIntelligence/classifiers/write
  • Microsoft.CognitiveServices/accounts/MultiModalIntelligence/classifiers/delete
  • Microsoft.CognitiveServices/accounts/MultiModalIntelligence/batchAnalysisJobs/*

如果團隊在 Foundry 裡標記文件,也要封鎖資料標籤操作。 在 Azure 入口網站的自訂角色編輯器中,搜尋 labelingProjects,在 Microsoft.CognitiveServices 資源提供者中以查詢可用的操作,例如:

  • Microsoft.CognitiveServices/accounts/MultiModalIntelligence/labelingProjects/read
  • Microsoft.CognitiveServices/accounts/MultiModalIntelligence/labelingProjects/write
  • Microsoft.CognitiveServices/accounts/MultiModalIntelligence/labelingProjects/delete

請確認Azure入口網站中精確的 labelingProjects 資料動作,因為隨著功能演進,可用的操作可能會改變。

微調

進行微調時會在 Microsoft.CognitiveServices/accounts/OpenAI/ 下使用多個資料操作路徑。 在自訂角色定義中加入你想阻擋的 notDataActions 每條路徑:

  • Microsoft.CognitiveServices/accounts/OpenAI/fine-tunes/*
  • Microsoft.CognitiveServices/accounts/OpenAI/files/*
  • Microsoft.CognitiveServices/accounts/OpenAI/uploads/*
  • Microsoft.CognitiveServices/accounts/OpenAI/stored-completions/*
  • Microsoft.CognitiveServices/accounts/OpenAI/evals/*
  • Microsoft.CognitiveServices/accounts/OpenAI/models/*

如果團隊執行 RLHF 任務,也可以選擇新增:

  • Microsoft.CognitiveServices/accounts/OpenAI/1p-jobs/*

重要

每條路徑都是獨立的資料動作範圍。 fine-tunes/*通配符僅匹配fine-tunes/下的運算。 若要完全封鎖微調,請包含所有列出的路徑。

追蹤

重要

追蹤使用 Azure 監視器,這是一個控制平面服務。 本節列出的權限是 動作,不是資料動作。 把他們加到 notActions (不是 notDataActions)你的自訂角色定義裡。

在你的自訂角色定義中加入以下動作 notActions

  • Microsoft.Insights/alertRules/read
  • Microsoft.Insights/diagnosticSettings/read
  • Microsoft.Insights/logDefinitions/read
  • Microsoft.Insights/metricdefinitions/read
  • Microsoft.Insights/metrics/read

阻擋這些讀取動作會阻止使用者在 Foundry 入口網站中查看追蹤窗格。 需要追蹤存取的使用者需要一個包含Microsoft.Insights讀取動作的獨立角色,例如已連接的 Application Insights 資源中的讀取者角色。

評估

將這些資料動作加入至notDataActions的自訂角色定義中:

  • Microsoft.CognitiveServices/accounts/AIServices/evaluations/write
  • Microsoft.CognitiveServices/accounts/AIServices/evaluations/read
  • Microsoft.CognitiveServices/accounts/AIServices/evaluations/delete

內容安全

將這些資料動作加入至notDataActions的自訂角色定義中:

  • Microsoft.CognitiveServices/accounts/ContentSafety/*

若要僅阻擋特定的內容安全操作而非所有操作,請在Azure入口網站自訂角色編輯器中搜尋 ContentSafety,並選擇你想排除的個別資料動作。

測試並排除 RBAC 問題

症狀 成因 解決方法
使用者仍可使用被封鎖的功能。 角色指派可能尚未傳遞,或者使用者有其他角色賦予被封鎖的權限。 等幾分鐘讓它繁殖。 請檢查所有帶有 az role assignment list --assignee "<user>"的使用者角色分配。 移除任何授予被封鎖資料動作的衝突角色。
自訂角色建立會因「無效資料動作」而失敗。 資料動作路徑可能拼錯,或資源提供者未被註冊。 請在 Azure 入口網站自訂角色編輯器中驗證資料動作路徑。 請確定Microsoft.CognitiveServices資源提供者已在您的 Azure 訂用帳戶中註冊。
在新增 到 notDataActions後,追蹤權限不會被封鎖。 追蹤使用控制平面動作(Microsoft.Insights),而非資料動作。 將角色定義中的 Microsoft.Insights 條目從 notDataActions 移到 notActions