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

为何容器内AWS CLI无法定位凭证?

AWS CLI容器挂载凭证失败故障原因

核心原因1:配置文件权限与属主不匹配

AWS CLI对config文件有强制安全校验:

  • 要求文件权限必须是600(仅属主可读可写),禁止其他用户拥有访问权限;
  • 容器内运行CLI的用户是root(UID=0),但你的config文件属主是1000:1000,即使root能读取文件,CLI也会出于安全规则拒绝加载该配置,直接跳过导致找不到凭证。

核心原因2:SSO缓存文件权限问题

主机执行aws sso login后生成的SSO会话缓存存在~/.aws/sso/cache目录下,这些缓存文件的属主同样是1000:1000。容器内root用户读取时,会触发CLI的安全校验失败,无法获取有效会话凭证。

核心原因3:未指定目标Profile

主机上你是通过--profile ProfileName指定SSO profile完成登录的,但容器命令里没有添加该参数。如果config未设置默认profile,CLI会尝试读取默认凭证(不存在),进而抛出凭证缺失错误。


快速验证与修复
  • 修正权限:在主机执行chmod 600 ~/.aws/config,再执行chown -R root:root ~/.aws,确保容器内root是所有.aws文件的属主,且config权限符合要求;
  • 指定Profile运行:修改容器命令为:
    docker run --rm -ti -v ~/.aws:/root/.aws amazon/aws-cli s3 ls --profile ProfileName
    
  • 验证配置:进入容器后执行aws configure list --profile ProfileName,确认是否能正确读取SSO配置与凭证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 23:42:03