fu3ak1's tech days

何事もシンプルに。主にAWS関連の記事を書いています

AWS Organizationsを活用したマルチアカウントのセキュリティサービス使用方法 ~まとめ~

ひととおり、各サービスについてOrganizationsを使用した集約設定方法をまとめました。本記事でまとめていきます。

Organizationsの復習

Organizationsは元々、複数アカウントの利用料請求を一括にまとめる機能でしたが、現在では各サービスの情報を組織内で一括管理できる機能があります。

デフォルトではManagement(親)アカウントに情報が集約されます。(以下CloudTrailの例)

f:id:fu3ak1:20210119152129p:plain

アカウントの委任という機能に対応しているサービスもあり、これを利用することで集約するアカウントをOrganizations配下のメンバーアカウントに変更できます。(以下Configの例)

f:id:fu3ak1:20210119152229p:plain

また、いくつかのサービスは、組織へアカウントが追加されたときに、そのアカウントでサービスを自動有効化する機能もありました。(以下GuardDutyの例)

f:id:fu3ak1:20210119162413p:plain

各サービスの対応状況

  1. Organizations集約に対応
  2. メンバーへの委任
  3. アカウント追加時の自動有効

の3点について、各サービスがどう対応しているか表にまとめました。各サービス名をクリックすると設定方法の記事へ遷移します。

サービス名 1.Organizations対応 2.メンバー委任 3.メンバー自動有効 補足
ルートユーザーの保護 × × × 各アカウントで個別に実施する必要あり
AWS SSO(IAM) × - 権限セットとしてグループごとにIAMポリシー管理
Cost Explorer ×
AWS Budgets × - メンバーアカウント単独で予算設定は可能
CloudTrail 証跡S3バケットをメンバーアカウントに設定することは可能
メンバーアカウントから閲覧は追加設定が必要
AWS Config × メンバーアカウントはあらかじめ有効が必要
GuardDuty
IAM Access Analyzer × 組織とメンバーのアナライザーは別扱い
AWS Security Hub
Detective × × × Organizations未対応、個別にアカウントを招待
Personal Health Dashboard × - PHD単体は自動有効
Trusted Advisor × - TrustedAdvisor単体は自動有効

※アカウント単体で一律有効にするサービスではないAWS SSO、AWS Budgetsの③は「-(対象外)」としています。

※PHDとTrustedAdvisorはアカウント単体で自動有効なので同じく「-(対象外)」としました。

一括設定の方針

もし新規のOrganizationsでこれらの設定を一気にやるにはどうやったら良いのか考えてみます。

流れとしては以下のとおりです。私の1案となります。

  1. 組織の作成、すべての機能の有効化

    これを行うことで、Organizationsの組織が作成され、各サービスでOrganizationsと連携ができるようになります。 AWS CLIでも実行できますが、特に初めての方はマネジメントコンソールがわかりやすいです。

  2. CloudFormationテンプレートの作成、CloudFormation StackSetsのデプロイ

    AWS Config、IAM Access Analyzerはメンバーアカウントでサービスを手動で有効にする必要があります。

    アカウントの追加時に自動で有効になってほしいこの2つは、有効にするCloudFormationテンプレートを作成しておきます。

    それをCloudFormation Stack Setsとして登録しておくことで、アカウント追加時に自動有効化することができます。

    f:id:fu3ak1:20210119191608p:plain

    佐々木さんのブログより拝借しました。StackSetsの詳細はこのブログで書かれています。

  3. 各サービスのOrganizations機能有効化

    これまでの記事で紹介してきた手順のとおり、各AWSサービスでOrganizationsを使用した集約設定をやっていきます。記事のとおりマネジメントコンソールでやるのもわかりやすいし、面倒な方はCLIでも良いと思います。ルートユーザの保護(MFA設定)は手動で行う必要があります。

    一度設定すると変更する機会も少ないので、CloudFormationまで作るのは微妙かもしれませんが、複数のOrganizationsでやるには良いかもしれません。CloudFormationが各Organizationsの機能に対応しているかは確認する必要があります。

    AWS SSOは設定する権限、Budgetsは予算額を決定して設定する必要があります。

初期の設定はここまでやっておけば大丈夫かと思います。そのほか環境に応じて必要なサービスがあれば合わせて有効にすると良いでしょう。

新規アカウント追加時の対応

自動有効でもなく、CloudFormation StackSetsでも有効にできない以下のサービスおよび設定はアカウント追加時に手動で作業を行う必要があります。

  • ルートユーザーの保護
  • AWS SSO(IAM) ⇒必要に応じて権限セットも追加
  • AWS Budgets ⇒予算額を設定して設定。組織のみで管理であれば不要
  • Detective ⇒1アカウントに集約する場合は招待、承認の作業が必要

SSO、Budgetsは本来アカウント単位で権限や予算を設定すべきものなので、手動なのは仕方ないかなと思います。

ルートユーザーの保護は、悩ましいです・・。作成時は利用者がわからない自動生成されたパスワードが設定されますが、 きちんと手動でMFA設定が良いと私は考えています。

Detectiveは、そのうちOrganizations対応すると思いますw

今後期待する新機能

一つ前に書いたルートユーザーの自動保護と、DetectiveのOrganizations対応に期待しています。

また、請求情報をまとめたり、ボリュームディスカウントを効かせるために、プロジェクトA、プロジェクトBといった複数プロジェクトを1つのOrganizations組織に入れることも多いのですが、この場合AWS SSOやセキュリティサービスはプロジェクト単位で実施したくなります。

ボリュームディスカウントやSavingsPlansの割引は、組織全体で効かせることができます。

紹介したサービスはOrganizationsの1組織全体で行う前提なので、今後、たとえばOU単位でサービスの設定ができたり、複数のOrganizations組織の請求部分だけ1つにまとめるといった機能に期待しています。

さいごに

Organizationsを活用したサービスシリーズ、10サービスについて書きました。謎の達成感を感じております。

今回はセキュリティをトピックにサービスをピックアップしましたが、他のサービスでもOrganizationsは活用できます。

たとえばAWS Backupで使用すると組織単位でバックアップ管理ができたり、AWS RAM(Resource Access Manager)を使用してTransit Gateway等のリソースを組織内に承認なく共有できたりします。

アカウント間の連携で課題を感じる部分があれば、このOrganizationsを活用することで幸せになれることがあるかもしれません。

それでは良いマルチアカウントライフを!