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。

参考文档:

基础:https://docs.aws.amazon.com/zh_cn/systems-manager/latest/userguide/getting-started-restrict-access-quickstart.html

高级:https://docs.aws.amazon.com/zh_cn/systems-manager/latest/userguide/getting-started-restrict-access-examples.html

根据需要,修改红色部分

{
    "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://docs.aws.amazon.com/zh_cn/systems-manager/latest/userguide/sysman-manual-agent-install.html#agent-install-al

原文:https://aws.amazon.com/cn/blogs/china/session-manager-register-ec2/

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据