Session Manager 是什么,能做什么
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。会话管理器用户只需单击并启动一个会话,然后选择一个实例,即可快速开始使用该工具。
要了解有关 AWS Systems Manager 的更多信息,请访问我们的产品页面和文档。
您现在可以使用新的基于浏览器的交互式shell和命令行界面(CLI)来管理Windows和Linux实例。 使用Session Manager来管理主机,可以给您的管理带来如下好处:
- 访问控制 – 您使用IAM策略和用户来控制对实例的访问,而不需要分发SSH密钥。您可以使用IAM的日期条件运算符限制对所需时间/维护窗口的访问。
- 可审计性 – 可以将命令和响应记录到Amazon CloudWatch和S3存储桶。您可以安排在新会话启动时收到SNS通知。
- 交互性 – 命令在完全交互式bash(Linux)或PowerShell(Windows)环境中同步执行
- 编程和脚本 – 您可以从控制台以及命令行( aws ssm … )或通过会话管理器API的方式来启动会话。
在EC2实例上运行的SSM代理必须能够连接到会话管理器的公共端点。您可以设置NAT Gateway,以允许在你的VPC的私有子网中(无Internet访问或公共IP地址)中运行的实例连接到会话管理器。
如何使用 Session Manager 登录 EC2
- 创建 IAM Role,使得 System Manager 可以访问 EC2 资源。
创建标准IAM Role,添加System Manager权限
选择创建好的这个Role,点击”Add inline policy”添加关于Session Manager的策略
策略的JSON文件如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetEncryptionConfiguration" ], "Resource": "*" } ] }
将这个IAM Role附到对应的希望登录的EC2主机上。
- 给IAM 用户创建对应的Policy,指定该用户能访问的EC2。
参考文档:
根据需要,修改红色部分
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:*:*:instance/instance-id" ] }, { "Effect": "Allow", "Action": [ "ssm:DescribeSessions", "ssm:GetConnectionStatus", "ssm:DescribeInstanceProperties", "ec2:DescribeInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetDocument" ], "Resource": "arn:aws:ssm:region:account-id:document/SSM-SessionManagerRunShell" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": [ "arn:aws:ssm:::session/${aws:username}-*" ] } ] }
instance-id : 实例ID
region : 您的 AWS 区域 account-id: AWS帐户ID 例如us-east-2
和111122223333
.
- 通过Session Manager进行登录访问
通过浏览器登录
通过Session Manager进行登录,默认用户是ssm-user,可以通过 su 命令进行用户切换
- 如果登出不上尝试更新EC2上的SSM-agent
需要升级EC2上的SSM Agent 版本至2.3.68.0
原文:https://aws.amazon.com/cn/blogs/china/session-manager-register-ec2/