はじめに
この記事では、AWS Control Towerに既存のアカウントを登録する際の考慮点について書いていきます。
前提条件
Control Towerのセットアップ時には、監査アカウントとログアーカイブアカウントという2つの特別なアカウント(共有アカウントとも呼ばれる)をメンバーアカウントとして登録します。これらのアカウントを新規に作成する場合は特に問題はありませんが、既存のアカウントを使用する際には、いくつか制限事項があります。
用語の説明
ログアーカイブアカウントとは、Control Towerで管理されているすべてのアカウントのCloudTrailとConfigのログを一元的に保存・管理するものです。
監査アカウントとは、Control Towerで管理されているすべてのアカウントに対してセキュリティ監査を行い、ガードレールの違反が検出された場合には、指定された通知先アドレスにアラートを発信します。
① 監査アカウントとログアーカイブアカウントの登録
①-1 AWS Configの設定レコーダーと配信チャネルの削除
既存のアカウントでConfigが設定されている場合、Control Towerに登録する前に設定レコーダーと配信チャネルを削除する必要があります。
削除方法
AWSコンソールからは削除できないため、AWS CloudShellを開き、以下のコマンドを実行します。
設定レコーダーを削除する手順
1. 設定レコーダーの名前を確認します。
aws configservice describe-configuration-recorders
2. 確認した設定レコーダー名を指定し、設定レコーダーを削除します。
aws configservice delete-configuration-recorder --configuration-recorder-name <<設定レコーダ名>>
配信チャネルを削除する手順
1. 配信チャネルの名前を確認します。
aws configservice describe-delivery-channels
2. 確認した配信チャネル名を指定して、配信チャネルを削除します。
aws configservice delete-delivery-channel --delivery-channel-name <<配信チャネル名>>
エラーメッセージの例
設定レコーダーと配信チャネルを削除しない場合、以下のようなエラーメッセージが表示されます。
- 設定レコーダーが残っている場合のエラー
AWS Control Tower cannot create an AWS Config configuration recorder because one already exists. To continue, delete the existing configuration recorder and try again.
- 配信チャンネルが残っている場合のエラー
AWS Control Tower cannot create an AWS Config delivery channel because one already exists. To continue, delete the existing delivery channel and try again.
② 組織単位(OU)とメンバーアカウントの登録
ランディングゾーンのセットアップが完了しても、既存の組織単位(OU)やメンバーアカウントは自動的にAWS Control Towerには登録されません。これらをControl Towerに登録するためには、別途作業が必要です。
②-1 メンバーアカウントの登録
メンバーアカウントをControl Towrerに登録するには、以下の2つの方法があります。
方法1:組織単位(OU)の登録
- AWS Organizations コンソールで新しいOUを作成し、そのOUに登録したいアカウントを移動させます。その後、Control Tower コンソールで「組織単位を登録」を実行します。
- すでに登録されているOUにメンバーアカウントを移動した後、Control Towerコンソールで「組織単位を再登録」を実行します。
Control TowerはCloudFormation StackSetsを利用して、OUとその直下のメンバーアカウントにAWSControlTowerExecutionRoleを自動作成します。
AWSControlTowerExecutionRoleは、Control Towerが各メンバーアカウントを管理する際に使用するロールです。
AWSControlTowerExecutionRoleが自動的に作成されるケース
- 監査アカウントとログアーカイブアカウントについては、AWS Control Towerの初期セットアップ時に自動でロールが作成されます。
- Account Factoryから作成したアカウントも自動でロールが作成され、AWS Control Towerに登録されます。
- 組織単位(OU)でControl Towerに登録する際、Control TowerはStackSet-AWSControlTowerExecutionRoleを使用して、OU内の全てのアカウントにロールを作成します。
参考:AWS Control Tower がロールと連携してアカウントを作成および管理する方法
[注意点]ネストされたOU
ネストされたOU(OU内に別のOUが存在する場合)とその直下のメンバーアカウントは、Control Towerには自動で登録されません。
ネストされたOUに対しても同様の登録作業が必要です。
方法2:アカウント単体での登録
- メンバーアカウントを個別にControl Towerに登録します。
この場合、AWSControlTowerExecutionRoleは自動的には作成されません。そのため、各アカウントでこのロールを手動で作成する必要があります。
手順
1. Control Towerに登録したい各アカウントで、必要なIAMロールを手動で作成。
- IAMロール名: AWSControlTowerExecutionRole
- アタッチするポリシー名: AdministratorAccess
- 信頼関係: 以下のJSONをコピー&ペーストします(<<管理アカウントID>>は適宜置き換えてください)。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<<管理アカウントID>>:root" }, "Action": "sts:AssumeRole", "Condition": {} } ] }
2. Control Towerにアカウントを登録。
参考:必要な IAM ロールを既存の AWS アカウントに手動で追加し、登録します。
②-2 AWS Configの削除と変更
既にConfigが設定されているメンバーアカウントでは、「設定レコーダー」と「配信チャネル」を削除または変更(オプション)する必要があります。
この手順をスキップすると、共有アカウントと同様のエラーメッセージが表示されます。
Configの設定を変更する(オプション)
AWSサポートへ依頼することで、Configの「設定レコーダー」と「配信チャネル」を削除せずに変更する方法もあります。
[注意点]監査アカウントとログアーカイブアカウントでは、このオプションは利用できません。そのため、必ず設定を削除する必要があります。
Configの設定変更手順は公式ドキュメントを参考にしてください。
参考:既存の AWS Config リソースを持つアカウントを登録する
※ステップ6については、Control Towerが東京リージョンのみを管理対象としている場合、そのリージョンにリソースが存在すれば特に対応は不要です。
Configの設定を変更した場合の注意点
公式ドキュメントにも記載されていますが、メンバーアカウントを登録する場合は、「組織単位を登録」または「組織単位を再登録」を実行し、メンバーアカウントをControl Towerに登録する必要があります。
試しに個別のアカウントを登録してみた結果、エラーが発生し登録に失敗しました。
また、「Configの設定を変更する」という手順に沿ってControl Towerに登録したメンバーアカウントを別のOU(Control Towerに既に登録済み)に移動させたところ、移動したアカウントのステータスが「登録に失敗しました」となりました。
さらに、Service Catalogのステータスも「汚染」と表示されました。
「詳細を表示」をクリックすると、以下のエラーメッセージが表示されました。
AWS Control Tower cannot create an AWS Config configuration recorder because one already exists. To continue, delete the existing configuration recorder and try again.
「組織単位を再登録」を実行することで、このエラーは解消されました。
「Configの設定を変更する」という手順で登録したアカウントに何らかの制限がある可能性が考えられます。
Config「設定レコーダー」「配信チャネル」を削除した場合の影響
Configの「設定レコーダー」を削除すると、セットアップ前の状態に戻ります。ただし、各アカウントで個別に追加されたConfigルールや、委任されたアカウントによって作成された適合パックは削除されません。
アカウントをControl Towerに登録する際に、Configの「設定レコーダー」と「配信チャネル」は以下のように再設定されます。
- 設定レコーダー
- すべてのリソースタイプを記録(IAMユーザー、グループ、ロール、カスタマー管理ポリシーなど、グローバルに記録されるリソースタイプを含む)
- データ保持期間はデフォルトの7年間 (2,557日)
- 配信チャネル
- ログアーカイブアカウントのS3バケット
- 監査アカウントのSNSトピック