AWS Session Manager
Session Manager介绍
简单来说,Session Manager有点类似于VMware的控制台功能,你可以通过AWS控制台或者AWS CLI连接到EC2上。下面是一段官方文档介绍:
AWS Systems Manager 会话管理器是一个新的交互式 Shell 和 CLI,有助于提供安全、访问权限受到控制且经过审计的 Windows 和 Linux EC2 实例管理。使用会话管理器,您无需打开入站端口、管理 SSH 密钥或使用堡垒主机。并且登录的主机可以处于公有子网或者私有子网。
借助会话管理器,您可以提高安全性,集中进行访问管理并接收详细的审计。除了无需打开入站端口之外,您还可以结合使用会话管理器与 AWS NAT Gateway,以便登录处于私有子网的EC2主机。通过使用 AWS Identity and Access Management (IAM) 策略,您可以在一个中心位置授予和撤销对实例的访问权限。提供访问权限后,您可以使用 AWS CloudTrail 审计哪个用户访问了实例,并将每个命令记录到 Amazon S3 或 Amazon CloudWatch Logs。会话管理器用户只需单击并启动一个会话,然后选择一个实例,即可快速开始使用该工具。
下载安装ssm-agent
查看ssm-agent的版本
amazon-ssm-agent -version
SSM Agent version: 3.0.529.0
下载安装,或者升级到最新版的ssm-agent
yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
配置Session Manager
创建一个日志组,用于存放用户的操作日志
编辑会话管理器的参数,设置了20分钟的超时时间,指定日志组。
默认情况下,AWS Systems Manager 没有权限操作你的实例,需要为EC2关联一个IAM角色。至少要为EC2分配AmazonSSMManagedInstanceCore
这个内置策略。这里将Systems Manager操作的日志发送到CloudWatch上,所以还要关联一个CloudWatch的权限。
EC2关联IAM角色
可以点击EC2进行连接
也可以进入会话管理器界面启动会话
选中EC2进行连接
通过Session Manager进行登录,默认用户是ssm-user,可以通过 su 命令进行用户切换。
在CloudWatch上查看用户刚才输入的命令以及回显。
授权其他用户通过SSM登录
创建用户,暂时不分配权限
创建策略,这里添加了一个条件,EC2需要添加资源标签SSM:Bastion-EC2,这样可以更精细化的控制用户权限。
策略json文件
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"ssm:GetConnectionStatus",
"ec2:DescribeInstances",
"ssm:DescribeSessions",
"ssm:DescribeInstanceProperties"
],
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "ssm:StartSession",
"Resource": "*",
"Condition": {
"StringLike": {
"ssm:resourceTag/SSM": "Bastion-EC2"
}
}
}
]
}
用户关联权限策略,需要注意的是,修改策略之后,用户需要重新登录才会生效(或者很长时间生效,没有继续测试)。
EC2添加标签键为SSM,值为Bastion-EC2。
使用新用户登录测试
可以在管理员账号下查看日志
这里演示一下实验过程中遇到IAM授权问题如何解决,例如SSM-User直接点击EC2进行连接会有下面报错,发现是没有ssm:DescribeInstanceInformation授权,那么就可以在策略里面添加对应的权限。
在策略里面添加对应的权限。
重新连接成功。
参考资料
-
AWS Systems Manager:https://docs.aws.amazon.com/zh_cn/systems-manager/latest/userguide/setup-instance-profile.html
-
Still using SSH on AWS? Check out Session Manager instead!:https://www.youtube.com/watch?v=TiaxgThfTRc
-
忘记堡垒机,使用 Session Manager 登录和管理 EC2 主机:https://aws.amazon.com/cn/blogs/china/session-manager-register-ec2/?nc1=b_rp