ACR 任务 networkRuleBypassAllowedForTasks 设置是引入的新策略设置,允许客户选择加入网络绕过任务。 如 ACR 受信任的服务中所述,某些用户需要对容器注册表进行网络限制访问。 此网络限制允许某些服务或标识根据定义的规则访问绕过网络控制。
为什么会发生更改?
ACR 用户可以将任务配置为使用系统分配的托管标识(SAMI)通过容器注册表进行身份验证。 但是,当注册表与网络隔离时,注册表所有者可以指定“允许受信任的Microsoft服务访问此容器注册表”。 ACR 任务已不再作为 受信任的服务列出。 由于注册表所有者可以启用受信任的服务设置以继续允许作为受信任服务的任务,因此,默认情况下,新策略设置会禁用此设置,以确保客户工作流保持安全。
更改何时生效?
有两个阶段:
2025 年 5 月 16 日,将引入调用
networkRuleBypassAllowedForTasks的注册表策略设置,并且不会中断现有工作流。从 2025 年 6 月 1 日起,默认网络绕过策略行为将更改。 如果新设置未启用,则默认情况下使用 System-Assigned 托管身份 (SAMI) 令牌的任务将无法进行网络旁路,并需要明确配置以恢复其功能。 依赖网络绕过功能用于容器注册表任务的客户,但未显式设置新策略,就会遇到
403 forbidden errors。
Important
对使用 User-Assigned 标识的客户没有影响
必需措施:从 2025 年 6 月 1 日起,新的任务工作流程需要采用新的网络绕过策略。 若要避免任何潜在问题,请确保将配置更新为使用此新功能或使用代理池。 依赖网络绕过功能用于容器注册表任务的客户,但未显式设置新策略,就会遇到 403 forbidden errors。 或者,可以使用容器注册表代理池功能来限制访问。
启用和禁用网络规则绕过策略设置
若要启用或禁用新策略设置,请运行相关命令和所需的变量,因为它与你的方案相关。
Enable
registry="myregistry"
resourceGroup="myresourcegroup"
az resource update \
--namespace Microsoft.ContainerRegistry \
--resource-type registries \
--name $registry \
--resource-group $resourceGroup \
--api-version 2025-05-01-preview \
--set properties.networkRuleBypassAllowedForTasks=true
Disable
registry="myregistry"
resourceGroup="myresourcegroup"
az resource update \
--namespace Microsoft.ContainerRegistry \
--resource-type registries \ --name $registry \
--resource-group $resourceGroup \
--api-version 2025-05-01-preview \
--set properties.networkRuleBypassAllowedForTasks=false
Check Status
registry="myregistry"
resourceGroup="myresourcegroup"
az resource show \
--namespace Microsoft.ContainerRegistry \
--resource-type registries \
--name $registry \
--resource-group $resourceGroup \
--api-version 2025-05-01-preview \
--query properties.networkRuleBypassAllowedForTasks
Customer Scenarios
下面是一些最适合你的用例的方案。 可以使用 Azure CLI 或 ARM 模板完成这些步骤。 以下示例重点介绍 Azure CLI。
方案 1:选择加入以启用新的网络绕过策略设置
registry="myregistry"
resourceGroup="myresourcegroup"
az resource update \
--namespace Microsoft.ContainerRegistry \
--resource-type registries \ --name $registry \
--resource-group $resourceGroup \
--api-version 2025-05-01-preview \
--set properties.networkRuleBypassAllowedForTasks=true
通过运行 az acr build、az acr run 或 az acr task run 命令并查看 流式日志,验证任务是否可以继续成功绕过网络限制。
Important
为 ACR 任务启用新的网络绕过策略时,请务必了解使用系统分配的托管标识(SAMI)的含义。 此标识允许 ACR 任务安全地进行身份验证,而无需在工作流中嵌入凭据。 ACR 任务使用的 SAMI 令牌是一个敏感凭据。 如果处理不当(如写入日志),可能会截获和滥用。 保护令牌的最佳做法包括:
- 避免将令牌输出到日志或以任何方式公开令牌。
- 实施严格的日志记录清洁,并监视意外令牌泄漏。
- 定期审核任务定义和日志以确保合规。
方案 2:不采取任何作(默认行为)来启用新的网络绕过策略设置
阶段 1: ACR 继续遵循现有 networkRuleBypassAllowed 设置,直到 2025 年 5 月 16 日。
阶段 2:2025 年 6 月 1 日之后,如果未networkRuleBypassAllowedForTasks显式设置设置,则默认拒绝任务的网络旁路,从而导致403 errors需要网络绕过的任务。
方案 3:在本地使用 az acr purge 进行映像清理
不想选择加入新策略设置且不使用网络旁路的用户可以使用命令在本地 az acr purge 管理其 ACR 清理任务。 为此,他们可以从 Azure ACR CLI GitHub 下载 ACR CLI 二进制文件,并在自己的计算机上执行命令。 这样,他们就可以从注册表中删除不需要或过时的映像,而无需依赖 ACR 任务或更改其当前配置。 在本地运行清理可确保所有操作在受信任的环境(客户托管信任边界)内进行,避免对规避网络的任何依赖关系。
方案 4:在自承载环境中生成和管理映像
希望在不选择的情况下生成容器映像或管理注册表的用户可以使用自承载环境。 通过在有权直接访问 ACR 注册表的代理或计算机上运行 Docker 或容器运行时命令(例如 docker build ,和 docker push),可以安全地执行这些任务。 此方法免去了对 ACR 任务和/或网络旁路的需求,因为操作完全在其基础设施内进行,从而完全控制其工作流(客户负责信任边界管理)。
帮助和支持
如果你有支持计划并需要技术帮助,请打开 Azure 门户 并选择页面顶部的问号图标。