SCPによるリージョン制限下で、AWS Systems Manager 高速セットアップ DHMC有効化の影響と挙動を確認してみた
はじめに
AWS Systems Manager 高速セットアップのDefault Host Management Configuration(DHMC)を利用すると、組織内の全メンバーアカウントにおいて、高速セットアップが利用可能な全リージョンに対してデプロイが実行されます。
本記事では、サービスコントロールポリシー(SCP)によるリージョン制限を適用している環境で、DHMCを高速セットアップで設定した際の影響と挙動を確認します。
具体的には、以下の点を確認しました。
- SCPによるリージョン制限が設定されている場合のエラー内容と影響範囲
- DHMCのデプロイ仕組み(CloudFormation StackSetsの動作)
- 制限対象外のリージョンでのマネージドインスタンス化の正常性
- 個別対応が必要となるケースの特定
ちなみに、以前、Systems Manager 統合コンソールも検証しました。
前提条件
本検証では、以下の環境構成で実施しました。
組織構成
以下のような組織構成を前提とします。
DHMCの設定内容
高速セットアップのDHMCは、以下の設定で作成しました。
高速セットアップのDHMC設定では、管理アカウントを除く組織内のすべてのメンバーアカウントが対象となります。
すでにマネージドインスタンスとなっているEC2インスタンスに対しても、2週間ごとのSSM Agent自動更新が適用されます。
結論
SCP制限下でのDHMC有効化に関する検証結果をまとめます。
SCP制限リージョンでの影響
- SCPで制限されているリージョンではCloudFormation StackSetsを通じたデプロイが失敗する
- エラーメッセージにはSCPによる明示的なDenyが原因であることが明記される
- 制限対象外のリージョンには影響がなく、正常にマネージドインスタンス化される
個別対応が必要なケース
以下の場合はDHMCを個別にリージョンごとに有効化する必要があります。
- 高速セットアップ未サポートリージョン(大阪リージョンなど)でのDHMC設定
- 管理アカウントの全リージョンでのDHMC設定(高速セットアップのDHMCは管理アカウントがデプロイ対象外のため)
個別有効化またはDHMCの再作成が必要なケース
以下の場合は、リージョンごとにDHMCを個別に有効化するか、高速セットアップによるDHMC設定の再作成が必要です。
- DHMCセットアップ後にアカウントを異なるリージョン制限のOUに移動した場合(新しく許可されたリージョンには自動セットアップされない)
検証結果
委任管理アカウントでの確認
SSMの高速セットアップからDHMCの設定詳細を確認しました。
SCP制限対象外のリージョン
- [設定デプロイのステータス]と[設定ステータス]が成功
- 対象リージョンでマネージドインスタンス化が正常に動作
SCP制限対象のリージョン
- [設定デプロイのステータス]は失敗
- [設定ステータス]は「まだデータがありません」と表示
エラー内容は以下のとおりです。SCPでDenyされていることが分かります。
CFN stack null failed to deploy: User: arn:aws:sts::管理アカウントID:assumed-role/stacksets-exec-115e79ce7397657addd4a21121099702/6cd57989-d4bc-4846-ab44-be3e50ac1a17 is not authorized to perform: cloudformation:CreateStack on resource: StackSet-AWS-QuickSetup-DHMC-TA-faicm-529e6703-e91d-4896-9bf7-f48a4da6505f with an explicit deny in a service control policy.. There are more errors like this.
設定タブでは、以下の内容が表示されます。
- AWS 組織のすべてのアカウントとリージョンのデフォルトホスト管理設定が有効になっています
- SSM エージェントは 2 週間ごとに更新されます
- 設定が、今後 AWS 組織に加わるすべての新しいアカウントに自動的に適用されました
メンバーアカウントでの表示
リージョン制限されていないメンバーアカウントの東京リージョンでも、DHMCの設定状況を確認できました。
DHMC設定に失敗したリージョンは警告として一覧表示されます。
Quick Setup 機能は、アカウントがアクセスできるリージョンに限定されていることに注意してください。お客様のアカウントには、以下のリージョンにアクセスする権限がありません: ca-central-1, eu-west-2, eu-central-1, us-west-2, us-east-2, eu-west-1, ap-south-1, ap-southeast-2, ap-northeast-2, ap-southeast-1, sa-east-1, eu-north-1, us-west-1, eu-west-3。
メンバーアカウントから他のメンバーアカウントを含む設定ステータスが確認できるのは意外でした。自身のメンバーアカウントのみが確認できると想定していました。
CloudFormation StackSetsの状況
管理アカウントのCloudFormation StackSetsを確認すると、Root OUをターゲットに17リージョンがデプロイ対象となっています。
スタックインスタンスでは、リージョン制限対象外では成功、リージョン制限対象では失敗していることが確認できます。
作成されるリソースは、IAMロールとSSM関連付けです。
注意点
個別設定が必要なケース
以下の場合は、DHMCを個別に有効化する必要があります。
アカウント移動時
DHMCセットアップ後にアカウントを異なるOUに移動させた場合、新しいリージョン制限に対して自動的にDHMCがセットアップされることはありません。
例:東京とバージニアリージョンのみ許可されているOUから、東京・バージニア・オレゴンリージョンが許可されているOUにアカウントを移動した場合、オレゴンリージョンでDHMCは自動設定されません。
この場合、以下のいずれかの対応が必要です。
- 管理アカウントからDHMCの設定を削除し、再度DHMCをセットアップする
- 対象アカウントのオレゴンリージョンでDHMCを個別に有効化する
高速セットアップ対象外
高速セットアップサポート対象外のリージョンも同様に個別に設定が必要です。
- 高速セットアップサポート対象外のリージョン(大阪リージョンなど)
- 管理アカウントの全リージョン
個別有効化の手順
-
DHMCを有効化したいアカウントの対象のリージョンに遷移し、フリートマネージャーの[デフォルトのホスト管理設定を設定する]に遷移する
-
デフォルトのホスト管理設定を有効にする
以上でセットアップが完了です。