如何设置会话管理器并启用基于 SSM 的 SSH
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
这是一份关于如何在 EC2 实例上设置会话管理器并通过 SSM 启用 SSH 连接的快速指南。
在 EC2 实例上设置会话管理器
1. 创建 IAM 实例配置文件,以允许会话管理器连接到您的实例(默认情况下未启用此功能)。
您可以通过创建具有会话管理器权限的新 IAM 角色,或者通过向已附加到我们实例的现有角色添加内联策略权限来实现这一点。
创建/添加实例配置文件:
- 转到 IAM 并单击“创建角色”
- 选择 EC2 作为可信实体。

- 如果您需要授予所有 Systems Manager 权限,请将AmazonSSMManagedInstanceCore策略添加到您的角色;或者,如果您需要授予AmazonSSMFullAccess策略,请单击“下一步”。

-
添加标签,然后点击创建角色。
-
要向现有角色添加 SSM 权限,请找到附加到实例的角色,然后将 SSM 权限作为内联策略添加。
2. 接下来,将新创建的角色添加为实例配置文件:
- 转到 EC2 实例,选择要启用 SSM 的实例。
- 点击“操作”,选择“安全”,然后点击“修改 IAM 角色”。

- 接下来,选择我们在上一步中创建的 IAM 角色。

3. 您现在可以通过会话管理器连接到您的实例。
您可以在这里找到更多关于 EC2 实例配置文件和 SSM 的 IAM 角色的信息。
从本地计算机启用基于 SSM 的 SSH。
首先,我们需要确保满足所有先决条件:
Windows(通常位于C:\Users\username\.ssh\config:):
# SSH over Session Manager
host i-* mi-*
ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
Mac(通常位于:)~/.ssh/config:
# SSH over Session Manager
host i-* mi-*
ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
- 将权限添加到您用于连接控制台的角色/用户。
您可以使用以下策略通过会话管理器允许 SSH 连接。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ssm:StartSession",
"Resource": [
"arn:aws:ec2:region:987654321098:instance/i-02573cafcfEXAMPLE",
"arn:aws:ssm:*:*:document/AWS-StartSSHSession"
]
}
]
}
现在,在您承担所选角色/通过命令行连接到 AWS 后,您可以通过运行以下命令,利用 SSM 通过 SSH 连接到您的实例:
aws ssm start-session --target i-02573cafcfEXAMPLE --region your-chosen-region。
您可以移除节点安全组中所有端口 22 的访问权限 - 连接到您的实例将不再需要此访问权限。
如需进一步了解这方面内容,请务必查阅AWS 文档。
请注意,您可以通过自动更新 SSM 代理来确保您的实例已安装最新的 SSM 代理。
文章来源:https://dev.to/aws-builders/how-to-set-up-session-manager-and-enable-ssh-over-ssm-43k9