DevelopersIO 2023 大阪 – 勉強会「AWS Control Towerの初期設定解説」 #devio2023

2023.07.19

DevelopersIO 2023 大阪の AWS 質問ブース の勉強会「AWS Control Tower の初期設定解説」のブログです。AWS Control Tower の初期設定がどのような設定なのかを知ることを目的としています。

AWS Control Tower の初期設定項目

Control Tower をバージニア北部リージョンと東京リージョンを管理対象として展開した構成例の図です。実際には AWS Service Catalog など記載しているサービス以外も利用されますが、説明しやすいように初期設定に関するものと主要なサービスに絞って記載しています。また、設定内容によっても変わります。


2023.7.17 時点の初期設定項目です。説明しやすいように AWS Control Tower の設定で出てくる順番とは異なる並びとしています。

設定項目名 設定内容の説明 設定値 後で変更できるか
ホームリージョン Control Tower の共有リソースがプロビジョニングされるリージョンを指定 リージョンを 1 つ選択 不可
ガバナンスのための追加リージョンを選択 Control Tower の管理対象リージョンを指定 リージョンを複数選択
リージョン拒否設定 Control Tower の管理対象外リージョンの利用を拒否する設定をするかどうか 有効 or 無効
基礎となる OU の名前 ログアーカイブアカウントと監査アカウントが所属する OU の名前 OU 名
追加の OU Control Tower 有効化時に追加で OU を作成するかどうか、追加で作成する場合は OU の名前 作成 or 作成しない
ログアーカイブアカウント 新規アカウントを発行するか既存アカウントを流用するか、新規アカウントの場合はメールアドレスとアカウント名を指定 新規アカウントの作成 or 既存のアカウンの使用 一部不可
監査アカウント 新規アカウントを発行するか既存アカウントを流用するか、新規アカウントの場合はメールアドレスとアカウント名を指定 新規アカウントの作成 or 既存のアカウンの使用 一部不可
AWS アカウントアクセス設定 IAM Identity Center の有効化と Control Tower 管理のアクセス許可セット、グループ、ユーザーを作成するかどうか 設定する or 設定しない
AWS CloudTrail の設定 CloudTrail の組織の証跡を有効化するかどうか 有効 or 無効
ログ用の Amazon S3 バケットの保持期間 S3 バケットに保管されるログの保持期間を指定 保持日数
アクセスログ用の Amazon S3 バケットの保持期間 S3 バケットに保管されるアクセスログの保持期間を指定 保持日数
KMS 暗号化 KMS 暗号化を利用するかどうか、利用する場合は事前に作成した暗号化キーを指定 有効 or 無効

以降では初期設定の各項目が Control Tower の有効化後にどのような設定として反映されるかを説明していきます。

初期設定項目の説明

AWS Control Tower の初期設定の各項目について説明します。

ホームリージョン

ホームリージョンは Control Tower の共有リソースがプロビジョニングされるリージョンです。有効化後はホームリージョンで Control Tower の操作を行うようになります。東京リージョンなどメインで利用しているリージョンを選択することが多いです。

全体構成における設定項目の関連箇所のイメージ図です。

なお、AWS IAM Identity Center を事前に有効化している場合は、AWS IAM Identity Center と同じリージョンをホームリージョンとする必要があります。


ガバナンスのための追加リージョン

Control Tower で管理対象とするリージョンを選択します。ホームリージョンはチェックを外すことはできません。

全体構成における設定項目の関連箇所のイメージ図です。追加したリージョンでは AWS Config が有効化され、Control Tower のコントール(旧ガードレール)を展開できます。


リージョン拒否設定

有効にすると「ガバナンスのための追加リージョン」で選択したリージョン以外を利用できないように設定されます。Control Tower 管理外のリージョンを対象に、グローバルサービスなど一部のサービスを除いたサービスの利用を拒否する SCP (Service Control Policy) が適用されます。

全体構成における設定項目の関連箇所のイメージ図です。下図はリージョン拒否設定を「有効」としている場合のイメージです。「有効になっていません」を選択した場合は、他リージョンの操作を SCP で拒否されることなく利用できますが、Control Tower が AWS Config を有効化せずに、コントールも展開されることはありません。


基礎となる OU の名前

Control Tower が管理する LogArchive カウントと Audit アカウントが所属する OU 名を指定します。デフォルト値は「Security」です。

全体構成における設定項目の関連箇所のイメージ図です。単純に OU 名を指定するだけの設定です。


追加の OU

Control Tower 有効化に合わせて OU を 1 つ作成でき、その OU 名を指定します。OU は後からでも追加できるため、有効化時の初期設定で無理に指定する必要はありません。デフォルト値は新しい OU を作成するする設定であり、OU 名が「Sandbox」です。

全体構成における設定項目の関連箇所のイメージ図です。単純に OU を追加して OU 名を指定するだけの設定です。


ログアーカイブアカウント・監査アカウント

Control Tower が設定を管理するログアーカイブアカウントと監査アカウントの設定です。まず、AWS アカウントを新規に作成するか既存のアカウントを流用するかを選択します。新規の場合は、ルートユーザーのメールアドレスとアカウント名を指定します(アカウント名は後で変更できない注意書きがあります)。既存のアカウントの場合は AWS Organizations に存在するアカウントの ID を指定します。

全体構成における設定項目の関連箇所のイメージ図です。「基礎となる OU」配下のアカウントに関する設定です。

