10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS Control Tower を試してみた

Last updated at Posted at 2021-07-14

はじめに

DX技術本部のyu-yamaです。

ちょっと前(2021/04)ですが、AWS Control Tower が東京リージョンで利用可能になりました。

これまで マルチアカウント管理には AWS Organizations を使用して... 組織(OU)作成して... SCP でポリシー制限して... と頑張っていましたが、このサービスを使用すると 簡単にベストプラクティスに沿ったマルチアカウント管理環境を作成できることが出来るそうです。

との事で試してみました。

概念

はじめに AWS Control Tower を触るにあたり概念を押さえます

2021-07-13-16-07-39.png

Landing Zone

AWS Control Tower は Landing Zone という AWS マルチアカウントを一元管理する環境を作成します。 Landing Zone は以下の機能を提供します。

  • AWS Organizations を使用してマルチアカウント環境を作成する
  • AWS Single Sign-On (SSO) のデフォルトのディレクトリを使用して ID を管理する
  • AWS SSO を使用してアカウントにフェデレーティッドアクセス
  • AWS IAM および AWS SSO を使用してクロスアカウントセキュリティ監査を有効化する
  • AWS CloudTrail のログや、Amazon S3 に保存される AWS Config のログを集中管理する

Account Factory

新しいアカウントのプロビジョニングを自動化します。ネットワーク構成とリージョンを指定し、どの組織(OU)に所属するかを指定してアカウントを作成します。

ガードレール

組織単位 (OU) でポリシーを適用したり違反を検出したりするために有効にできるガバナンスルールです。ガードレールには予防用および検出用のガードレールがあります。

  • 予防ガードレール

    • ポリシー違反につながるアクションが禁止される
  • 検出ガードレール

    • ポリシー違反につながるアクションが検出された場合、ダッシュボードを通じてアラートがあがる

事前準備

ランディングゾーンを作成するために以下が必要になります

  • 管理用 AWS アカウント ※組織の管理アカウントである必要があります
  • 新規 AWS アカウント用のメールアドレス 2 つ
    • ログアーカイブ用
    • 監査用

やってみる

ホームリージョンを選択します
2021-07-08-14-29-22.png

ログアーカイブ用アカウントEメール、監査用アカウントEメールを入力して次へ
2021-07-08-14-32-04r2.png

ランディングゾーンの設定押下すると
ランディングの作成が開始します...

2021-07-08-14-33-34.png

管理用AWSアカウントのEメールを見てみましょう。

Control Tower 管理者の SSO ユーザーアカウントを有効にしてください メールが来ているので有効に
SSOポータルの URL も記載されています

2021-07-08-14-36-23.png


マネジメントコンソールに戻ります。
AWS Control Tower は以下を設定していますとのこと...

  • 2 つの組織単位。1 つは共有アカウント用、もう 1 つはユーザーによってプロビジョニングされるアカウント用です。
  • 3 個の共有アカウント。ログアーカイブおよびセキュリティ監査用の管理アカウント独立アカウントです。
  • 事前設定されたグループとシングルサインオンアクセスを持つネイティブクラウドディレクトリ。
  • ポリシーを適用するための 20 つの予防ガードレール、および設定違反を検出するための 2 つの検出ガードレール。

2021-07-08-14-40-27r2.png

完了しました

2021-07-08-14-55-01.png

確認

Organization でみると

2 つの組織単位。1 つは共有アカウント用、もう 1 つはユーザーによってプロビジョニングされるアカウント用です。

  • 共有アカウント用としての組織 Security
  • ユーザーによってプロビジョニングされるアカウント用の組織として Sandbox

2 つの組織(OU)が作成されているのが確認できます。

3 個の共有アカウント。ログアーカイブおよびセキュリティ監査用管理アカウントと独立アカウントです。

共有アカウント用組織 (Security)の配下に

  • ログアーカイブ用の Log Archive
    • すべてのアカウントからの API アクティビティとリソース設定のログのリポジトリとして使用
    • arn:aws:s3:::aws-controltower-logs-{アカウント ID}-ap-northeast-1
  • セキュリティ監査用の Audit
    • セキュリティおよびコンプライアンスチームがすべてのアカウントへの読み取りと書き込みアクセスを取得するための制限付きアカウント

2 つのアカウントが作成されているのが確認できます。

2021-07-08-15-05-20.png

アカウント登録

Sandbox にアカウントを追加してみましょう

Account Factory -> アカウントの登録

2021-07-08-16-05-30.png

アカウント E メール、表示名、SSO E メールを入力してアカウント登録

2021-07-08-16-08-35.png

ガードレール動作確認

検出ガードレールの動作を確認してみます。

"EC2 インスタンスにアタッチされた EBS ボリュームの暗号化を有効にする" を Sandbox 組織(OU)で有効にします

