禁用 ARM 身份验证模板
注册表用户使用 ACR 进行身份验证时使用 Azure AD 令牌。 默认情况下,Azure 容器注册表 (ACR) 接受具有 Azure 资源管理器 (ARM) 受众范围的 Azure AD 令牌,该令牌是用于管理 Azure 资源的控制平面管理层。
通过禁用 ARM 受众令牌并强制实施 ACR 受众令牌,可以在身份验证过程中通过缩小可接受令牌的范围来增强容器注册表的安全性。
使用 ACR 受众令牌强制实施时,在注册表身份验证和登录过程中,仅接受受众范围专为 ACR 设置的 Azure AD 令牌。 这意味着以前接受的 ARM 受众令牌已失效,无法用于注册表身份验证,从而增强容器注册表的安全性。
本教程介绍如何执行下列操作:
- 在 ACR 中禁用 authentication-as-arm - Azure CLI。
- 在 ACR 中禁用 authentication-as-arm - Azure 门户。
先决条件
- 安装或升级到 Azure CLI 版本 2.40.0 或更高版本。 若要查找版本,请运行
az --version
。 - 登录 Azure 门户。
在 ACR 中禁用 authentication-as-arm - Azure CLI
禁用 azureADAuthenticationAsArmPolicy
将强制注册表使用 ACR 受众令牌。 可使用 Azure CLI 版本 2.40.0 或更高版本,运行 az --version
以查找版本。
运行以下命令可显示注册表策略的当前配置,以便通过注册表使用 ARM 令牌进行身份验证。 如果状态为
enabled
,则 ACR 和 ARM 受众令牌都可用于身份验证。 如果状态为disabled
,则意味着仅 ACR 的受众令牌可用于身份验证。az acr config authentication-as-arm show -r <registry>
运行以下命令以更新注册表策略的状态。
az acr config authentication-as-arm update -r <registry> --status [enabled/disabled]
在 ACR 中禁用 authentication-as-arm - Azure 门户
通过分配内置策略禁用 authentication-as-arm
属性将自动禁用当前注册表和将来的注册表属性。 此自动行为适用于在策略范围内创建的注册表。 可能的策略范围包括资源组级别范围或租户中的订阅 ID 级别范围。
可以通过以下步骤在 ACR 中禁用 authentication-as-arm:
登录 Azure 门户。
请参阅 azure-container-registry-built-in-policy 定义中的 ACR 内置策略定义。
分配内置策略以禁用 authentication-as-arm 定义 - Azure 门户。
分配内置策略定义以禁用 ARM 受众令牌身份验证 - Azure 门户。
可以在 Azure 门户中启用注册表的条件访问策略。
Azure 容器注册表有两个内置策略定义可用于禁用 authentication-as-arm,如下所示:
Container registries should have ARM audience token authentication disabled.
- 此策略将报告、阻止任何不合规的资源,并发送将不合规资源更新为合规资源的请求。Configure container registries to disable ARM audience token authentication.
- 此策略提供修正,并将不合规资源更新为合规资源。登录 Azure 门户。
导航到“Azure 容器注册表”>“资源组”>“设置”>“策略”。
导航到 Azure Policy,在“分配”上,选择“分配策略”。
在“分配策略”下,使用筛选器搜索和查找“范围”、“策略定义”、“分配名称”。
选择“范围”以筛选并搜索“订阅”和“资源组”,然后选择“选择”。
选择“策略定义”,筛选并搜索条件访问策略的内置策略定义。
使用筛选器选择并确认“范围”、“策略定义”和“分配名称”。
将筛选器用于限制合规性状态,或用于搜索策略。
确认设置,并将“强制实施策略”设置为“启用”。
选择“查看 + 创建”。