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

如何通过AWS Systems Manager跨AWS Organizations多账号管理EC2实例更新

AWS Organizations架构下跨账号SSM管理EC2实例最佳实践

一、核心前提确认

  • 确保所有成员账号已加入AWS Organizations,且启用了SSM服务
  • 所有目标EC2实例满足SSM Agent运行条件:
    • 实例处于公有子网/能通过VPC端点访问SSM服务(推荐用VPC端点避免公网依赖)
    • 已安装对应系统的SSM Agent(Amazon Linux 2/Amazon Linux 2023默认预装,Windows Server部分版本也预装,其他系统需手动安装)

二、IAM角色与策略配置

1. 成员账号:SSM实例角色(必须)

创建角色并附加AmazonSSMManagedInstanceCore AWS托管策略,将该角色关联到所有目标EC2实例。该策略包含SSM Agent与SSM服务通信的核心权限,关键权限片段:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ssm:UpdateInstanceInformation",
        "ssmmessages:CreateControlChannel",
        "ssmmessages:CreateDataChannel",
        "ssmmessages:OpenControlChannel",
        "ssmmessages:OpenDataChannel"
      ],
      "Resource": "*"
    }
  ]
}

若需补丁管理,额外附加AmazonSSMPatchAssociation托管策略,获取补丁扫描、安装权限

2. 成员账号:跨账号信任角色(供维护账号调用)

在每个成员账号创建角色(例如SSMCrossAccountAdminRole),信任关系指向维护账号,信任策略示例:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::维护账号ID:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

给该角色附加权限策略,允许访问SSM核心资源:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ssm:DescribeInstances",
        "ssm:ListManagedInstances",
        "ssm:GetInventory",
        "ssm:StartAutomationExecution",
        "ssm:CreatePatchBaseline",
        "ec2:DescribeInstances"
      ],
      "Resource": "*"
    }
  ]
}

3. 维护账号:IAM实体权限

给维护账号中用于操作SSM的IAM用户/角色,添加允许扮演成员账号角色的权限:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::*:role/SSMCrossAccountAdminRole"
    }
  ]
}

三、跨账号访问配置(Organizations层面)

1. 启用SSM跨账号共享

  • 在Organizations控制台检查服务控制策略(SCP),确保未阻止SSM相关操作
  • 在SSM控制台「跨账号管理」模块,添加成员账号为共享目标,指定维护账号为管理账号

2. 批量配置成员账号角色(可选)

用AWS CloudFormation StackSets批量部署跨账号信任角色到所有成员账号:

  • 编写包含角色定义和信任策略的CloudFormation模板
  • 通过StackSets将模板部署到指定组织单元(OU)或全部成员账号

四、Fleet Manager实例可见性配置

  1. 进入维护账号的SSM控制台「Fleet Manager」
  2. 点击「设置跨账号访问」,添加成员账号的SSMCrossAccountAdminRole ARN
  3. 刷新页面后,在线且关联了SSM实例角色的成员账号EC2实例会自动显示在列表中

五、用Runbooks实现跨账号补丁自动化

1. 配置补丁基线

在维护账号集中创建补丁基线,定义补丁规则(如仅安装安全补丁),并关联到成员账号实例的补丁组。

2. 执行跨账号补丁Runbook

  • 在维护账号SSM控制台「自动化」模块,选择预定义Runbook(如AWS-RunPatchBaseline)
  • 执行参数中选择「跨账号」,指定成员账号ID和对应信任角色ARN
  • 通过标签、补丁组筛选目标实例,启动自动化执行
  • 可配置维护窗口,定期自动执行补丁任务,规避业务高峰

六、简化流程的技巧

  • 标签统一管理:给成员账号EC2实例打统一标签(如Environment:Production),快速筛选目标实例
  • SCP强制合规:在Organizations中创建SCP,强制所有成员账号EC2实例必须关联SSM实例角色,避免遗漏
  • SSM Inventory自动收集:启用SSM Inventory,自动收集实例软件、配置信息,辅助补丁依赖分析
  • 集中日志监控:将成员账号SSM执行日志同步到维护账号的CloudWatch Logs,统一监控补丁执行状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 13:17:33