aws gate-aws ssm会话管理器客户端cli
aws-gate的Python项目详细描述
AWS门
AWS SSM会话管理器客户端
动机
我经常使用aws,我厌倦了处理堡垒主机带来的所有问题(另外一个实例必须维护、分发ssh密钥(共享ssh密钥对我来说不是一个选项),将ssh暴露给网络)。不久前,亚马逊发布了一个服务来修复这个-AWS Systems Manager Session Manager。但是,会话管理器的cli用户体验有限,并且缺少一些功能:
- 能够通过其他方式(如dns、ip、tag、instance name、autoscaling group)连接到实例,因为aws cli只支持通过实例id连接
- 通过会话管理器存储连接信息的配置文件支持
aws gate试图解决这些问题。
开始
这些说明将为您在本地计算机上启动和运行项目的副本,以便进行开发和测试。有关如何在实时系统上部署项目的说明,请参阅部署。
先决条件
- python 3.5+(早期的python3版本也应该可以工作)
- session-plugin-manager来自aws
- SSM代理版本2.3.68.0或更高版本必须安装在我们要连接到的EC2实例上
- 实例配置文件的适当IAM权限
安装
pip install aws-gate
或通过自制
brew tap xen0l/homebrew-taps
brew install aws-gate
功能
配置和配置支持
您可以存储有关连接到实例的信息(名称、区域和配置文件),并且aws gate将为您提供一切服务。配置文件存储在~/.aws gate/config中,并具有以下yaml语法:
hosts:
- alias: backend-pre
name: backend
profile: preproduction
region: eu-west-1
- alias: backend-pro
name: backend
profile: production
region: eu-west-1
defaults:
profile: development
region: eu-west-1
其中hosts存储连接信息和defaults要使用的默认配置设置。要连接到实例backend pre,请执行:
aws-gate session backend-pre
您可以在~/.aws gate/config.d中放置其他配置文件。当您正在处理不同的项目或需要在您的团队中共享配置时,这是理想的选择。
通过不同的实例标识符查询实例
aws gate支持查询具有以下标识符的实例:
- 实例ID
aws-gate session i-0772e4c1dcdd763b6
- DNS名称
aws-gate session ec2-34-245-174-132.eu-west-1.compute.amazonaws.com
- 专用DNS名称
aws-gate session ip-172-31-35-113.eu-west-1.compute.internal
- IP地址
aws-gate session 34.245.174.13
- 专用IP地址
aws-gate sssion 172.31.35.113
- 标签
aws-gate session Name:SSM-test
- 名称(在引擎盖下使用标签标识符)
aws-gate session SSM-tes
调试模式
如果遇到问题,可以通过设置gate\u debug获取详细的调试日志环境变量:
export GATE_DEBUG=1
设置环境变量后,将自动启用调试模式:
% aws-gate session test
2019-05-26 01:18:23,535 - aws_gate.config - DEBUG - Located config file: /Users/xenol/.aws-gate/config
2019-05-26 01:18:23,538 - aws_gate.utils - DEBUG - Obtaining boto3 session object
2019-05-26 01:18:23,549 - aws_gate.utils - DEBUG - Obtained configured AWS profiles: default development preproduction production
2019-05-26 01:18:23,550 - aws_gate.utils - DEBUG - Obtaining boto3 session object
2019-05-26 01:18:23,560 - aws_gate.utils - DEBUG - Obtained configured AWS profiles: default development preproduction production
2019-05-26 01:18:23,560 - aws_gate.utils - DEBUG - Obtaining boto3 session object
2019-05-26 01:18:23,574 - aws_gate.utils - DEBUG - Obtaining ssm client
2019-05-26 01:18:23,608 - aws_gate.utils - DEBUG - Obtaining boto3 session object
2019-05-26 01:18:23,636 - aws_gate.utils - DEBUG - Obtaining ec2 boto3 resource
2019-05-26 01:18:23,694 - aws_gate.query - DEBUG - Querying EC2 API for instance identifier: SSM-test
2019-05-26 01:18:24,029 - aws_gate.query - DEBUG - Found 1 maching instances
2019-05-26 01:18:24,030 - aws_gate.query - DEBUG - Matching instance: i-0772e4c1dcdd763b6
2019-05-26 01:18:24,030 - aws_gate.session - INFO - Opening session on instance i-0772e4c1dcdd763b6 (eu-west-1) via profile default
2019-05-26 01:18:24,030 - aws_gate.session - DEBUG - Creating a new session on instance: i-0772e4c1dcdd763b6 (eu-west-1)
...
调试模式还允许在出现崩溃或其他问题时打印python堆栈跟踪。
许可证
此项目在bsd许可下获得许可-有关详细信息,请参见LICENSE.md文件