在私有子网下的EC2并不能直接被互联网访问到,一般需要有一台堡垒机放公共有子网下,首先登录到堡垒机,然后再登录到这台私有实例。

很多情况下,VPC只创建了私有子网放置EC2实例,并不想专门为堡垒机再创建一个公有子网。这个时候就可以使用AWS System Manager里的Session Manager来登录管理会话。

安装SSM Agent

SSM Agent需要安装在EC2实例上,SSM Agent是System Manager用来和EC2实例的交互的。默认情况下AWS的AMI都自带SSM Agent,不需要额外设置。

创建Role并附加到EC2实例上

创建一个Role,赋予System Manager在这台EC2实例上操作的权限。可以使用AWS内置的Policy AmazonEC2RoleforSSM

把这个Role附加到EC2实例上
image.png

创建VPC Endpoints

VPC Endpoints 可以让VPC通过私有连接访问AWS的一些托管资源,比如S3,Dynamodb等。下图中除了dynamodb,其他终端节点都是必须的。

image.png

测试

在服务中找到System Manager -> Session Manager 然后选中要访问的EC2实例,点击Start Session。

image.png

默认登录的用户是ssm-user

image.png

切换到ec2-user

  1. sudo su - ec2-user

image.png

小结

Session Manager只是System Manager里的一个功能,可以方便的在不需要堡垒机的情况下登录到私有EC2实例中。
它还有很多实用的功能来管理控制AWS的基础设施,具体的可以参考AWS官方文档