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

如何识别操作EC2实例Session Manager的IAM用户并触发后台命令

识别Session Manager操作的IAM用户及自动执行指定命令方案

一、识别执行Session Manager操作的IAM用户

1. 通过CloudTrail日志溯源

Session Manager的所有核心操作(如StartSession、TerminateSession)都会被AWS CloudTrail记录。在CloudTrail控制台的事件历史中,搜索事件名称为StartSession的记录,查看事件详情里的userIdentity字段,即可获取发起会话的IAM用户的ARN、用户名等完整身份信息。

2. 在EC2实例内直接获取

当用户通过Session Manager连接到实例后,会话环境会自动注入IAM身份相关的环境变量,执行以下命令即可快速查看:

# 查看IAM用户ARN
echo $AWS_SESSION_MANAGER_IAM_USER_ARN

# 若用户通过IAM角色访问,查看角色ARN
echo $AWS_SESSION_MANAGER_IAM_ROLE_ARN

二、特定IAM用户会话时自动执行指定命令

方案1:使用自定义SSM会话文档

  1. 在AWS Systems Manager控制台创建自定义会话文档,示例内容如下(替换目标用户ARN和命令路径):
{
  "schemaVersion": "1.0",
  "description": "Auto-run command for specific IAM user on session start",
  "sessionType": "Standard_Stream",
  "parameters": {
    "command": {
      "type": "String",
      "default": "if [[ $AWS_SESSION_MANAGER_IAM_USER_ARN == 'arn:aws:iam::123456789012:user/your-target-user' ]]; then nohup /opt/your-custom-script.sh > /var/log/session-exec.log 2>&1 & fi"
    }
  },
  "properties": {
    "runAsEnabled": true,
    "runAsDefaultUser": "ec2-user"
  }
}
  1. 给目标IAM用户/角色添加IAM策略,允许其使用该会话文档(策略中需包含ssm:StartSession权限,资源指定为该文档的ARN)。
  2. 用户启动Session Manager会话时选择该自定义文档,会话启动后会自动执行判断逻辑,匹配目标用户则后台运行指定命令。

方案2:修改实例Shell配置文件

在EC2实例的用户Shell配置文件(如/home/ec2-user/.bashrc或/root/.bash_profile)中添加以下脚本(替换目标用户ARN和命令路径):

# 校验Session Manager会话身份,匹配则执行命令
if [[ -n "$AWS_SESSION_MANAGER_IAM_USER_ARN" ]]; then
  if [[ "$AWS_SESSION_MANAGER_IAM_USER_ARN" == "arn:aws:iam::123456789012:user/your-target-user" ]]; then
    nohup /opt/your-custom-script.sh > /var/log/session-exec.log 2>&1 &
  fi
fi

当用户通过Session Manager登录实例时,Shell初始化阶段会自动触发这段逻辑,满足条件则启动指定命令。

关键注意事项

  • 确保EC2实例已安装并运行最新版本的SSM Agent。
  • 实例关联的IAM角色需具备AmazonSSMManagedInstanceCore权限,以支持Session Manager连接。
  • 目标IAM用户需具备ssm:StartSession权限,以及对应会话文档的使用权限(方案1适用)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 06:53:15