この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
森永です。
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