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

EC2实例与AWS CLI的IAM角色使用差异及配置疑问

让本地AWS CLI使用EC2实例的Test-Role-Ec2角色

首先明确:EC2实例的角色凭证是通过实例元数据服务自动获取的,和你本地AWS CLI使用的个人账户凭证完全独立——导入实例SSH密钥仅用于远程连接EC2,并不会自动让本地CLI关联实例的角色。要让本地CLI使用Test-Role-Ec2角色,有两种常用方法:

方法一:临时获取角色凭证(单次生效)

执行以下命令扮演Test-Role-Ec2角色,获取临时凭证:

aws sts assume-role --role-arn arn:aws:iam::739214605182:role/Test-Role-Ec2 --role-session-name cli-test-session

命令会返回包含AccessKeyId、SecretAccessKey、SessionToken的JSON结果,接着在本地终端设置环境变量:

export AWS_ACCESS_KEY_ID="返回的AccessKeyId值"
export AWS_SECRET_ACCESS_KEY="返回的SecretAccessKey值"
export AWS_SESSION_TOKEN="返回的SessionToken值"

此时再执行aws sts get-caller-identity,就能看到CLI使用的是Test-Role-Ec2角色了。

方法二:配置CLI永久切换角色(持久生效)

编辑AWS CLI的配置文件(路径通常为~/.aws/config),添加一个新的profile:

[profile test-ec2-role]
role_arn = arn:aws:iam::739214605182:role/Test-Role-Ec2
source_profile = default  # 替换为你本地当前使用的CLI profile名称,比如default
role_session_name = cli-test-session

之后你可以通过指定profile来使用该角色:

aws sts get-caller-identity --profile test-ec2-role

或者设置环境变量默认使用这个profile:

export AWS_PROFILE=test-ec2-role

注意事项

  • 你的本地IAM用户必须具备sts:AssumeRole权限,且权限策略中明确允许扮演Test-Role-Ec2角色。
  • Test-Role-Ec2角色的信任策略需要配置为允许你的IAM用户(或所在AWS账户)来扮演它。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 09:18:21