スケールするAWS環境を管理する手法としてマルチアカウント戦略は主流になりつつあります。 そのマルチアカウント戦略に役立つ AWS Organizations の概要や使い方のポイントを説明します。
AWS Organizations で始める マルチアカウント管理 川原 征大 https://dev.classmethod.jp/author/kawahara-masahiro/
View Slide
目次1. なぜ AWS Organizations が必要か2. AWS Organizations の主要機能3. AWS Organizations を使いこなそう
1. なぜ AWS Organizations が必要か2. AWS Organizations の主要機能3. AWS Organizations を使いこなそう
AWSアカウント構成の 2つの戦略● シングルアカウント戦略● マルチアカウント戦略
シングルアカウント戦略全ての ネットワークインフラ、コンピューティングリソースを 1アカウント内で取り扱うシンプルで手早い導入が可能
マルチアカウント戦略ワークロードやステージごとにアカウントを分割するシングルアカウント戦略と比較してガバナンスや課金、セキュリティ面でメリットが多い
マルチアカウント戦略のメリット● ガバナンス○ 明確な権限の分離● 課金○ コスト分類● セキュリティ○ 問題発生時の影響範囲を絞る
マルチアカウント戦略のデメリット● マルチアカウント戦略のデメリット○ アカウントごとのアクセス・権限管理○ アカウントごとのコスト管理、取りまとめ○ 構築、運用のオーバーヘッド
マルチアカウント戦略のデメリット● マルチアカウント戦略のデメリット○ アカウントごとのアクセス・権限管理○ アカウントごとのコスト管理、取りまとめ○ 構築、運用のオーバーヘッドこれらマルチアカウント戦略の負担を軽減する手段が AWS Organizations
AWS Organizations とは?複数アカウントを組織化して色々できるようにするサービス
● 管理アカウント/メンバーアカウント● 組織単位(Organizational Unit)● サービスコントロールポリシー(SCP)● Organizations 連携サービスAWS Organizations の主要機能
AWS Organizations の主要機能● 管理アカウント/メンバーアカウント ⇠● 組織単位(Organizational Unit)● サービスコントロールポリシー(SCP)● Organizations 連携サービス
管理アカウント/メンバーアカウントAWS Organizations で取り扱うアカウントの種類は 2つ● 管理アカウント(1つだけ)● メンバーアカウント(複数)
管理アカウント● 組織全体の設定、管理を行うための代表アカウント● 全アカウントのAWS利用料が管理アカウントへ請求される (一括請求 機能)✍ 一括請求のメリット● コスト管理: 請求簡素化。アカウントごとの利用状況を集計/管理● コスト最適化: 「組織を 1アカウントとして扱い」利用料が計算されるためボリュームディスカウントの恩恵有
メンバーアカウント● 実際のワークロードなどを稼働させるアカウント群● (Tips) 特定の組織管理業務を行うアカウントを作ることが多いです
Tips:「特定の管理業務」の代表例● 監査(Audit)アカウント○ 組織全体のセキュリティ管理を行う役割を持つ○ AWSのセキュリティ系サービス(AWS Security Hub, AmazonGuardDuty等) を活用する● ログアーカイブ(Log Archive)アカウント○ 組織全体のログを集約する役割を持つ○ 各種ログ(CloudTrail, VPC Flow Logs 等)を集約、管理する
AWS Organizations の主要機能● 管理アカウント/メンバーアカウント● 組織単位(Organizational Unit) ⇠● サービスコントロールポリシー(SCP)● Organizations 連携サービス
組織単位(Organizational Unit: OU)階層構造を作るための AWSアカウントのコンテナ
組織単位(Organizational Unit: OU)● よくあるOU種別、分け方○ ワークロード種別単位で OUを作成○ 本番/非本番 単位でOUを作成○ セキュリティ管理用 OUを作成✍ OU構成は最初の大事な設計。ベストプラクティスを参考にしよう→ AWS Organizations における組織単位のベストプラクティス | AmazonWeb Services
AWS Organizations の主要機能● 管理アカウント/メンバーアカウント● 組織単位(Organizational Unit)● サービスコントロールポリシー(SCP) ⇠● Organizations 連携サービス
サービスコントロールポリシー(SCP)● ルート/OU/アカウントにアタッチするIAMポリシー● OU配下のアカウントを一括制御できる● 予防的ガードレールの役割▲ デフォルトで全てのルート/OU/アカウントに “FullAWSAccess” がアタッチされている
Tips: SCPの継承● OUにアタッチした SCPは その配下の要素(OU/アカウント)にも適用される (SCPの継承)● SCP設計の際の重要な考慮点参考: [Organizations] SCP(サービスコントロールポリシー )の継承の仕組みを学ぼう | DevelopersIO
AWS Organizations の主要機能● 管理アカウント/メンバーアカウント● 組織単位(Organizational Unit)● サービスコントロールポリシー(SCP)● Organizations 連携サービス ⇠
AWS Organizations 連携が “前提” のサービスいくつかのサービスは AWS Organizations 利用が前提● AWS Control Tower → 後述● AWS Single Sign-On (SSO) → 後述● AWS Firewall Manager○ WAFルールや Security Group をアカウント横断で管理
AWS Control Tower● ベストプラクティスに基づいた Organizations環境のセットアップ/管理を可能にするサービス● ベストプラクティス構成を簡単に構築○ ※カスタマイズ性は高くない画像: AWS マルチアカウント管理を実現するベストプラクティスとは ?:https://aws.amazon.com/jp/builders-flash/202007/multi-accounts-best-practice/✍ 参考になるので利用の有無に関わらず調べてみましょう● ベストプラクティス構成● セキュリティガードレール など
AWS Single Sign-On(SSO)● 組織内アカウントへのログインの仕組みを作る機能● ユーザーのアカウントへのアクセスを一元管理
AWS Organizations 連携のサービス● 20以上あり、アップデートで日々増え続けている○ AWS services that you can use with AWS Organizations - AWSOrganizations● よく使うサービスピックアップ○ CloudFormation StackSets → 後述○ GuardDuty → 後述○ CloudTrail ... 組織全体の証跡を集約○ Resource Access Manager ... AWSリソースの組織内共有
CloudFormation StackSets● 複数リージョン/複数アカウントに CFnスタックを展開できる機能● Organizations 連携で 「OU単位で簡単に展開」できるようになる○ + 自動デプロイ/削除機能も利用可能● 汎用的に使える
GuardDuty● マネージドな脅威検出サービス● Organizations 連携で 組織全体の GuardDuty 一括設定と検出イベントの集中管理が可能に● 特定メンバーアカウントを委任管理者とできる○ 委任先アカウントで集中管理
● 管理アカウント/メンバーアカウント○ 管理アカウントが組織全体を統制する● 組織単位(Organizational Unit)○ メンバーアカウントを階層化して管理する● サービスコントロールポリシー(SCP)○ AWS環境の予防的ガードレール● Organizations 連携サービス○ たくさんあるAWS Organizations 主要機能まとめ
どう使いこなしていくか1. まずは アカウント分割/OU設計2. SCPで予防的ガードレールを敷こう3. AWS SSOでアクセスを管理しよう4. Organizations 連携を活用していこう
まずは アカウント分割/OU設計● アカウント分割の方針をまず定めて、それに合わせたOU構成を考えていく● OU設計のベストプラクティスを参考にしよう○ AWS Organizations における組織単位のベストプラクティス | Amazon Web Services
SCPで予防的ガードレールを敷こう● 『OU単位で制御したい内容』を書く○ 「(ヒトに関係なく)絶対にやっちゃだめ!」なアクションを洗い出すと良い● SCP設計の際に知っておいたほうが良いキーワード○ 継承/許可リスト/拒否リスト/暗黙のDeny[Organizations] SCP(サービスコントロールポリシー )の継承の仕組みを学ぼう | Developers.IO
AWS SSO でアクセスを管理しよう● AWS SSOが使えることは大きなメリット○ ※ AWS SSOが出るまでは、「Jumpアカウントからのスイッチロール」戦略が主に採用 (もしくは 3rd party SSO)画像: AWS におけるマルチアカウント管理の手法とベストプラクティス | AWSJumpアカウントからのスイッチロール構成 →
AWS SSO でアクセス管理しよう● Jumpアカウント戦略はリソース管理が大変○ Jumpアカウントで IAMユーザー管理○ 各アカウントへ IAMロール管理● AWS SSO は管理アカウント内で完結する○ ユーザー管理■ ※ AWS SSO提供 IDストア or 既存AD or 既存外部プロバイダー○ ユーザーがどのアカウントにどの権限でアクセスできるか割り当て参考: AWS SSOを図解してみた | DevelopersIO
Organizations 連携を活用していこう● 全てを活用していく必要はない● 最低限セットアップしておきたいサービス○ CloudTrail○ Security Hub/GuardDuty○ Config (with SSM Quick Setup)
【やっておこう!】CloudTrail の証跡を集約【Organizations】組織レベルで CloudTrailの証跡を有効化、S3バケットへ集約する | DevelopersIO
【やっておこう!】セキュリティ集中管理▼GuardDuty参考【Organizations】組織内すべてのアカウント・すべてのリージョンへの GuardDuty設定を簡単に行う | DevelopersIO▼Security Hub参考【アップデート】Security Hubが AWS Organizations と統合!組織内セキュリティチェック環境を簡単にセットアップ/管理できるようになりました | DevelopersIO
【やっておこう!】ConfigセットアップSSM Quick Setup で超カンタンにセットアップSSM Quick Setup で Configの記録 / 適合パックが AWSアカウント単位 / Organizations全体で超カンタンデプロイ可能に!(全リージョン対応) | DevelopersIO
まとめAWS Organizations の主要機能● 管理アカウント/メンバーアカウント● 組織単位(Organizational Unit)● サービスコントロールポリシー(SCP)● Organizations 連携サービスAWS Organizations を使いこなそう1. まずは アカウント分割/OU設計2. SCPで予防的ガードレールを敷こう3. AWS SSOでアクセスを管理しよう4. Organizations 連携を活用していこう