You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在脚本中无需显式输入密码登录Azure?

无需显式凭证登录Azure容器注册表(ACR)的方法

以下几种方式可以避免在脚本中明文存储密码,实现安全登录ACR并推送镜像:

1. 使用Azure CLI的az acr login命令

前提是你已通过Azure CLI完成身份验证(本地执行过az login,或在Azure托管环境中自动完成认证),执行该命令会自动配置Docker的认证信息,无需输入密码:

az acr login --name <你的ACR名称>

完成后即可正常推送镜像:

docker tag local-image:tag your-acr-name.azurecr.io/local-image:tag
docker push your-acr-name.azurecr.io/local-image:tag

2. 利用托管标识(Managed Identity)

如果脚本运行在Azure托管资源(VM、Azure Functions、App Service等)上,可通过托管标识实现无凭证登录:

  • 给目标资源启用系统分配/用户分配的托管标识
  • 在ACR的IAM权限管理中,给该托管标识分配AcrPush角色
  • 执行登录命令:
az login --identity
az acr login --name <你的ACR名称>

全程无需输入任何凭证,即可完成镜像推送。

3. 使用Azure AD令牌登录Docker

通过Azure CLI获取ACR的临时访问令牌,用令牌作为密码登录Docker,避免明文密码:

# 获取ACR访问令牌
TOKEN=$(az acr login --name <你的ACR名称> --expose-token --output tsv --query accessToken)

# 用令牌登录Docker,用户名固定为占位符
docker login your-acr-name.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password $TOKEN

令牌有效期为1小时,到期后重新获取即可。

4. AKS集群与ACR直接关联

若在AKS集群中推送/拉取镜像,可将AKS与ACR直接关联,集群会自动获得ACR访问权限:

az aks update -n <AKS集群名> -g <资源组名> --attach-acr <你的ACR名称>

关联后,集群内的操作无需手动登录ACR,直接推送镜像即可。


内容的提问来源于stack exchange,提问作者Oleksandr Novik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 11:33:45