Azure Container App访问ACR,寻求托管身份替代管理员权限的方案
解决Container App访问禁用管理员凭据的ACR问题
以下是几种更安全的替代方案,避免启用ACR管理员凭据:
使用Container App的系统分配托管身份
无需提前创建独立身份,在创建Container App时直接启用系统托管身份,再给它配置ACR拉取权限:- 创建Container App过程中,在「身份」选项卡开启「系统分配」身份;
- 打开目标ACR的「访问控制(IAM)」页面,添加角色分配:选择
ACRPull角色,主体选择刚创建的Container App的系统托管身份; - 回到Container App的容器配置,选择「使用托管身份」访问ACR,无需填写任何凭据。
预创建用户托管身份并关联到Container Apps环境
如果你偏好用户托管身份的灵活性,可以先完成身份创建和权限配置,再关联到环境:- 创建用户托管身份,在ACR的IAM中给它分配
ACRPull角色; - 创建Container Apps环境时,在「高级」选项卡的「托管身份」部分,关联这个预创建的用户托管身份;
- 部署Container App时,直接选择使用环境关联的托管身份来拉取ACR镜像。
- 创建用户托管身份,在ACR的IAM中给它分配
使用ACR仓库范围令牌
这是比管理员凭据更安全的细粒度凭据方案:- 进入ACR的「存储库」页面,选中目标镜像仓库,打开「令牌」选项卡;
- 创建新令牌,设置权限为
pull,生成对应的用户名和密码; - 在Container App的容器配置中,填入这个令牌的凭据来拉取镜像——相比管理员凭据,它仅对指定仓库有拉取权限,风险更小。
内容的提问来源于stack exchange,提问作者Yusry Yesneen
相关产品推荐
相关产品推荐

