Help us understand the problem. What is going on with this article?

AVM を試す

machine_jidouhanbaiki.png

今日はこれを試します
https://github.com/aws-samples/aws-account-vending-machine

これは何

AWS Landing Zone のキーコンポーネントの一つ です
組織が成長し、 AWS Organizations で複数のアカウントを持つようになると、アカウントを新規作成するときにいろいろと設定することがあって面倒になります。
Ansible 等のサーバプロビジョニングツールで解決したいことと同じような悩みが、AWSのアカウントに対しても生じるわけです。

開発チームに引き渡す前に、セキュリティとかガバナンスとかログ集約とか色々な組織のニーズに沿うように仕立てておきたいとかね。しかしだからといってそれを人の温かみのある手動でポチポチなんてやってられないのですよ。そこで今回のようなツールが欲しくなってまいります

新規メンバーアカウントを作るだけなら これ でも出来るんですが、作っただけで後は温かい手動ポチポチでは自動化になりませんので、それとこれとどう違うのかこのサンプルで見ていきましょう

事前準備

以下が必要です

  1. AWS マスターアカウント
    • (いちばん偉いやつ)
    • 可能であればマスターアカウント自体、サンドボックスとして作ってそこでやりましょう。万一の事故防止ため
  2. AVM セットアップ用の権限(後述のAccountAdministrator用, 例: IAM ロール、グループ等)
    • 今回は arn:aws:iam::010010011111:group/Administrator にします
    • この group に属する IAM ユーザーで以降の作業をするとやりやすいでしょう
  3. Organizations の有効化
  4. メールアドレス
    • (新規作成メンバーアカウント用として。例: aws-avm-my-new-account-001@yourcompany.co.jp
    • 既に他のAWSアカウントで使用されていないか注意しましょう。重複していると B) がもしかしたらうまく行かないかも

Step by Step walkthrough

さてあとは 書いてあること の通りに進めるだけなのですが、折角なので日本語で解説してゆきましょう

A) AVM のセットアップ

  1. マスターアカウントへのログインと所定リージョンの選定
    • ここでは Ohio (us-east-2) にします(以下のうちいずれか)
      • Ohio (us-east-2)
      • Oregon (us-west-2)
      • Ireland (eu-west-1)
      • Singapore (ap-southeast-1)
  2. Launch Stack ボタン押下
    • こちらLaunch Stack ボタンがあります。クリックしましょう
  3. Create Stack: 次へ
  4. Specify stack details:
    • AccountAdministrator -
      • ここでは arn:aws:iam::010010011111:group/Administrator を指定
    • SourceBucket - デフォルト
    • SourceTemplate - デフォルト
  5. Configure stack options: 次へ
  6. Review page, I acknowledge .. 云々にチェック -> Create Stack
  7. 10秒ほどで CREATE COMPLETE とアウトプットが得られます。もしうまく行かない時は前工程を疑いましょう
  8. Output セクションに AccountLambda という情報が来ていますのでこれを控える
    • ここは画像で補足します。この arn を控えておきます。後工程のインプットになります( MasterLambdaArn ) anoned_Screenshot from 2019-12-20 13-27-15.png

ここまでで AVM のセットアップ完了

B) AVM の起動と新規アカウントの発行

前工程で AVM 自体のセットアップを行いました。その AVM を動かします

  1. 前工程で使用した IAM エンティティでマネコンへログインします。 今回の場合 arn:aws:iam::010010011111:group/Administrator に属している任意の IAM ユーザーでログインしている前提で進めます

  2. Service Catalog

  3. プロダクトリストから AVM > LAUNCH PRODUCT

  4. Product Version page: 任意の名前(今回は my-new-account-001) を入力し、バージョンを選択

  5. Click NEXT

  6. Parameters page:

    • MasterLambdaArn: 先の MasterLambdaArn で控えた値
    • AccountEmail: 事前準備で用意した任意のメルアド
    • OrganizationalUnitName: あってもなくても良い。お好きに
    • AccountName: Enter an account name
      • ここでは同じく my-new-account-001 にします
    • StackRegion: お好きに
    • SourceBucket: デフォルト
    • BaselineTemplate: デフォルト
  7. Click NEXT.

  8. On the TagOptions page, click NEXT.

  9. On the Notifications page, click NEXT.

  10. On the Review page LAUNCH

    • 少し時間がかかります(5~10分くらい)。AVAILABLE になるまでコーヒーでも飲みながら待ちましょう
    • もしうまく行かない時は前工程を疑いましょう(メルアド重複、 Organizations の有効化等)
  11. こうなれば成功
    https://github.com/aws-samples/aws-account-vending-machine/blob/master/resources/images/output.png

  • これで次工程 C) に必要なインプットが揃いました
  • ※ ここから C) を省略する場合でも最低限、ここで払いだされた IAM ユーザのログイン情報は安全なものに直ちに変更しましょう
    • パスワードがそのまんまですので放置すると危険です
    • 次工程 C) の 2 までやればひとまず安心(初回ログインで変更を強制される)

C) 発行した新規アカウントへログインしてみる

  1. 前工程 B) で新規作成した AWS アカウントにログイン
    • リージョンは前工程 StackRegion で指定したリージョンです
  2. ログイン情報入力
    • ログインURL、ユーザ名は前工程 B) のアウトプットとして示されています。パスワードは 参照先の github を参照。初回ログインにつき変更を促されます
  3. Service Catalog で pre-configured された AWS Service Catalog products を閲覧できる
  4. VPC で 全リージョンの default VPCs が消えているのを確認
  5. VPC の新規作成が所定の方法では許可されていないのを確認

※すみませんが続きは長いので本投稿では省略します。英語で構わない方はどうぞ

掃除

おかしな課金をされないようここまでに作成したリソースを削除しましょう

  • Service Catalog > Provisioned Products にあるものを terminate
  • CloudFormation console で関連スタックを Delete

※ただし上記の作業だけでは肝心の作成済みのAWSアカウント自体は消えないようです。まぁ本番用を想定しますとにこんな簡単な操作でアカウントごと消し飛ばすことが出来ては逆に困るわけですが。なので root 経由で所定の方法で 解約操作をする必要があるようです。
root のパスワードはここまでの手順ではまだ手元にありません。慌てずに リセットの操作 をしましょう

まとめ

本番用としてはこのサンプルだけでは物足りないのですが、 Landing Zone の理解を深める一助にはなるでしょうか。 baseline を熟成させたりいろいろとやりたくなりますね。ソースを眺めるとより理解が深まるでしょう

本投稿は概ね冒頭の README.md の内容を一部日本語で写しただけなので、 英語を読める方は元の github をそのままご覧になったほうがよいかと思います

以上になります

o2346
hands-lab
ハンズラボは小売業特化型ITソリューション企業です。数十万に及ぶ膨大な商品マスタを扱ってきた豊富なノウハウで、お客様の現場に最適なシステムを提案・開発します。 エンジニア募集中
https://www.hands-lab.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした