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

如何在ACK集群构建镜像并通过Runner Pod服务账号生成临时密码推送至ACR?

借助ACK Runner Pod绑定的服务账号推送镜像到ACR(无需持久AccessKey)

完全可以通过与Runner Pod绑定的服务账号生成临时凭证完成ACR镜像推送,全程无需暴露持久化AccessKey,契合RRSA的安全设计逻辑。具体操作步骤如下:

  • 步骤1:为服务账号配置ACR推送权限
    在RAM控制台给Runner Pod绑定的服务账号授予AliyunContainerRegistryPushFullAccess(或按需配置更精细化的推送权限),确保该账号拥有目标ACR实例的镜像推送权限。

  • 步骤2:在Runner Pod内获取临时凭证
    借助ACK集群内置的RRSA机制,Pod内可通过元数据服务获取临时RAM凭证。执行以下命令获取临时AccessKeyId、AccessKeySecret和SecurityToken:

    curl -s http://100.100.100.200/latest/meta-data/Ram/security-credentials/<你的服务账号名称>
    

    接口返回的JSON数据包含上述三个核心字段,这就是临时认证所需的全部信息。

  • 步骤3:配置Docker客户端用临时凭证登录ACR
    用获取到的临时凭证登录ACR实例,命令格式如下:

    docker login --username=<你的RAM账号UID> --password-stdin <ACR实例域名>
    

    密码需要拼接为AccessKeyId:AccessKeySecret:SecurityToken的格式,可通过管道直接传入:

    echo "<AccessKeyId>:<AccessKeySecret>:<SecurityToken>" | docker login --username=<RAM账号UID> --password-stdin <ACR实例域名>
    

    注:RAM账号UID可在RAM控制台账号详情页获取,也可通过元数据接口http://100.100.100.200/latest/meta-data/ram/security-credentials/的返回内容提取。

  • 步骤4:推送镜像到ACR
    登录成功后,正常执行docker tag和docker push命令,即可将本地构建的镜像推送到目标ACR仓库。

补充说明:临时凭证默认有效期为1小时,到期后可重新通过元数据接口获取新凭证,全程无需手动维护持久化密钥,大幅降低密钥泄露风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:42:47