AWS SSM中切换AWS不同的profile

问题

在自己的开发笔记本上面,通过AWS SSM方式访问EC2服务,只需要通过简单的命令就可以访问EC2了,如下:

bash 复制代码
aws ssm start-session --target i-xxxx12350

这个命令就是利用aws命令行工具中ssm提供的会话管理能力访问ec2服务,这个会话管理的能力,相当于跳板机了。

我如果只有一个aws开发账号还好,如果我有多个aws开发账号,就需要在不同环境上面切换配置才能正常使用上面这个命令,有没有简单一点的配置?

使用上面这个能力,需要在~/.ssh/config,~/.aws/config~/.aws/credentials这3个文件事先进行如下配置 :

~/.ssh/config

bash 复制代码
# SSH over Session Manager
host i-* mi-*
    ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"

需要在这个文件添加如上的ssh代理命令配置,具体效果如下图:

~/.aws/config

bash 复制代码
[default]
region = cn-north-1
output = json
[profile demo]
region = cn-north-2
output = json

在这个文件中设置两个环境,一个默认环境,一个demo环境,这就是设置aws的profile需要切换的环境。

~/.aws/credentials

bash 复制代码
[default]
aws_access_key_id = xxxx
aws_secret_access_key = xcvsdafgs
[demo]
aws_access_key_id = sdfsg
aws_secret_access_key = dfurtyuirh34564687u

这是不同环境使用的不同的secret授权。

切换aws profile

假设我们需要登录demo环境的中的ec2机器,只需要在运行aws ssm登录命令之前,设置环境变量AWS_PROFILE即可,具体命令如下:

bash 复制代码
export AWS_PROFILE=demo

这个命令运行成功后,就可以在这个环境变量基础上面,运行如下命令,登录demo环境的ec2机器了:

bash 复制代码
aws ssm start-session --target i-xxxdemo

总结

只有设置了正确的AWS_PROFILE环境变量,才可以在同一个aws cli中使用不同的aws账号。

相关推荐
AKAMAI8 小时前
云成本困境:开支激增正阻碍欧洲AI创新
人工智能·云原生·云计算
@HNUSTer8 小时前
基于 GEE 的 Sentinel-2 光谱、指数、纹理特征提取与 Sentinel-1 SAR 数据处理
云计算·sentinel·数据集·遥感大数据·gee·云平台·sar
字节跳动视频云技术团队12 小时前
多媒体实验室画质理解大模型Q-Insight入选NeurIPS 2025 Spotlight
云计算·视频编码
坐吃山猪14 小时前
阿里云智能集团首席技术官云栖大会要点总结
阿里云·云计算
容器魔方14 小时前
Volcano v1.13 重磅发布!大模型训练与推理等调度能力全面增强
云原生·容器·云计算
福大大架构师每日一题17 小时前
nginx 1.29.2 发布:AWS-LC 支持、QUIC及SSL优化等重要更新
nginx·ssl·aws
qq_3391911419 小时前
aws ec服务器设置密码登录,ec服务器root登录 aws服务器初始化配置
服务器·github·aws
费益洲19 小时前
Docker 网络详解:(三)四大网络模式
docker·云计算
王道长AWS_服务器19 小时前
AWS Route 53:DNS 不止能解析,还能做全球流量调度
后端·aws
九河云20 小时前
传统数据安全措施与云计算数据安全的区别
运维·服务器·数据库·云计算