🗼

スタートアップでどのようにAWS Control Towerを導入したのか

2021/12/18に公開約4,900字

自己紹介

現在WHITE CROSSという歯科医療向けのWEBメディアや事業を行っているスタートアップでエンジニアとして働いています。小倉です。
好きなAWSサービスはAmazon RDS for Auroraです。

概要

この記事ではスタートアップがどのような経緯、手順でControl Towerを導入したのかを記述しています。
なので、あまりControl Towerの操作方法には触れていません。
それについて知りたい方は本記事最下部の「Control Tower導入時に参考にした記事一覧」にある記事をご参照ください。

自社が抱えていた課題

スタートアップというのは早くサービスをリリースし、早くPMFすることを目指します。
すると、どうしてもインフラ・セキュリティは後回しになっていることがあります。
弊社の過去のインフラ構成での課題を2つ挙げます。

1. 単一のVPCで複数のプロダクトが稼働していた

もちろん単一のVPCの中で複数のプロダクトを動かすことは可能です。しかし、1つのプロダクトで必要な設定は共通のネットワークACLに対して行います。そうすると、他のプロダクトは不要なネットワークの設定がされている状態になります。リスクを抱えたままプロダクトを動かしていることになるので、これは早急に解決したい課題でした。

ネットワークACL・・・Amazon VPCのファイアーウォール機能。

2. IAMユーザー・ロールの管理が統制されていなかった

IAMユーザー・ロールの管理は個人がその時に必要な権限を設定していました。もちろん各々がしっかりとした権限管理を行うことが出来れば気にすることはないです。しかし、スタートアップはどんどんと組織が大きくなります。そのような環境下で権限管理を個人の塩梅に任せることは不可能でしょう。

以上の2つの課題をAWS ソリューションアーキテクトの方に相談する機会をいただきました。
そして、この2つを解決するソリューションとして提案していただいたサービスがAWS Control Towerでした。

Control Towerとは...

AWS Control Tower は、ランディングゾーンと呼ばれる安全なマルチアカウント AWS 環境をセットアップおよび管理するための最も簡単な方法を提供します。AWS Control Tower は、AWS Organizations を使用してランディングゾーンを作成し、継続的なアカウント管理とガバナンス、およびクラウドに移行する数千のお客様と連携してきた AWS の経験に基づいた実装のベストプラクティスを提供します。AWS Control Tower では、ビルド担当者は新しい AWS アカウントを数クリックだけでプロビジョニングでき、しかもアカウントは貴社全体のポリシーに準拠しているという安心感が得られます。

https://aws.amazon.com/jp/controltower/?control-blogs.sort-by=item.additionalFields.createdDate&control-blogs.sort-order=desc

簡単に説明すると、「AWSが推奨する環境をたった60分程度でセットアップしてくれるサービス」です。
サービス名「Control Tower」で画像検索すると「航空管制塔(Air Control Tower)」が出てきます。
Control Towerは航空管制塔のように、AWSのクラウド環境を統制するために作られたサービスだとイメージできます。

結論、Control Towerはスタートアップが使用するべきサービスだと思います。
なぜスタートアップこそControl Towerを使用すべきかはこの後自分も解説しますが、詳しくはAWS スタートアップ ソリューションアーキテクトの松田様の記事をご参照いただければ幸いです。

https://aws.amazon.com/jp/blogs/startup/multi-accounts-and-control-tower/

Control Tower導入までに行ったこと

Control Towerを導入するまでに主に以下3つを行いました。

  1. OU設計
  2. 権限設計
  3. ルートアカウントの管理方法検討

1. OU設計

Control Towerでアカウントを作成する場合、そのアカウントはOU配下に配置します。
なので、どのアカウントをどのOUに配置するかを設計しました。
Control Towerを使用する前提でOUを設計する上で注意しなければ行けない点が1点あります。AWS Organizationsを使用した場合は、OU配下にOUを配置することが出来ます。ただ、Control Towerの場合、現時点(2021/12)ではOU配下にOUを配置することが出来ません。この点が既にOrganizationsでマルチアカウント運用している企業にとってはネックになるのか分かりませんが、自分たちには特に気になる問題ではありませんでした。
OUの設計図

設計時には以下の記事を参考にしました。

