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账号。

相关推荐
号码认证服务5 小时前
客户看到来电显示公司名会更愿意接听吗?企业号码认证提升ROI
服务器·网络·c++·经验分享·智能手机·云计算·php
打码人的日常分享6 小时前
大模型及智能体安全风险防范与治理策略(PPT)
运维·网络·数据库·安全·云计算·制造
带刺的坐椅6 小时前
SolonCode CLI 的心智记忆功能:让 AI 编程助手越用越懂你
java·ai·llm·cli·soloncode
zhojiew7 小时前
在AWS云上使用EC2 嵌套虚拟化实例部署Cube Sandbox的实践和问题
云计算·aws
号码认证服务8 小时前
小米、OPPO、VIVO手机支持号码认证显示公司名吗?
java·服务器·网络·经验分享·智能手机·云计算·php
不吃香菜kkk、9 小时前
SonarQube安装配置使用
ci/cd·kubernetes·云计算
weelinking1 天前
【企业级】企业级大模型合规实战:数据安全与跨境传输的技术解决方案
数据库·人工智能·机器学习·云计算·github
向日的葵0061 天前
阿里云OSS从0到1实战:为宠物收养系统打造图片上传功能
python·阿里云·云计算·pillow·fastapi·宠物
Kevin-anycode1 天前
阿里云安装ali-instance-cli免公网打开 Web 界面(OpenClaw)
阿里云·云计算
深念Y1 天前
我在 Trae 里用 UML-mcp-renderer 画图,发现了 MCP 跟 CLI+Skills 的区别
agent·uml·cli·幻觉·mcp·trae·skills