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

如何配置AKS中带托管身份的SCDF获取ACR容器元数据?

配置SCDF通过托管身份访问ACR获取容器元数据

1. 确认身份权限绑定

先确保AKS的用户托管身份确实拥有ACR的AcrPull权限,用Azure CLI验证:

az role assignment list --assignee <托管身份客户端ID> --scope <ACR资源ID> --role AcrPull

返回结果中存在对应角色分配,说明权限配置有效。

2. 配置SCDF的容器注册表认证

SCDF支持通过Azure托管身份访问ACR,无需用户名密码,只需指定MANAGED_IDENTITY认证类型,分两种场景配置:

Helm部署场景

若用Helm部署SCDF,修改values.yaml的server配置段:

server:
  config:
    spring:
      cloud:
        dataflow:
          container:
            registry:
              my-acr: # 自定义注册表标识名
                type: azure
                server: <你的ACR地址,例如xxx.azurecr.io>
                auth-type: MANAGED_IDENTITY

修改完成后执行helm upgrade重新部署SCDF。

直接部署Pod场景

若手动部署SCDF Pod,为Pod添加以下环境变量:

SPRING_CLOUD_DATAFLOW_CONTAINER_REGISTRY_MY-ACR_TYPE=azure
SPRING_CLOUD_DATAFLOW_CONTAINER_REGISTRY_MY-ACR_SERVER=<你的ACR地址>
SPRING_CLOUD_DATAFLOW_CONTAINER_REGISTRY_MY-ACR_AUTH-TYPE=MANAGED_IDENTITY

3. 确保Pod能使用托管身份

如果AKS是集群级绑定用户托管身份,SCDF Pod会自动继承身份权限,无需额外操作;若使用Azure AD Pod Identity,需为SCDF Pod绑定对应的Identity资源。

4. 验证配置

启动SCDF后,尝试部署一个存储在目标ACR中的应用,检查是否能正常拉取镜像并获取元数据。若仍有权限问题,可在SCDF Pod内执行以下命令验证身份令牌获取情况:

curl http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com%2F -H "Metadata: true"

能成功获取令牌说明身份生效,再排查ACR角色分配是否有误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 08:11:39