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

基于AD组与EC2标签实现AWS用户登录授权的方案咨询

嘿Michal,既然已经搞定了Simple AD和EC2 Linux/Windows的登录集成,接下来要实现按AD组控制实例访问的需求,其实可以通过AWS IAM权限策略结合AD组映射来实现,我给你梳理下具体的落地步骤,保证清晰好操作:

核心思路

把你的AD组(Developers、Production)分别映射到对应的IAM权限策略,策略里通过EC2实例标签做访问限制,最终实现“AD组→IAM权限→对应标签实例”的链路控制。

具体实现步骤

1. 创建IAM权限策略,按标签限制访问

首先要为两个AD组分别创建针对性的IAM策略,核心是用Condition字段匹配实例标签:

针对Developers组的策略(仅允许访问Dev标签实例)

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                // 支持SSM会话管理
                "ssm:StartSession",
                // 支持EC2 Instance Connect(Linux)
                "ec2-instance-connect:SendSSHPublicKey",
                // 允许查看实例列表(仅能看到符合标签的实例)
                "ec2:DescribeInstances"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ssm:*:*:document/AWS-StartInteractiveCommand"
            ],
            "Condition": {
                "StringEquals": {
                    // 匹配实例的Environment标签为Dev
                    "ec2:ResourceTag/Environment": "Dev"
                }
            }
        }
    ]
}

针对Production组的策略(仅允许访问Prod标签实例)

把上面策略里的"ec2:ResourceTag/Environment": "Dev"改成"Prod"即可,其他内容保持一致。

2. 将AD组映射到IAM角色

因为Simple AD和AWS的集成需要通过角色映射来关联AD组和IAM权限,步骤如下:

  • 先创建两个IAM角色:比如Role-EC2-Dev-Access和Role-EC2-Prod-Access,分别把刚才创建的Dev、Prod策略附加到对应角色上。
  • 登录AWS控制台,进入Directory Service,找到你的Simple AD目录。
  • 切换到Applications and Services → IAM Role Mapping页面。
  • 点击Add Role Mapping,选择你的AD组(比如CN=Developers,OU=Groups,DC=yourdomain,DC=com),然后关联对应的IAM角色(Role-EC2-Dev-Access);重复此操作把Production组映射到Role-EC2-Prod-Access。

3. 配置EC2实例的访问方式(Linux/Windows分别适配)

Linux实例

  • 如果用EC2 Instance Connect:确保实例已经安装EC2 Instance Connect工具,并且你之前的AD登录集成已经生效。IAM策略里的ec2-instance-connect:SendSSHPublicKey动作会自动限制用户只能向带有Dev/Prod标签的实例发送登录密钥。
  • 如果用SSM Session Manager:更安全(无需开放SSH端口),只要实例安装并运行SSM Agent,且实例的IAM角色附加了AmazonSSMManagedInstanceCore策略,用户就能通过SSM直接连接对应标签的实例。

Windows实例

  • 推荐用SSM Session Manager:无需开放RDP端口,同样需要实例安装SSM Agent并关联AmazonSSMManagedInstanceCore策略,用户通过AD凭证登录AWS后,只能启动带有对应标签实例的SSM会话。
  • 如果坚持用RDP:可以结合EC2 Instance Connect for Windows,同时确保AD用户有实例的本地登录权限(你之前的集成应该已经搞定这部分),IAM策略会限制用户只能查看和连接对应标签的实例。

4. 验证配置

  • 用属于Developers组的John登录AWS控制台(或通过AD凭证用AWS CLI登录),尝试访问带有Prod标签的实例,应该会收到权限拒绝提示;访问Dev标签的实例则能正常连接。
  • 用Production组的用户重复测试,确认只能访问Prod标签的实例。
额外注意事项
  • 确保EC2实例的标签准确:比如给Dev实例设置Environment=Dev,Prod实例设置Environment=Prod,标签键值要和IAM策略里的Condition完全匹配。
  • SSM访问的网络要求:如果实例没有公网IP,需要在VPC里配置SSM的VPC端点,确保实例能连接到AWS SSM服务。
  • Linux实例的sudo权限:可以在/etc/sudoers.d目录下创建配置文件,比如允许Developers组在Dev实例上执行sudo,Production组在Prod实例上执行sudo,和AD组直接关联即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:29:15