跳转到主要内容

使用AWS SSM SSH连接到Elastic Beanstalk服务器的简单工具。

项目描述

EB SSM

这个简单的脚本可以帮助您使用AWS SSM SSH连接到Elastic Beanstalk服务器。

eb-ssm旨在结合EB CLI和AWS CLI的工具,为eb ssh提供一个更好的替代方案。

它是一个pip库,可以通过pip install eb-ssm安装。

设置完成后,您可以使用eb-ssm [ENVIRONMENT_NAME] SSH连接到您的Elastic Beanstalk服务器。

您应该使用它的原因

虽然eb ssh存在,但它要求每个用户都需在本地拥有EC2实例的私钥。这从信息安全和管理访问的角度来看并不理想。如果您已配置SSM,则用户将不再需要SSH密钥来SSH连接到Elastic Beanstalk实例,而是通过IAM进行访问管理。

eb-ssm的主要优势如下

  1. 服务器SSH访问通过IAM进行管理。通常,您需要自行管理对Elastic Beanstalk环境的SSH访问。IAM是AWS管理所有其他用户访问的地方,使用eb-ssm,您还可以在那里管理EB环境的服务器SSH访问。

  2. 没有共享SSH密钥。共享、跟踪和旋转SSH密钥很麻烦。使用eb-ssm,那里没有SSH密钥,因此这些问题就消失了。

  3. 无需在端口22上捣鼓。EB CLI应该只为SSH会话打开端口22,但在SSH会话非正常终止的情况下不会关闭它。eb-ssm做得更好,根本不会一开始就打开端口22。

  4. SSH会话的审计日志。AWS SSM会记录SSH会话。这是使用它而不是原生SSH的另一项好处。

  5. 访问非公开服务器的能力。如果您在私有子网中有服务器,您可以使用eb-ssm SSH进入它们,而无需使用堡垒主机。

先决条件

设置您的Elastic Beanstalk环境以允许通过AWS SSM进行SSH访问

以下步骤需要为每个环境执行一次。

  1. 转到Elastic Beanstalk > 环境名称 > 配置 > 安全,找到“IAM实例配置文件”(默认情况下为“aws-elasticbeanstalk-ec2-role”)。这是步骤2中的ROLE_NAME。

  2. 转到IAM > 角色 > ROLE_NAME。在权限下,添加“AmazonSSMManagedInstanceCore”。

  3. 转到系统管理器 > 会话管理 > 首选 > 编辑。启用“作为支持运行”并将“作为默认用户运行”设置为“ec2-user”(或您的Elastic Beanstalk服务器的默认用户)。

请注意,IAM更改可能需要一些时间(约10分钟)才能传播。如果您已完成AWS设置并收到“TargetNotConnected”错误,请等待10-15分钟再重试。

配置您的本地计算机

以下步骤需要为每台计算机执行一次。

  1. 安装AWS CLI:https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html

  2. 安装会话管理插件:https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html

使用EB SSM

通过pip install eb-ssm安装eb-ssm。

安装后,您只需从您的存储库运行eb-ssm即可,它将自动连接到存储库的EB配置(在.elasticbeanstalk/config.yml中)。

要SSH进入特定环境,请使用eb-ssm 环境名称

您还可以可选地传递其他参数,例如AWS CLI配置文件或区域到eb-ssm。有关完整选项列表,请参阅eb-ssm --help

配置

eb-ssm使用EB CLI配置文件。如果您没有使用EB CLI设置项目,以下是eb-ssm所需的最低配置;此配置位于.elasticbeanstalk/config.yml中。

global:
  application_name: EB_APPLICATION_NAME
  default_region: REGION_NAME
  profile: PROFILE_NAME

项目详细信息


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

eb-ssm-1.2.1.tar.gz (5.2 kB 查看哈希)

上传时间

构建分发

eb_ssm-1.2.1-py3-none-any.whl (5.6 kB 查看哈希值)

上传时间 Python 3

支持者