#1.はじめに
みなさんAWSのアカウント設計はどのようにしていますか?
AWSを使ってシステムをセキュアに開発・運用していくためには、
AWSアカウント(*)の設計が重要になりますよね。
AWSアカウント1つのみで運用されてる方は、誤操作や、
誰にどの権限を与えるかのポリシー設計等で困る方もいらっしゃるのではないでしょうか。
(私もその一人です。)
本内容は、『Amazon Web Services 業務システム設計・移行ガイド』にも載っているので、
悩んでる場合は、購入をおすすめします!(こちらの書籍と実体験を元に書いてます。)
今回はAWSアカウント設計について、パターン別にメリット・デメリットを書いていこうと思います!
(*)AWSアカウントとは、AWSを使用するためのマスターアカウントのことを指しています。
※IAMユーザーとは別物です!
#2.AWSアカウント設計パターン紹介
本章では、アカウントの設計パターンを3つに分けてメリット・デメリットを書いていきます。
①アカウントを分割しないパターン
②環境ごとにアカウント分割パターン
③システム、環境ごとにアカウント分割パターン
※.ECサイトと分析基盤のシステムがあり、環境は本番/検証/開発環境があるとして書いていきます。
##2-1.アカウントを分割しないパターン
こちらは、以下の図2.1 のように、AWSアカウントを分割せず、
VPCごとに環境を分割するパターンです。
###◯メリット
・3パターンのうちコストが一番安価
→NATゲートウェイや Direcr Connect 、AWSサポートを一つにまとめることができる
###△デメリット
・IAMポリシーが複雑になる
→コードを書くのも、管理するのも手間がかかります。
・3パターンのうち誤操作をする確率が最も高い
##2-2.環境ごとにアカウント分割パターン
こちらは、以下の図3.2 のように、環境ごとでAWSアカウントを分けるパターンです。
###◯メリット
・環境ごとのコスト管理が容易になる
・マネジメントコンソール上に別環境のリソースが表示されなくなる
→同環境のリソースは表示されますが、別環境に対する誤操作のリスクがなくなります。
###△デメリット
・リソースの数が増え、アカウントを分割しないパターンよりコストが高くなる
→NATゲートウェイ等のリソースが3環境分必要となり、コストが高くなります。
また、ハイブリッド(オンプレ+クラウド)環境の場合、Direct Connectのコストも3環境分必要となります。
・AWSサポート料金がアカウントを分割しないパターンより高い
→3環境分契約することになるため、価格は上がる可能性があります。
・アカウントを分割しないパターンより管理に手間がかかる
→環境ごとにロールの変更が必要となるため、少し手間が増えます。
##2-3.システム、環境ごとにアカウント分割パターン
こちらは、以下の図2.3 のように、システムと環境ごとでAWSアカウントを分けるパターンです。
書籍でもこちらをおすすめしていました!
###◯メリット
・システムごとのコスト管理が容易になる
・マネジメントコンソール上に自分が管理していないリソースが表示されなくなる
→誤操作の確率がぐ〜んと下がります。これほんとに嬉しいです!
・IAM ポリシーの管理が楽になる
→複雑なIAMポリシーを作成する必要がなくなる上に管理工数が下がります!
###△デメリット
・リソースの数が増え、コストが高くなる
→NATゲートウェイ等のリソースが複数必要になることがあります。
また、ハイブリッド環境の場合、Direct Connectも複数必要です。
・AWSサポートの料金が環境ごとにアカウント分割パターンよりも高い
→各AWSアカウントごとの契約となるため、価格が上がリます。
・管理に手間がかかる
→ユーザーの切り替えや、AWSアカウントごとにIAMユーザーを作成する必要があるなど。
(IAMユーザーであれば、CloudFormationで自動化すれば解決できます。)
#3.まとめ
AWSアカウントの分割パターンをメリット・デメリットと共にを3つあげました。
「2-3ではコストが高い」や「2-2よりもう少しセキュアにしたい」等、
場合によって、2-1と2-2の間や、2-2と2-3の間というパターンもあるかもしれません。
コストとリスクを考慮した上で決めていくのが良いと思います!
個人的には、システムを一番セキュアに運用できる
"システム、環境ごとにアカウント分割パターン"がおすすめです。
また、AWSアカウントを増やす場合、AWSアカウント自体を管理するための
「AWS Organizations」というサービスがあります。
こちらの活用もおすすめします。
公式ドキュメントのリンクも貼っておきますので、気になる方はチェックしてください。
◯AWS Organizationsとは
https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_introduction.html
今回はこの辺りで!!
お読みくださりありがとうございました!!
4/8 追記
アカウントを分割しても「Shared VPC」を使用すれば NAT Gateway は共有できるようです!
同一の Organization にいる必要がある等の条件がありますので、以下URLをご参照ください!
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-sharing.html
また、Direct Connectもアカウント間で共有できるようになるそうです!
条件等は以下をご参照ください!
https://aws.amazon.com/jp/about-aws/whats-new/2019/03/announcing-multi-account-support-for-direct-connect-gateway/