写点什么

使用 ADMT 迁移本地 AD 用户到 AWS Microsoft AD

  • 2019-10-21
  • 本文字数:2074 字

    阅读完需:约 7 分钟

使用 ADMT 迁移本地 AD 用户到 AWS Microsoft AD

AWS Managed Microsoft AD 介绍:

AWS Managed Microsoft AD 在 AWS 云中创建一个完全托管的 Microsoft Active Directory,采用 Windows Server 2012 R2 并在 2012 R2 功能级别上操作。AWS Managed Microsoft AD 可以与 Microsoft SharePoint、Microsoft SQL Server Always On Availability Groups 和多种 .NET 应用程序配合使用。它还支持 AWS 托管的应用程序和服务,包括 Amazon WorkSpaces、Amazon WorkDocs、Amazon QuickSight、Amazon Chime、Amazon Connect 和 Amazon Relational Database Service for Microsoft SQL Server (RDS for SQL Server)。


在本文中,我们主要讨论使用微软提供的 ADMT (Active Directory Migration Tool) 来实现将用户从本地 AD 迁移到 AWS Managed Microsoft AD。需要注意的是: AWS Managed Microsoft AD 采用 Windows Server 2012 R2 并在 2012 R2 功能级别上操作,如果和本地域功能级别不同,在迁移的时候有可能会出现一些属性无法同步的情况。

先决条件:

  1. 在迁移之前,可以根据自己的业务场景使用 VPN 或者 Direct Connect 将本地数据中心和 AWS VPC 网络打通。

  2. 建立本地 DC 和 AWS Managed AD 的信任关系

  3. 在本地 DC 上安装 pwdmig(Password Export Server) 用于密码迁移

操作步骤:

  1. 在 AWS 上创建一个托管 Microsoft AD,本次示例中 AWS 托管 AD 的目录名字为 mad.com ,创建好之后 AWS 会自动在指定的子网中创建 2 个域控制器.



  1. 修改 VPC DHCP Options,使 VPC DNS 指向 AWS Managed AD DNS 服务器(在先前创建的目录服务中可找到 DNS address )



  1. 创建一个 Windows EC2 ,在配置实例的时候,选择之前新建的目录,以及选择一个 IAM Role 使 EC2 实例自动加入到托管 AD 中,IAM Role 至少要有 AmazonEC2RoleforSSM 权限。



  1. EC2 实例启动之后,可以通过在 AWS Managed AD 中创建的 admin 用户登录,登录成功之后安装 AD 管理工具.


使用 PowerShell 安装命令如下:_Add-WindowsFeature RSAT-AD-PowerShell,RSAT-AD-AdminCenter_


  1. 在 VPC 安全组界面,搜索之前创建的 Managed AD 的 Directory ID,格式为:d-xxxxxxxxxx,找到之后,修改出站流量,允许本地 DC 所在 CIDR 的所有流量.



  1. 在本地 DC 设置与 AWS Managed AD 林级别的信任,并添加 Managed AD 和本地 onpremise.com 的双向信任,在条件转发器中输入 onpremise.com 的 DNS 地址。如果信任建立失败,请检查 AWS Managed AD 的安全组出站策略以及本地数据中心的防火墙设置.




  1. 在 EC2 实例上安装 ADMT 工具(安装的时候需要指定 SQL Server 数据库,也可以在本地安装SQL Server Express 版) 。ADMT 默认安装路径为: C:\Windows\ADMT\,安装成功之后需要使用 ADMT 生成一个 Encryption File,用于源域控制器配置 pwdmig(Password Export Server).


_admt key /option:create /sourcedomain:SOURCEDOMAIN.com /keyfile:c:\key.pes /keypassword:KEYPASS_



  1. 将上一步生成的 key.pes 文件拷贝到本地域控制器,在本地域控制器上安装 pwdming 并指定 key.pes 文件,安装之后重启服务器。

  2. 同时在本地 AD 上打开 services.msc ,找到 Password Export Server Service,在 Logon 中修改用户为 AWS Managed AD 的管理员 admin,并将此服务启动。

  3. 另外在本地 AD 中,将 AWS Managed AD 的管理员添加到本地 AD 的 administrators 组中(如果不添加,在使用 ADMT 迁移密码的时候会报错提示访问被拒绝)


  4. 在 EC2 (连接到目标域控制器的实例)上打开 ADMT 工具开始准备迁移,右键选择 “User Account Migration Wizard”


  5. 选择源 AD 和目标 AD


  6. 手动选择要迁移的用户


  7. 选择要迁移到的 OU


  8. 迁移密码


  9. 不要勾选“Migrate user SIDs to target domain”。Sid 迁移需要在 AWS Managed AD 启用 SID History,但由于 AWS Managed AD 是一个托管服务,无法修改此属性,因而无法迁移用户的 sid.


  10. 之后根据提示点击下一步开始迁移工作,迁移完成之后,可以查看迁移报告,如果有用户迁移失败,可以点击 View Log 按钮查看报错日志。


  11. 经测试: 在迁移用户的过程中,如果用户隶属于某个组,可以实现在迁移用户的过程中自动将组也迁移过去。迁移后的用户默认勾选 “User must change password at next logon”,可以通过 PowerShell 脚本取消勾选:

  12. _Set-ADUser localuser001 -ChangePasswordAtLogon $false_

  13. 如果要批量修改某一个 OU 下的所有用户的属性,可以参考下面的循环语句:

  14. _Get-ADUser -Filter * -SearchBase "OU=testOU,OU=MAD,DC=mad,DC=com" | % {Set-ADUser $_ -ChangePasswordAtLogon $false}_


