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

如何在Docker Linux环境下通过AWS CLI切换IAM角色?

在Docker容器中切换AWS IAM角色的方法

完全可行,你可以通过以下几种方式实现切换:

一、在运行中的容器内切换角色

1. 导入目标角色的临时凭证

如果宿主机的~/.aws/credentials已经有目标角色的profile,直接复制到容器内:

docker cp ~/.aws/credentials <容器ID/名称>:/root/.aws/credentials

也可以在容器内手动编辑/root/.aws/credentials,添加目标角色的条目:

[new-target-role]
aws_access_key_id = <临时Access Key>
aws_secret_access_key = <临时Secret Key>
aws_session_token = <临时Session Token>

2. 切换到新Profile

在容器终端中设置环境变量切换角色:

export AWS_PROFILE=new-target-role

执行以下命令验证切换结果:

aws sts get-caller-identity

返回的信息会显示当前使用的角色,确认是否为目标角色。


二、重启容器时指定新角色

如果允许重启容器,这是更高效的方式:
确保宿主机~/.aws/credentials包含目标角色的profile,然后启动容器时指定新的AWS_PROFILE并挂载凭证目录:

docker run -d \
  -v ~/.aws:/root/.aws \
  -e AWS_PROFILE=new-target-role \
  <你的镜像名称>

容器启动后会直接使用该角色的凭证。


三、通过现有角色直接Assume目标角色

如果你的容器内已有有效AWS凭证(当前角色权限允许Assume目标角色),可以直接调用sts assume-role生成新凭证:

aws sts assume-role \
  --role-arn arn:aws:iam::<你的AWS账号ID>:role/<目标角色名> \
  --role-session-name my-session-123

命令会返回新的临时凭证,直接设置环境变量即可使用:

export AWS_ACCESS_KEY_ID=<返回的AccessKeyId>
export AWS_SECRET_ACCESS_KEY=<返回的SecretAccessKey>
export AWS_SESSION_TOKEN=<返回的SessionToken>

也可以把这些内容添加到credentials文件作为新profile,方便后续切换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:53:03