AWS Systems Manager的工具:ssm session ssm copy ssm tunnel ssm-tunnel-updown.dns-example
aws-ssm-tools的Python项目详细描述
AWS SSM工具-AWS系统管理工具
aws系统管理器的帮助工具:ssm-session
,ssm-copy
和
ssm-tunnel
。
包括脚本
ssm会话
可以打开的
aws ssm start-session
包装 与由name或ip address指定的实例的ssm会话。查看SSM Sessions the easy way以获取示例使用。
适用于在ssm中注册的任何linux或windows ec2实例。
ssm拷贝
通过ssm session向ec2实例复制文件 直接ssh访问。
仅适用于linux实例,但是no远程代理是必需的。全部 需要的是一个shell和标准的linux工具,比如
base64
(是的,我们是 传输编码为ssm sessions的base64文件不会通过 二进制数据)。目前只实现了copy to instance。copy from在我的待办事项中 列表:)
ssm隧道
打开ip tunnel到ssm实例并启用network access 到实例vpc。这需要ssm-tunnel-agent 安装在实例上。
与amazon linux 2实例和其他最新的linux系统协同工作。
需要在实例上安装
ssm-tunnel-agent
-请参见下面的 说明。
用法
list实例可用于连接
~ $ ssm-session --list i-07c189021bc56e042 test1.aws.nz test1 192.168.45.158 i-094df06d3633f3267 tunnel-test.aws.nz tunnel-test 192.168.44.95 i-02689d593e17f2b75 winbox.aws.nz winbox 192.168.45.5 13.11.22.33
将文件复制到实例:
~ $ ssm-copy large-file test1: large-file - 1087kB, 27.6s, 39.4kB/s, [SHA1 OK]
open ssm session到实例:
~ $ ssm-session -v test1 Starting session with SessionId: botocore-session-0d381a3ef740153ac sh-4.2$ hostname test1.aws.nz sh-4.2$ cd sh-4.2$ ls -l total 1088 -rw-r--r-- 1 ssm-user ssm-user 1113504 Jun 20 02:07 large-file sh-4.2$ exit Exiting session with sessionId: botocore-session-0d381a3ef740153ac. ~ $
create ip tunnel并通过它ssh到vpc中的另一个实例。
我们将使用
--route 192.168.44.0/23
来访问vpc cidr。$ ssm-tunnel -v tunnel-test --route 192.168.44.0/23 [ssm-tunnel] INFO: Local IP: 100.64.160.100 / Remote IP: 100.64.160.101 00:00:15 | In: 156.0 B @ 5.2 B/s | Out: 509.0 B @ 40.4 B/s
让它继续运行,从另一个shell
ssh
到列出的一个实例 上面有--list
。例如test1
这是vpc的ip192.168.45.158
:~ $ ssh ec2-user@192.168.45.158 Last login: Tue Jun 18 20:50:59 2019 from 100.64.142.232 ... [ec2-user@test1 ~]$ w -i 21:20:43 up 1:43, 1 user, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT ec2-user pts/0 192.168.44.95 21:20 3.00s 0.02s 0.00s w -i ^^^^^^^^^^^^^ [ec2-user@test1 ~]$ exit Connection to 192.168.45.158 closed. ~ $
注意属于
tunnel-test
的源IP192.168.44.95
实例-我们的连接将显示为好像它们来自此实例。 显然,其他实例的安全组必须允许ssh 从您的隧道实例的IP或SG访问。
所有工具都支持--help
和一组公共参数:
--profile PROFILE, -p PROFILE
Configuration profile from ~/.aws/{credentials,config}
--region REGION, -g REGION
Set / override AWS region.
--verbose, -v Increase log level
--debug, -d Increase log level
它们还支持标准的aws环境变量,如AWS_DEFAULT_PROFILE
,
AWS_DEFAULT_REGION
等。
安装
所有工具都使用aws cli打开ssm会话,然后使用 在目标实例上运行命令的会话。目标实例必须是 在SSM注册。
安装aws cli和session-manager-plugin
确保本地安装了aws
和session-manager-plugin
在你的笔记本电脑上。
~ $ aws --version
aws-cli/1.16.175 Python/3.6.8 Linux/4.15.0-51-generic botocore/1.12.165
~ $ session-manager-plugin --version
1.1.17.0
跟随AWS CLI installation guide 以及session-manager-plugin installation guide以便在需要时安装它们。
向Systems Manager注册实例
amazon linux 2实例已经安装了amazon-ssm-agent
,并且
跑步。他们只需要向systems manager注册
amazonec2roleforsm在其iam实例角色和网络中的托管角色
直接或通过https proxy访问ssm.{region}.amazonaws.com
。
安装ssm工具(最后!:)
最简单的方法是从PyPI存储库安装ssm工具:
sudo pip3 install aws-ssm-tools
注意:ssm工具需要python 3.6或更新版本。只有ssm-tunnel-agent
需要python 2.7或更新版本,因为默认情况下这是可用的
在amazon linux 2实例上。
独立的ssm隧道代理安装
关于ssm-tunnel-agent
,请参阅README-agent.md。
安装细节。
或者它也和这个包裹捆绑在一起,你可以从这里拿走
复制到实例上的/usr/local/bin/ssm-tunnel-agent
。使其可执行
它应该能正常工作。
其他AWS实用程序
签出AWS Utils 存储更多有用的aws工具。
作者和许可证
所有这些脚本都是由Michael Ludvig编写的 在Apache License 2.0下释放。