更多资料请参考:


https://docs.aws.amazon.com/zh_cn/directoryservice/latest/admin-guide/ms_ad_tutorial_setup_trust.html


https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc974332(v=ws.10)


作者介绍:


刘翔


亚马逊 AWS 解决方案架构师,负责基于 AWS 的云计算方案架构的咨询和设计。在加入架构师团队之前,在 AWS Support 团队有 2 年半的工作经验,对 AWS 底层服务有深入的理解和认识。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/admt-aws-microsoft-ad/


2019-10-21 08:001022

评论

发布
暂无评论
发现更多内容

【LeetCode】俄罗斯套娃信封问题Java题解

Albert

算法 LeetCode 28天写作

史上最全整合第三方登录的开源库

happlyfox

OAuth 2.0 28天写作 3月日更

Open-Falcon 中的 LDAP 认证

冯骐

Python 运维 Open-Falcon ldap Go 语言

面试官:如何用SpringCloud从零设计一个大型电商平台?

Java架构追梦

Java 架构 面试 微服务 SpringCloud

2021总结全网最新、最全、最实用Java岗面试真题!已收录GitHub

比伯

Java 编程 架构 面试 程序人生

区块链产业革命:解决融资租赁之谜

旺链科技

区块链应用 融资租赁

Pgbouncer最佳实践:系列四

PostgreSQLChina

数据库 postgresql 软件 开源社区

阿里P7亲自讲解!驱动核心源码详解和Binder超系统学习资源,跳槽薪资翻倍

欢喜学安卓

android 程序员 面试 移动开发

用 Go 写一个轻量级的 ssh 批量操作工具

冯骐

运维 SSH Go 语言

用 Nginx 的 auth_request 模块集成 LDAP 认证

冯骐

Python nginx 运维 ldap 认证

在主动要求涨工资这事上,不要学我!从第一份工资800开始说起

四猿外

程序员 涨薪 工资 收入 跳槽

云安全和访问管理

龙归科技

云计算 安全 云端 企业安全

阿里P7亲自讲解!如何快速的开发一个完整的直播app,成功入职腾讯

欢喜学安卓

android 程序员 面试 移动开发

LeetCode题解:190. 颠倒二进制位,移动n,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

思科设备漏洞 CVE-2018-0171 的快速修复

冯骐

Python 运维 安全 网络 交换机

交换机配置的自动备份与变更告警

冯骐

Python 运维 网络 备份 multissh

Golang 中的并发限制与超时控制

冯骐

并发 超时 Go 语言

拍乐云加盟UCloud优云精选计划,构建云上的美好互动

拍乐云Pano

ucloud 云服务 RTC 拍乐云 白板

《精通比特币》学习笔记(第一章)

棉花糖

区块链 读书笔记

Nginx安装后要做的第一件事

运维研习社

nginx WEB安全

Serverless 极致弹性解构在线游戏行业痛点

阿里巴巴云原生

Serverless 微服务 开发者 云原生 消息中间件

迄今为止最好用的Flink SQL教程:Flink SQL Cookbook on Zeppelin

Apache Flink

flink

软件开发,如何快速有效缩短项目周期

雯雯写代码

软件开发

神经网络攻防: 02.攻击模型的输出层

P小二

AIPwn AI安全 P小二 神经网络攻防

GitHub上获赞10万star的高并发神级进阶资料,面试官再问高并发问题请你把这篇文章发给他!

Java架构之路

Java 程序员 架构 面试 编程语言

神经网络攻防:03.使用API修改神经网络参数

P小二

AIPwn AI安全 P小二 神经网络攻防

【经验分享】如何释放企业CMDB价值?——CMDB建设路径浅谈

嘉为蓝鲸

运维自动化 配置中心 CMDB 配置信息 配置管理

用 Go 写一个轻量级的 ldap 测试工具

冯骐

运维 开发 ldap Go 语言

都 2021 年了,也该抛弃 ExpressJS 了

LeanCloud

大前端 nodejs 框架

手把手教学,如何使用低代码快速构建应用程序步骤详解!

优秀

低代码

四面阿里成功斩获offer,在此分享我的复盘经验总结!

Java架构之路

Java 程序员 架构 面试 编程语言

使用 ADMT 迁移本地 AD 用户到 AWS Microsoft AD_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章