Windows Active DirectoryのデータをAWS Directory Service(SimpleAD)に移行する
クラウド上の管理型ディレクトリーサービスとしてAWSがリリースした『AWS Directory Service』が登場して久しいですが、下記エントリでは、Windows Active DirectoryからAWS Directory Service(Simple AD)へのデータ移行に関する手順が紹介されています。そこで当エントリでは、この内容を参考にして実際にデータ連携を確認してみました。
目次
移行元環境
移行元環境の準備
移行元となるActive Directory環境のデータは、以下エントリでTableau Serverの認証先として指定した時に使ったActive Directory on EC2のデータを使いました。
移行元環境からのデータエクスポート
エクスポートに際してはcsvdeというツールを用いました。以下コマンドで必要な環境を整えます。
> Install-WindowsFeature RSAT-ADDS-Tools
上記AWSブログエントリに倣って、項目を指定する形でデータをエクスポート。
> csvde -f users.csv -l "DN, objectclass, objectcategory, givenName, sn, name, samAccountName, displayname" -r "(&(objectClass=user)(objectCategory=person))"
こんな感じでデータを引っこ抜く事が出来ました。
移行先環境
AWS Directory Service(Simple AD)構築
移行先環境となるVPC配下にSimple AD環境を構築します。構築手順については特に難しいところは無いので割愛します。
移行作業用環境作成(Amazon EC2/Windows Server 2008 R2)
Simple AD環境に対してデータのインポート等を行う環境はWindows Server 2008 R2を用いる事にしました。インスタンス構築後、RDP経由でローカルのAdministratorでは無く、ドメインのAdministratorとしてログインします。
Amazon EC2/Windows 2008 R2: AD&LDSツールのインストール
移行先の環境となるこちらについても、データをインポートする為の環境を整えます。こちらについてはAWSの公式ドキュメント『Installing the Active Directory Administration Tools』を参考にGUIベースでインストールを行いました。
- Installing the Active Directory Administration Tools - AWS Directory Service
- Windows ファイアウォールを有効または無効にする - Windows ヘルプ
移行先:データのインポート(ユーザー)
エクスポート時と同様に、インポートの際もcsvdeを使ってデータのインポートを行います。所定のオプションで実行を試みてみましたが、エラーとなってしまいました。
こちら、原因は投入するユーザーが既に存在しているものが数件あった事によるものでした。『Administrator』『Guest』『KRBTGT』はインポートには不要&エクスポート時に含まれてしまっており、このタイミングでエラーとなりました。
投入データから該当するユーザーの情報を削り、
再度インポート実行。今度は上手く行きました。
グループデータの移行について
上記までの手順で、ユーザーに関する情報はひとまず取り込めたようです。(※併せて、この後ユーザー個別のパスワード設定が入る形となります。)
しかし、移行元のデータには、ユーザーが所属する『グループ』のデータもありました。この『グループ』に関するデータは『ユーザー』の情報の中には含まれていないようです。
調べてみると、グループのデータは別途対応する必要があるようでした。
- Tech TIPS:Active Directoryのアカウント情報をcsvdeコマンドでエクスポートする - @IT
- 標準コマンドで楽をしよう – csvde | Windowsインフラ管理者への道
PS C:\Users\Administrator> csvde -u -f cmad-groups.csv -r objectCategory=group "(null)" に接続しています SSPI を使って現在のユーザーとしてログインしています ディレクトリをファイル cmad-groups.csv にエクスポートしています エントリを検索しています... エントリを書き出しています ................................................ エクスポートが完了しました。後処理を実行しています... 48 個のエントリがエクスポートされました コマンドが正しく完了しました PS C:\Users\Administrator>
ただ、これをこのまま取り込むとエラーとなってしまいます。
Windows環境でエクスポートした内容と、SimpleADで一旦手動登録を行ったものを再度エクスポートした内容を比較してみます。若干の際もありそうですし、何より取り込む際に不要な情報が幾らかありそうでもあります。(※上記エクスポートはユーザーの様に項目を指定していない為、全ての項目が出力されている模様)
(WinAD) "CN=awsdev,DC=cmad,DC=local",group,awsdev,,"CN=awsdev,DC=cmad,DC=local",4,20160518013509.0Z,20160518014356.0Z,14711,14794,awsdev,X'9f72fa0947b95249a873bafe882fb6f3',X'0105000000000005150000001fe01c0188499d62912390655d040000',awsdev,268435456,-2147483646,"CN=Group,CN=Schema,CN=Configuration,DC=cmad,DC=local",16010101000000.0Z,"CN=じろう あまぞん,DC=cmad,DC=local",,,, (SimpleAD) "CN=awsdev,DC=cmad,DC=local",group,awsdev,,4,20160524103736.0Z,20160524103852.0Z,3810,3813,awsdev,X'd4953dba3cf24046ae3536240b46cc0b',X'010500000000000515000000341f8f2d47f9b8eca705eb396c040000',awsdev,268435456,-2147483646,"CN=Group,CN=Schema,CN=Configuration,DC=cmad,DC=local",,"CN=awsdev,DC=cmad,DC=local","CN=じろう あまぞん,DC=cmad,DC=local",,,
今回は検証用のデータだったので(グループの)情報も少なく、手動でグループを作成→ユーザーをグループに追加、という形を取りましたが、必要であればグループも必要事項のみを抽出する形でエクスポートを行い、ユーザー取り込み時同様にグループもインポートする必要がありそうです。(その辺りの検証もしようかと思いましたがちょっと時間が取れなかったのでひとまずここで区切り)
まとめ
以上、Windows Active DirectoryからAWS Directory Service(Simple AD)へのデータ移行に関する手順のご紹介でした。若干の微調整は必要となりますが、このような形でデータ移行がシンプルに行えるのは助かりますね。こちらからは以上です。