AWS Organizationsを活用したマルチアカウントのセキュリティサービス使用方法 ~はじめに~
AWSのセキュリティサービス、活用できていますでしょうか。
私も過去に以下のような発表を行ったり、
以下のような記事を書いております。
記載内容は、AWSアカウントは作成した時点でリスクを持つので、最低限有効化すべきサービスを有効にして、セキュアな状態を保ちましょうというものになります。
ただし、この内容はあくまでAWSアカウントを1つ作成するときの内容となっています。最近では開発、本番など環境に応じて複数のアカウントで1システムを運用することも多くなってきていると思います。
そこで複数アカウントの場合はAWSのセキュリティサービスをどう使用できるのか書いていきたいと思います。 すべてのサービスを1記事で書くと長くなるので、連載形式で順々に書いていこうと思います。
今回は「はじめに」ということでマルチアカウント管理の要である、Organizationsの機能についてざっと整理します。
AWS Organizationsとは
Organizationsは、複数のAWSアカウントを管理して、各種サービスをアカウント間で連携できる機能を持つサービスです。いくつかポイントを紹介します。
一括請求ができる
通常(Organizationsを使用しないで)AWSを利用する場合は、AWSアカウントごとにクレジットカード情報を登録し、アカウント単位で請求が発生します。
AWSにはコストを可視化できるCost Exploerなどコスト管理のサービスがいくつかありますが、これらのサービスもアカウント単位で利用することになるため、システム全体としてコストを管理していく場合に難しくなります。また、アカウントの追加ごとにカード情報を入力する必要があるため、手間もかかりますし、セキュリティ面でもカード情報が多く登録されることは好ましくないかと思います。
Organizationsを使用すると、請求およびコストの管理をマネジメントアカウントという全アカウントの親にあたるアカウントで一元管理が可能になります。
マネジメントアカウント上でシステム全体、またアカウントごとのコスト管理も可能になり、請求情報も1ヵ所で管理できるようになります。
他のAWSサービスを組織単位で使用できる
Organizationsで作成したAWSアカウントの集まりを組織と呼びますが、組織単位(=全アカウント)でまとめてAWSサービスの設定が行えます。 使用できるサービスは限られますが、例えばAWSの操作履歴を残すCloudTrailの証跡設定では、組織単位でCloudTrailの証跡を有効にすることで、全アカウントの操作履歴を1つのアカウントで見れるようになります。
管理アカウントの委任
複数のアカウントに分ける場合、役割ごとにアカウントを分けるのが一般的であり、AWSもそれをベストプラクティスとする場合が多いです。役割ごとに分ける=1アカウントに1つの役割を持たせるということになります。
Organizationsのマネジメントアカウントは請求管理の役割を持つので、セキュリティ情報の集約は別途セキュリティアカウントを用意してそこに集める構成を取ることも多いです。ただし、組織単位でサービスを使用すると、デフォルトではマネジメントアカウントに情報が集約されます。たとえばAWSの設定情報履歴を保存する AWS Configでは、CloudTrailのときと同様デフォルトでマネジメントアカウントに情報が集約されます。
この情報集約の役割を別アカウントに移せるのがアカウントの委任機能です。 委任が使用できるサービスは限られますが、アカウント委任を使用してセキュリティ集約アカウントに情報を集めることができます。
OU(Organizational Unit)とSCP(Service Control Policy)
OrganizationsにはOUという機能があり、組織内のアカウントをOUという単位でグループ化することができます。たとえば以下のように複数のシステムアカウントをまとめて一つのOU、セキュリティアカウントは別のOUという形でグループ化しておくことができます。
このOUと組み合わせて使用できる強力なセキュリティ機能がSCPです。SCPは複数アカウント(OU単位)に設定できるIAMポリシーのような機能で、「指定したOUに所属するアカウントではアクセスキーの作成を禁止する」といったセキュリティガードレールの設定も可能です。OUとSCPの具体的な設定方法については、以前私が発表した資料に書いておりますので、合わせてみていただけると幸いです。
そのほか指定のOUに所属するアカウント全てにCloudFormation(StackSets)を実行するといった、別サービスとの連携機能も一部あります。
AWS SSOとの連携
AWS SSO はOrganizationsと組み合わせて使用できるシングルサインオンのサービスです。1箇所で利用者の認証・認可の管理ができます。 こちらはOrganizationsの機能というよりは別のサービスになりますので、次回以降の記事で解説していこうと思います。
各セキュリティサービスの利用方法
Organizationsの機能をざっくり整理できたところで、これを活用して各セキュリティサービスがどう利用できるのか、以下のポイントで見ていきたいと思います。
- サービス有効化、マルチアカウントでの集約手順
- 組織単位で利用可能か
- アカウントの委任は可能か
見ていくサービスは以下のとおりです。各サービスの詳細は次回以降の記事で順々に書いていこうと思います。
- ルートユーザの保護、IAMの管理(AWS SSO)
- コストの可視化(Cost Explorer、Budgets)
- CloudTrail
- AWS Config
- Amazon GuardDuty
- IAM Access Analyzer
- AWS Security Hub
- Amazon Detective
- AWS Personal Health Dashboard
- AWS Trusted Advisor
各サービスの記事ができたら、この記事にもリンクを貼っていく予定です。 ひととおり書けたら、まとめと、CloudFormationでコード化するところも書いてみたいと思います。
マイペースで進めますので、完成は未定です・・1月上旬くらいには・・