OU でガードレールを有効にする
2021-07-12-14-43-09.png

OU でガードレールを有効にする
2021-07-12-14-43-33.png

有効化中になり...
2021-07-12-14-44-11.png

有効になりました
2021-07-12-14-46-13.png

Sandbox 組織配下のアカウントにログインし、ガードレール違反(暗号化されていない EBS をアタッチ)をしてみます
2021-07-12-15-13-05.png

しばらく待って AWS Control Tower のダッシュボードを見ると...

検知されています!!
2021-07-12-15-24-33.png

ログアーカイブ用アカウントを見てみます

SSO ポータルからマネジメントコンソールへ
2021-07-13-16-24-07r2.png

S3 バケットを見ると aws-controltower-logs バケットが作成されています
2021-07-13-16-26-40.png

配下のアカウントごとの...
2021-07-13-16-27-45.png

CloudTrail と Config のログが集約されています
2021-07-13-16-28-57.png

監査アカウントを見てみます

AWS Config 集約結果

SSO ポータルからマネジメントコンソールへ
2021-07-13-16-40-02r2.png

アグリゲータが作成され、配下アカウントの AWS Config 結果が集約されています
2021-07-13-16-41-30.png

読み取り権限での全てのアカウント参照確認

管理アカウントに戻り AWS SSO からユーザーを追加
2021-07-13-16-45-12.png

ユーザー詳細を設定
2021-07-13-16-46-39.png

監査情報読み取り専用グループに所属
2021-07-13-16-47-47.png

追加完了
2021-07-13-16-48-49.png

招待された監査情報読み取り専用ユーザーで SSO からログイン。全てのアカウントに対し、読み取り専用でログインできるユーザが作成できました
2021-07-13-16-56-13.png

SSO で設定できる AWS Control Tower によって用意された権限を見てみます

2021-07-13-17-07-01.png

アクセス許可セット

特定の AWS アカウントにアクセスするためのユーザーの有効なアクセス許可を決定するために AWS Single Sign-On が使用する管理者定義のポリシーの集合。

  • AWSServiceCatalogEndUserAccess - AWS Service Catalog で承認された製品を起動する権限を付与します。
  • AWSPowerUserAccess - AWS のサービスとリソースへのフルアクセスが付与されますが、ユーザーおよびグループの管理は許可されません。
  • AWSAdministratorAccess - AWS のサービスとリソースへのフルアクセスを付与します。
  • AWSServiceCatalogAdminFullAccess - AWS Service Catalog 製品とポートフォリオを管理する権限を付与します。
  • AWSReadOnlyAccess - すべての AWS サービスのリソースおよびメタデータを閲覧するためのアクセス許可を付与します。
  • AWSOrganizationsFullAccess - AWS Organizations へのフルアクセスを提供

ユーザーグループ

組織内で特定のタスクを実行するユーザーを整理するための事前設定グループ。AWS Single Sign-On で直接ユーザーを追加してこれらのグループに割り当てることができます。

  • 管理
    • AWSControlTowerAdmins - すべての AWS Control Tower アカウントに対する管理者権限。
    • AWSAccountFactory - AWS Service Catalog で新しいアカウントをプロビジョニングできるユーザー。
    • AWSServiceCatalogAdmins - AWS Service Catalog でアカウントファクトリー製品へのアクセスを管理するユーザー。
  • ログアーカイブ
    • AWSLogArchiveAdmins - ログアーカイブアカウントに対するフルアクセスの管理者権限。
    • AWSLogArchiveViewers - ログアーカイブアカウントに対する読み取り専用アクセス。
  • Security
  • AWSSecurityAuditPowerUsers - セキュリティ監査のためのアカウントすべてに対するパワーユーザーアクセス。
  • AWSSecurityAuditors - セキュリティ監査のためのアカウントすべてに対する読み取り専用アクセス。
  • AWSAuditAccountAdmins - アカウントの監査に対するフルアクセスの管理者権限。

初めは用意されたユーザーグループに作成した SSO ユーザーを割り当てるやり方で検討し、細かい制御が必要になってきた際にアクセス許可セットの作成 → AWSアカウント内への割り当てを行えば良さげ。

アクセスイメージ

管理者/ログアーカイブ確認者/監査者

適切なユーザーグループに所属させたSSOユーザーを作成し、 SSOポータル からログインして各 AWS アカウントに対して操作・確認を行う
AWSControlTower_01.png

まとめ

かんたんに AWS マルチアカウント構成を作成することが出来ました。

ベストプラクティスに沿ったガードレールが多数用意されていて選択して適用できるのも良いですね。

AWS アカウントを多数管理していて消耗している方、後からでも Control Tower 配下に入れて制御することができるので検討してみてはいかがでしょうか。

参考リンク

10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?