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 小时前
更新个监控 Agent 要协调 200 个团队?Amazon ECS 托管守护进程终于把平台工程师从苦海里捞出来了
aws
亚马逊云开发者12 小时前
5 个 Agent 协同处理金融业务,我用 Kiro + AgentCore 半天就部署上线了
aws
AC赳赳老秦15 小时前
OpenClaw阿里云部署实操:多Agent协同,打造云端自动化工作流
人工智能·阿里云·数据挖掘·自动化·云计算·deepseek·openclaw
亚马逊云开发者16 小时前
我把 Claude Code 的 Token 费砍了 70%,只用了 SageMaker + 一个路由 Hook
aws
雨落Liy16 小时前
OpenClaw 腾讯云一键更新后全面排障与恢复
云计算·vim·腾讯云
喵叔哟17 小时前
3.【.NET10 实战--孢子记账--产品智能化】--.NET 10 核心新特性概览:运行时与 ASP.NET Core 10
云计算·asp.net·.net
圣殿骑士-Khtangc17 小时前
Amazon CodeWhisperer 超详细使用教程:AWS 云原生 AI 编程助手上手指南
人工智能·ai编程·aws·编程助手·codewhisperer
大强同学1 天前
Obsidian CLI + Claude Code = 王炸组合
人工智能·windows·ai编程·cli
Echo-J2 天前
WinDbg 双机调试(调试机为Windows11系统,被调试机为Windows7系统)
安全·网络安全·云计算·系统安全
翼龙云_cloud2 天前
亚马逊云代理商:如何在 AWS Lightsail 上一键部署 OpenClaw 私有化 AI 助手?
人工智能·云计算·aws·openclaw