Organizationsを触ってみた

AWS運用自動化サービス「Cloud Automator」
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。

こんにちは、カスタマーサポート課 マツシタです。
昨年のre:Inventで発表されたOrganizationsがついにGAとなりましたね!
このサービスを待ちに待っていたのは私だけじゃないはずです。

Now Generally Available – AWS Organizations: Policy-Based Management for Multiple AWS Accounts

はじめに

まず、このOrganizationsは請求アカウントでしか利用できません。なので、残念ながら、pieCeをご利用のお客様にすぐ体感いただくことはできません。サービス仕様がはっきりしてきましたら、pieCeのお客様にもサービスを使っていただけるように方法を模索いたしますので、しばらくのご辛抱をお願いいたします。

何回かに分けて、その機能を紹介させてもらいたいと思っています。今回はすでに請求アカウントをお持ちの方が、もう1つAWSアカウントを取得したい場合の方法を紹介します。

AWSアカウントを取得してみよう

請求アカウントのマネージメントコンソールにログインします。右上にアカウント名が表示されているプルダウンメニューに「私の組織」というメニューがあります。これがOrganizationsの入口です。英語表記の場合には「My Organization」となります。



Organizationsのダッシュボードは「Accounts」「Organize Accounts」「Policies」の3つタブがあります。今回は「Accounts」タブを選択します。すると、その下のメインとなるペインに子アカウントの一覧が表示されます。「Account name」「Account ID」「Status」と3つの情報とチェックボックスがあります。新規でAWSアカウントを取得したい場合にはその上の「Add account」をクリックします。

「Invite account」「Create account」の2つのアクションが選択できます。既存のAWSアカウントを請求アカウントの配下に入れたい場合には「Invite account」を選択します。今回は新規で作成したいので「Create account」を選択します。

「Full name」「Email」「IAM role name」と3つの情報が入力できるフォームが現れます。「IAM role name」は任意入力項目です。AWSアカウントを作成するときに内部でAPIを実行するためのIAM roleの名前を設定したい場合に入力します。何も記入しないと「OrganizationAccountAccessRole」というIAM role nameで作成されます。「Full name」「Email」は必須入力項目です。今回はこの2つを入力して「Create」をクリックします。


Organizationsのダッシュボードに戻ります。ただ、作成を試みたアカウントが「Creation in progress」のステータスで表示されています。


数分後、検索フォームから作成したアカウント名で検索してみるとアカウントが「Created on 2/28/2017」(本日)のステータスで表示されています。


どうも作成できたみたいです。作成されたAWSアカウントは自動的に請求アカウント配下の子アカウントとなります。

以前(というか昨日まで)は、AWSアカウント発行の際には、電話がかかってきて認証コードを入力したりしていました。また、カード情報の入力も必要だったので、誰にでもお願いできる作業でもありませんでした。それらの作業が全くなくります。想像していた以上に弊社にとっては便利です。APIを使えば、もっと簡単にAWSアカウントを発行できそうですね。


本日はこのへんまで。まだまだ、奥が深いので、また時間をとって触っていきたいと思います。

参照:AWS Organizations – Policy-Based Management for Multiple AWS Accounts

— 2017/03/02 追記 —
まず、一つ訂正です。
アカウント作成後にメールでの通知がありました。


合わせて、同じオペレーションをCLIでも試みてみましたので、紹介いたします。
なんとコマンド1つでアカウント作成ができます。

$ aws organizations create-account –email xxxxx@serverworks.co.jp –account-name xxxxx
{
“CreateAccountStatus”: {
“RequestedTimestamp”: 1488278140.614,
“State”: “IN_PROGRESS”,
“Id”: “car-12345678901234567890123456789012”,
“AccountName”: “xxxxx”
}
}



endpointがus−east−1になりますので、注意が必要です。
リージョンを指定せずに実行すると当然、エラーとなります。

Could not connect to the endpoint URL: "https://organizations.ap-northeast-1.amazonaws.com/"




このコマンド実行時点ではまだAWSアカウントが作成されておりません。つまりはAWSアカウントIDは取得できません。スクリプトなどで自動化する場合には、「car-」で始まるリクエストIDからAWSアカウントIDを取得します。約10分弱経過しますとAWSアカウントの作成が完了し以下のようにリクエストIDからAWSアカウントIDが取得できます。

$aws organizations describe-create-account-status –create-account-request-id car-12345678901234567890123456789012
{
“CreateAccountStatus”: {
“AccountName”: “xxxxx”,
“State”: “SUCCEEDED”,
“RequestedTimestamp”: 1488278140.743,
“CompletedTimestamp”: 1488278146.223,
“Id”: “car-12345678901234567890123456789012”,

“AccountId”: “123456789012”
}
}



これでAWSアカウント作成からその作成したAWSアカウントの情報を取得し、データベースなどへの自動登録までできます。

AWS運用自動化サービス「Cloud Automator」