You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让不同IAM用户通过不同SSM配置访问同一EC2并实现文件隔离?

实现不同IAM用户通过SSM访问同一EC2时的独立主目录与权限隔离

要让不同IAM用户通过Systems Manager访问同一EC2时拥有独立主目录且无法互访,核心思路是将IAM用户映射到EC2实例的本地系统用户,结合SSM Agent的Run As功能实现会话隔离,具体步骤如下:

1. 在EC2实例上创建独立本地用户并配置权限

为每个需要访问的IAM用户创建对应的本地系统用户,确保主目录权限严格隔离:

  • 创建本地用户(以IAM用户dev-user1对应本地用户ssm-dev1为例):
    sudo useradd -m ssm-dev1
    sudo passwd -l ssm-dev1  # 禁用密码登录,仅允许SSM会话切换
    
  • 设置主目录权限为700,阻止其他用户访问:
    sudo chmod 700 /home/ssm-dev1
    

重复此步骤为所有需要隔离的IAM用户创建对应本地用户。

2. 配置SSM Agent的Run As映射

修改EC2实例上的SSM Agent配置,将IAM用户ARN映射到对应的本地用户,实现会话自动切换:

  • 编辑SSM Agent配置文件/etc/amazon/ssm/ssm-agent-config.json,添加RunAs配置段:
    {
      "RunAs": {
        "Enabled": true,
        "DefaultUser": "ssm-user",  # 无匹配映射时使用的默认用户(可选)
        "Map": {
          "arn:aws:iam::123456789012:user/dev-user1": "ssm-dev1",
          "arn:aws:iam::123456789012:user/dev-user2": "ssm-dev2"
        }
      }
    }
    
    注意替换其中的IAM用户ARN和本地用户名。
  • 重启SSM Agent使配置生效:
    sudo systemctl restart amazon-ssm-agent
    

3. 限制IAM用户的SSM会话权限

创建自定义IAM策略,确保用户只能使用指定的会话配置启动EC2会话,避免权限滥用:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["ssm:StartSession"],
      "Resource": ["arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"],
      "Condition": {
        "StringEquals": {
          "ssm:SessionDocument": "arn:aws:ssm:us-east-1:123456789012:document/IsolatedSessionConfig"
        }
      }
    }
  ]
}

将该策略附加到对应的IAM用户或用户组,替换其中的实例ARN和区域、账号ID。

4. 创建自定义SSM会话文档(可选)

如果需要更精细的会话控制(比如限制命令执行、设置超时),可以创建自定义会话文档:

{
  "schemaVersion": "1.0",
  "description": "隔离用户的SSM会话配置",
  "sessionType": "Standard_Stream",
  "parameters": {
    "shell": {
      "type": "String",
      "description": "使用的Shell",
      "default": "/bin/bash"
    }
  },
  "properties": {
    "runAsEnabled": true,
    "runAsDefaultUser": "ssm-user",
    "idleSessionTimeout": "15m",
    "maxSessionDuration": "1h"
  }
}

在AWS控制台的Systems Manager > 文档中创建该文档,然后在IAM策略的ssm:SessionDocument条件中指定此文档的ARN。

验证配置

用不同IAM用户登录SSM控制台启动会话,执行whoami确认当前用户为对应本地用户,尝试访问其他用户的主目录(如cd /home/ssm-dev2),应收到权限拒绝提示,说明隔离生效。

内容的提问来源于stack exchange,提问作者Programmer123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 20:50:28