AWS Directory ServiceがAPI対応しました!
森永です。
AWSにはDirectory Serviceというサービスがあります。
オンプレにあるActiveDirectoryと連携して、AWSのリソースにアクセス(AD Connector)したり、新たなDirectory(Simple AD)を作成したりできるすごいやつです。
ただし、こいつには弱点がありました。それは、API/CLIに対応していないという点です。
それが今日!解消しました!遂にAPIに対応しました!
使ってみる
みんな大好きCLIを使って試してみましょう。(MAC環境で行います。Linuxでも多分いけます。)
まずはActiveDirectory対応している最新版(1.7.27 2015/5/15現在)にアップデートします。
(CLIをそもそも入れてない方はこちらやこちらをご覧になりインストール、設定を行って下さい。)
$ sudo pip install --upgrade awscli
これだけで完了です。一応バージョンの確認をしておきましょう。
CLIのバージョンが1.7.27以降であれば大丈夫です。
$ aws --version aws-cli/1.7.27 Python/2.7.6 Darwin/14.3.0
早速使ってみましょう!今回はSimple ADを作成してみます。
コマンドで全部作成することも可能なのですが、管理の事を考えてJSONファイルを作成し、設定値をそこに書き込みます。
まずは、JSONのひな形を作成するのですが、コマンドで一発で作成できます。
$ aws ds create-directory --generate-cli-skeleton > directory_setting.json $ cat directory_setting.json { "Name": "", "ShortName": "", "Password": "", "Description": "", "Size": "", "VpcSettings": { "VpcId": "", "SubnetIds": [ "" ] } }
設定を書き込んでいきます。
ここで記載するパスワードはAdministratorのものです。
条件があり、
- 文字数:8文字以上64文字以下
- 文字種:大文字、小文字、数字、記号の4種のうち少なくとも3種を含む
というものです。
$ vi directory_setting { "Name": "test-directory.com", "ShortName": "testAD", "Password": "********", "Description": "for test", "Size": "Small", "VpcSettings": { "VpcId": "vpc-********", "SubnetIds": [ "subnet-********", "subnet-********" ] } }
こいつをCLIに食わせてDirectoryを作成します。
ローカルのファイルの場合は、ファイル名の前にfile://が必要です。(S3で管理するとかっこよさげ)
$ aws ds create-directory --cli-input-json file://directory_setting.json { "DirectoryId": "d-**********" }
うまくいくとDirectoryのIDが出力されます。せっかくなのでCLIでdescribeしてみましょう。
$ aws ds describe-directories --directory-ids d-******** { "DirectoryDescriptions": [ { "AccessUrl": "d-**********.awsapps.com", "DirectoryId": "d-**********", "SsoEnabled": false, "Name": "test-directory.com", "DnsIpAddrs": [ "10.0.5.71", "10.0.6.214" ], "VpcSettings": { "SubnetIds": [ "subnet-********", "subnet-********" ], "VpcId": "vpc-********", "AvailabilityZones": [ "ap-northeast-1a", "ap-northeast-1c" ] }, "StageLastUpdatedDateTime": 1431661932.779, "Alias": "d-**********", "LaunchTime": 1431661589.528, "Description": "for test", "ShortName": "testAD", "Stage": "Active", "Type": "SimpleAD", "Size": "Small" } ] }
うまくいきました!!あとは作成したDirectoryにWindowsを参加させるだけです!
それについてはこちらの記事をご覧くださいませ。
おわりに
これでDirectory Serviceもシェルなどでスケールしやすくなりました!
Directoryはエンタープライズでは必須な要素ですので、ありがたい限りです。
ちなみに、APIになったということはCloudTrailで証跡も取れるようにもなっています。
Directory Serviceちゃんも赤裸々です。
最後に、コマンドの一覧を載せておきます。参考までに。
コマンド一覧
コマンド | 意味 |
---|---|
connect-directory | オンプレとの接続のためにAD Connectorを作成 |
create-alias | Directoryのエイリアスを作成(消せないので必要なときだけ使用する) |
create-computer | コンピュータをDirectoryに追加 |
create-directory | 新しいDirectory(Simple AD)を作成 |
create-snapshot | スナップショットを取得 |
delete-directory | Directoryを削除 |
delete-snapshot | スナップショットを削除 |
describe-directories | Directory一覧を表示 |
describe-snapshots | スナップショット一覧を表示 |
disable-radius | MFA(Multi-Factor Authentication)を無効化 |
disable-sso | DirectoryでSSO(Single Sign-On)を無効化 |
enable-radius | RADIUSサーバを使ってMFAを有効化 |
enable-sso | SSOを有効化 |
get-directory-limits | そのリージョンでのDirectory数の制限を取得 |
get-snapshot-limits | そのリージョンでのスナップショット数の制限を取得 |
restore-from-snapshot | スナップショットからのリストア |
update-radius | MFAに使用するRADIUSサーバの情報を更新 |
参考文献
Now Available – AWS Directory Service API & CLI (Bonus: CloudTrail Integration)
ds - AWS CLI 1.7.27 documentation