監査アカウントは Security Hub や GuardDuty の管理者アカウントとして利用することがあります。アカウント全体構成として、Control Tower がコントロールで作成する Config ルールと同じアカウントで Security Hub も管理したい理由などがあります。そのような場合は、既存のアカウントと流用することがあります。既存のアカウントの流用については次のブログが参考になります。


AWS アカウントアクセス設定

Control Tower が IAM Identity Center のアクセス許可セット(権限)とグループ、ユーザーを設定するかをどうか指定します。

「AWS Control Tower は IAM Identity Center を使用して AWS アカウントアクセスを設定します」を選択した場合は下図のようにアクセス許可セット、グループ、ユーザーが作成されます。「IAM Identity Center またはその他の方法によるセルフマネージド型 AWS アカウントアクセス」を選択した場合は、下図の赤四角の設定がされません(有効化されません)。Control Tower が作成するアクセス許可セットやグループは利用せずに利用者が独自の権限を設定する場合もあるため、IAM Identity Center を利用する場合においてもこちらの選択することも多いです。

作成されるアクセス許可セット、グループ、ユーザーについてはユーザーガイドで確認できます。

AWS IAM Identity Center (successor to AWS Single Sign-On) によるユーザーとアクセスの管理 - AWS Control Tower


AWS CloudTrail の設定

Control Tower が作成する CloudTrail の組織の証跡のログ記録を有効とするか無効とするかを指定します。

全体構成における設定項目の関連箇所のイメージ図です。図では省略していますが、ログアーカイブアカウントや監査アカウントも関連します。

無効にした場合でも組織の証跡は作成されます。ログの記録が無効化状態となります。

本設定で注意が必要な点として、Control Tower が作成する CloudTrail は「組織の証跡」であることから Control Tower 管理下にない AWS アカウントにも影響を与える点があります。有効設定とする場合は、Control Tower 管理下ではない AWS Organizations 配下のアカウントにおいて CloudTrail 証跡が作成され、その証跡が 2 個目以降の場合は課金が発生する可能性があります。詳しくは次のブログを参照ください。


ログ・アクセスログ用の S3 バケットの保持期間

CloudTrail や Config のログを保管するログアーカイブアカウントの S3 バケットのログ保管期間を設定します。 アクセスログ用バケットは、ログ用バケットにアクセスした記録を保管するバケットです。

全体構成における設定項目の関連箇所のイメージ図です。ログアーカイブアカウントに関する設定となります。

例えば、ログ用の保持期間を 3 年(1095 日)とした場合は次のようなライフサイクルルールが作成されます。現行バージョンの期限切れに 1095 日、そこから完全に削除まで 1095 日との設定となります。


KMS 暗号

Control Tower が設定する CloudTrail と Config において KMS 暗号化を利用するかどうかの設定です。もし利用する場合は、事前に AWS KMS で暗号化キーを作成しておき、Control Tower の有効化時に利用する暗号化キーを選択します。

全体構成における設定項目の関連箇所のイメージ図です。管理アカウントで作成した暗号化キーをメンバーアカウントに展開される CloudTrail (組織の証跡) や Config が利用します。

暗号化キーの条件はユーザーガイドに記載があります。

AWS KMS keys の設定 (任意) - AWS Control Tower


AWS Config 設定に関する補足

これまでの図に記載しているメンバーアカウントにおける AWS Config の有効化と監査アカウントにおける Config ルールアグリゲータは初期設定内容に関係なく設定されます。また、図上は省略していますが、Config の有効化はログアーカイブアカウントや監査アカウントも対象です。管理アカウントでは Config の有効化はされませんが、Config ルールの組織のアグリゲータが作成されます。そのため、管理アカウントの Config は個別に有効化する必要があります。

AWS アカウント リージョン Config の有効化 Config ルールアグリゲータの作成
管理アカウント ホームリージョン - 組織タイプのアグリゲータ「aws-controltower-ConfigAggregatorForOrganizations」
管理対象リージョン - -
管理対象外リージョン - -
ログアーカイブアカウント ホームリージョン 有効 -
管理対象リージョン 有効 -
管理対象外リージョン - -
監査アカウント ホームリージョン 有効 個々のアカウントタイプのアグリゲータ「aws-controltower-GuardrailsComplianceAggregator」
管理アカウントは集約対象外
管理対象リージョン 有効 -
管理対象外リージョン -
メンバーアカウント ホームリージョン 有効 -
管理対象リージョン 有効 -
管理対象外リージョン - -

以上で、設定項目の説明は終わりです。有効化は数十分程度で完了します。

Control Tower 有効化の後

Control Tower 有効化後はコントールライブラリから展開するコントロールを選択して、OU 単位で展開できます。

一部のコントロールは必須となっており、Control Tower 有効化と同時に適用されます。必須のコントロールは Control Tower が設定したリソースを変更しないように統制する内容がほとんどです。

必須コントロール - AWS Control Tower


また、Control Tower 有効化時に設定した項目のいくつかは、ランディングゾーン設定メニューから変更できます。

さいごに

AWS Control Tower の有効化時に設定する内容が展開後のどのように影響するのかをまとめてみました。

AWS Control Tower は便利な機能ですが、有効化に合わせて AWS アカウントを作成するなど、気軽に試すことが難しいと感じることがあります。そのような方々にとって、少しでも有益な情報となれば幸いです。