AWS Systems Manager的工具:ssm session ssm copy ssm tunnel ssm-tunnel-updown.dns-example

aws-ssm-tools的Python项目详细描述


AWS SSM工具-AWS系统管理工具

CircleCIPyPIPython Versions

aws系统管理器的帮助工具:ssm-sessionssm-copyssm-tunnel

包括脚本

  • ssm会话

    可以打开的aws ssm start-session包装 与由nameip 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 instancecopy from在我的待办事项中 列表:)

  • ssm隧道

    打开ip tunnel到ssm实例并启用network access 到实例vpc。这需要ssm-tunnel-agent 安装在实例上。

    amazon linux 2实例和其他最新的linux系统协同工作。

    需要在实例上安装ssm-tunnel-agent-请参见下面的 说明。

用法

  1. 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
    
  2. 将文件复制到实例:

    ~ $ ssm-copy large-file test1:
    large-file - 1087kB, 27.6s, 39.4kB/s, [SHA1 OK]
    
  3. 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.
    ~ $
    
  4. 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的ip 192.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的源IP 192.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_PROFILEAWS_DEFAULT_REGION等。

安装

所有工具都使用aws cli打开ssm会话,然后使用 在目标实例上运行命令的会话。目标实例必须是 在SSM注册。

安装aws clisession-manager-plugin

确保本地安装了awssession-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下释放。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在java中使用REST/SOAP获取联邦快递的跟踪细节?   安卓将项目同步到github不会同步java源文件   JavaImpala通过jdbc使元数据无效   java如何在安卓中使用Chaquopy显示加载动画   java我应该使用void函数,但我不知道如何使用   java合并两个排序的ArrayList   通过点击ImageView在Android上生成java随机图像   java深度优先搜索错误   java在子类中初始化时设置泛型参数   java安卓:NFC意图在主项目所依赖的库中   java SSL错误证书错误   访问RadioButton数组时出现java Android NullPointerException   无法加载JNI共享库“C:\Program Files\Java\jdk1.7.0\U 40\bin\..\jre\bin\server\jvm.dll”   java如何检查jstl中是否存在hashmap值