你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
将 Azure AI Foundry(以前已知的 Azure AI 服务)和 Azure OpenAI 中的模型与 Azure AI Foundry 配合使用时,可能需要使用自定义策略来控制哪些 类型的部署 选项可供用户使用,或者哪些特定模型可供用户部署。 本文介绍如何使用 Azure Policies 创建策略来控制模型部署。
提示
本文中的步骤适用于 Foundry 项目和基于中心的项目。
先决条件
- Azure 订阅。 如果没有 Azure 订阅,请在开始之前创建一个免费帐户。
- 创建和分配策略的权限。 若要创建和分配策略,你必须是 Azure 订阅或资源组级别的所有者或资源策略参与者。
- 熟悉 Azure Policy。 有关详细信息,请参阅什么是 Azure Policy?。
创建自定义策略
按照以下步骤创建并分配用于控制模型部署的示例自定义策略:
在 Azure 门户中,从页面左侧选择“策略”。 也可以在页面顶部的搜索栏中搜索“策略”。
在 Azure Policy 仪表板左侧,选择“编写”、“定义”,然后从页面顶部选择“+ 策略定义”。
在“策略定义”窗体中使用以下值:
- 定义位置:选择要在其中存储策略定义的订阅或管理组。
- 名称:为策略定义输入唯一的名称。 例如,
Custom allowed Azure AI services and Azure OpenAI models
。 - 说明:输入策略定义的说明。
- 类别:可以创建新类别,也可以使用现有类别。 例如“AI 模型治理”。
在策略规则上,以 JSON 格式输入策略规则详细信息。 选择比较适用于你的用例的方案:
通过以下策略,可以控制哪些特定模型和版本可用于部署。 可以根据需求在不同级别强制实施此策略。
{ "mode": "All", "policyRule": { "if": { "allOf": [ { "field": "type", "equals": "Microsoft.CognitiveServices/accounts/deployments" }, { "not": { "value": "[concat(field('Microsoft.CognitiveServices/accounts/deployments/model.name'), ',', field('Microsoft.CognitiveServices/accounts/deployments/model.version'))]", "in": "[parameters('allowedModels')]" } } ] }, "then": { "effect": "deny" } }, "parameters": { "allowedModels": { "type": "Array", "metadata": { "displayName": "Allowed AI models", "description": "The list of allowed models to be deployed." } } } }
提示
Azure AI 服务最初名为“Azure 认知服务”。 此名称仍由 Azure 在内部使用,例如此自定义策略中显示了
Microsoft.CognitiveServices
值。 Azure OpenAI 是 Azure AI 服务的一部分,因此此策略也适用于 Azure OpenAI 模型。选择“保存”以保存策略定义。 保存后,你将进入策略定义的概述页面。
在策略定义的概述页面中,选择“分配策略”以分配策略定义。
在“分配策略”页面上,在“基本信息”选项卡中使用以下值:
- 范围:选择策略的分配范围。 范围可以是管理组、订阅或资源组。
- 策略定义:此字段中已预先填充了你先前创建的策略定义的标题。
- 分配名称:为分配输入唯一的名称。
- 策略执行:确保“策略执行”字段设置为“已启用”。 如果未启用,则不会执行该策略。
选择页面底部的“下一步”,或选择页面顶部的“参数”选项卡。
配置策略的参数(如果有):
在“参数”选项卡中,将“允许的 AI 模型”设置为你要允许的模型列表。 该列表应为模型名称和已批准版本的逗号分隔列表,并括在方括号中。 例如,
["gpt-4,0613", "gpt-35-turbo,0613"]
。提示
可以在 Azure AI Foundry 模型目录中找到模型名称及其版本。 选择要查看详细信息的模型,然后在标题中复制模型名称及其版本。
(可选)选择页面顶部的“不合规消息”选项卡,然后设置不合规的自定义消息。
选择“查看 + 创建”选项卡并验证策略分配是否正确。 准备就绪后,选择“创建”以分配策略。
通知您的开发人员该策略已实施。 如果他们尝试部署不在允许模型列表中的模型,他们会收到错误消息。
验证策略分配
若要验证策略是否已分配,请导航到 Azure 门户中的“策略”,然后在“编写”下选择“分配”。 应该能看到策略列表。
监测合规性
若要监视对策略的遵从性,请执行以下步骤:
在 Azure 门户中,从页面左侧选择“策略”。 也可以在页面顶部的搜索栏中搜索“策略”。
在 Azure Policy 仪表板左侧,选择“合规性”。 每项策略分配均与合规性状态一起列出。 若要查看更多详细信息,请选择该策略分配。 以下示例显示了阻止全局标准类型的部署的策略的符合性报告。
更新策略分配
若要用新模型更新现有模型的策略分配,请执行以下步骤:
- 在 Azure 门户中,从页面左侧选择“策略”。 也可以在页面顶部的搜索栏中搜索“策略”。
- 在 Azure Policy 仪表板左侧,选择“分配”并找到现有的策略分配。 选择该分配旁边的省略号 (...),然后选择“编辑分配”。
- 在“参数”选项卡中,更新新模型的“允许的模型”参数。
- 在“检查 + 保存”选项卡中,选择“保存”以更新策略分配。
最佳做法
- 精细范围定义:在适当的范围内分配策略,在控制能力与灵活性之间实现平衡。 例如,在订阅级别应用策略可以控制订阅中的所有资源,在资源组级别应用策略可以控制特定组中的资源。
- 策略命名:对策略分配使用一致的命名约定,以便更轻松地识别策略的用途。 在名称中包含用途和范围等信息。
- 文档记录:保留策略分配和配置的记录以用于审核目的。 记录一段时间内对策略所做的任何更改。
- 定期评审:定期评审策略分配,确保其符合组织的要求。
- 测试:在将策略应用于生产资源之前,先在非生产环境中对其进行测试。
- 沟通:确保开发人员知道现行的策略,并了解其对开发人员工作的影响。