https://aws.amazon.com/jp/blogs/news/best-practices-for-organizational-units-with-aws-organizations/

2. 権限設計

次に権限の設計を行いました。
ここでは以下のことを決定しました。

  1. アカウントに紐づくグループ名
  2. アカウントに紐づくアクセス権限セット名
  3. アクセス権限セットを用いて実際に行う操作の説明
  4. アクセス権限セットに与える権限
  5. アクセス権限セットのセッション時間
  6. グループに属するユーザー

あらかじめ決めておくことで、後はコンソールでの操作に集中できました。
これらをコンソールの操作をしながら決定するのはなかなか難しいと思います。
なので、フォーマットは何であれ、あらかじめ設計しておくことをおすすめします。
権限設計
(見せられるものが少なく、6割真っ白になった...)

3. ルートアカウントの管理方法検討

Control Towerでマルチアカウント運用を行った場合、ルートアカウントは全ての権限を持つことになります。そのため、万全な対策を行い、なんとしてもアカウントの乗っ取りを防がなければなりません。
どのようにルートアカウントを管理するかを予め決定しておくことで、予期せぬルートアカウントの乗っ取りリスクを避けます。
これに関しては以下の記事を参考にしました。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/best-practices.html
旧AWSアカウントでは個人のスマートフォン端末で2段階認証を登録してありました。
しかし、個人のスマートフォンだと端末を持ち歩くので紛失・破損する可能性がある、その方が組織を離れる可能性があるなど、2段階認証の端末としては不十分です。
今回、弊社ではユビキーを購入し、それを2段階認証を行う端末として登録しました。

https://www.amazon.co.jp/Yubico-YubiKey-NFC-USB-2つのファクター認証セキュリティキー/dp/B07HBD71HL/ref=asc_df_B07HBD71HL/?tag=jpgo-22&linkCode=df0&hvadid=296039490227&hvpos=&hvnetw=g&hvrand=9350460400966932242&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009343&hvtargid=pla-632530054732&psc=1

これによりルートアカウントでログインする場合はユビキーが必ず必要になりました。ただ、そもそもルートアカウントへの頻繁なログインは推奨されていません。なので、ユビキーを厳重に保管することでルートアカウントへの不正アクセスや誰かが持ち歩くスマートフォンの心配が少なくなりました。弊社ではユビキーを購入して良かったと思います。ユビキー楽だし。

Control Towerに対する感想

まず、Control Towerを使用することで、元々抱えていた課題2つを解決することが出来ました。課題を解決するだけなら色々と方法がありますが、Control Towerを使用すると、AWS SSOによるシングルサインオン環境の導入・AWS CloudTrailやAWS Config・ガードレールなどのセキュリティ系サービスのセットアップなどが簡単に行えました。これらのサービスはもちろんControl Towerがなくても導入出来るし、するべきです。しかし、それらが重要だとステークホルダーを説得出来ない場合は、なかなか導入に踏み切れない組織も多いと思います。
特にスタートアップでは、これらの導入のためにサービスのリリースが遅れることは許容されないでしょう。
しかし、Control Towerを使用することでこれらを簡単に導入できます。
ぜひまだ導入されていない組織、団体、特にスタートアップはControl Towerをご検討されてはいかがでしょうか?

広報

ツイッターやってるのでフォローしてください!

https://twitter.com/kazukiogura_?s=20

絶賛仲間募集中です。
フロント、バックエンド、インフラ、SRE、デザイナーどこのポジションでも大歓迎です!

https://www.green-japan.com/job/120689?lid=n_other_jobs
(一応求人貼り付けましたが、よく分からなければDMください。)

Control Tower導入時に参考にした記事一覧

https://www.slideshare.net/AmazonWebServicesJapan/20180214-aws-blackbeltorganizations
https://dev.classmethod.jp/articles/aws-sso-wakewakame/
https://dev.classmethod.jp/articles/account-and-vpc-dividing-pattern/
https://dev.classmethod.jp/articles/aws-organizations-best-practice/
https://www.youtube.com/watch?v=JpJjJ39c5oQ&ab_channel=JAWSDAYS2021
https://logmi.jp/tech/articles/323827
https://dev.classmethod.jp/articles/aws-control-tower-ga/

Discussion

ログインするとコメントできます