AWS Systems Manager DHMC で EC2 を管理対象にするために利用される IAM ロール名を確認する方法
はじめに
AWS Systems Manager の Default Host Management Configuration を使っていると、EC2 を Systems Manager の管理対象にするために、どの IAM ロールが利用されているのか確認したくなる場面がありました。
AWS 公式ドキュメントでは AWSSystemsManagerDefaultEC2InstanceManagementRole という名前が登場するため、まずはこのロールを IAM で探したくなります。
しかし、実際にはこの名前のロールが見つからず、別名のロールが使われていることがあります。
今回、Fleet Manager から個別に DHMC を設定する場合と、Quick Setup で組織展開する場合の両方を確認したところ、DHMC で EC2 を Systems Manager の管理対象にするために利用される IAM ロール名は固定ではなく、設定方法によって見え方が異なることが分かりました。
そこで本記事では、どこを見れば実際に利用されている IAM ロール名を確認できるのか整理します。
Fleet Manager から個別アカウントで設定する場合
Fleet Manager の 「デフォルトのホスト管理設定を設定する」 から DHMC を有効化できます。
AWS 公式ドキュメントでも、Fleet Manager コンソールから DHMC を有効化し、そこでインスタンス向けの IAM ロールを選択する手順が案内されています。
Choose the IAM role used to enable Systems Manager tools for your instances.
インスタンスで Systems Manager ツールを有効化するために使用する IAM ロールを選択します。
https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-permissions.html
今回確認した環境では、Fleet Manager の設定画面で IAM ロールを指定でき、ロール一覧には 「AWSSystemsManagerDefaultEC2InstanceManagementRole を作成(推奨)」 という選択肢が表示されていました。

つまり、AWSSystemsManagerDefaultEC2InstanceManagementRole は、必ず事前に存在している固定ロールというより、Fleet Manager から個別設定する際に選択できる推奨ロール名 と捉えるほうが実態に近そうです。
さらに、設定後は同じ編集画面から、どの IAM ロールを指定しているかを確認できました。個別設定のケースでは、マネジメントコンソールから確認しやすい点が分かりやすいです。
Quick Setup で組織展開する場合
一方で、Quick Setup から Default Host Management Configuration を有効化する場合は、見方が少し変わります。AWS 公式ドキュメントでは、Quick Setup は Systems Manager のサービス設定である default-ec2-instance-management-role を利用すると説明されています。
default-ec2-instance-management-role に IAM ロールが既に設定されている場合はそのロールが使われ、未設定の場合は Quick Setup がロールを作成して適用します。
Default Host Management Configuration makes use of the
default-ec2-instance-management-roleservice setting for Systems Manager.
Default Host Management Configuration は、Systems Manager のdefault-ec2-instance-management-roleを利用します。
https://docs.aws.amazon.com/systems-manager/latest/userguide/quick-setup-default-host-management-configuration.html
If you have already set this role using the update-service-setting CLI command, Default Host Management Configuration uses that role. If you have not set this role yet, Quick Setup will create and apply the role for you.
update-service-settingCLI コマンドでこのロールが既に設定されている場合は、そのロールが使われます。まだ設定されていない場合は、Quick Setup がロールを作成して適用します。
https://docs.aws.amazon.com/systems-manager/latest/userguide/quick-setup-default-host-management-configuration.html
ここで注意したいのは、default-ec2-instance-management-role は IAM ロール名ではなく、Systems Manager のサービス設定名である点です。このサービス設定の値として、DHMC で使用する IAM ロール名が設定されます。
そのため、Quick Setup を使った場合に実際に使われる IAM ロール名は、AWSSystemsManagerDefaultEC2InstanceManagementRole に固定されるとは限りません。
Quick Setup がどのようなロールを扱うのかを確認するために、関連する AWS 管理ポリシー AWSQuickSetupEnableDHMCExecutionPolicy を見ると、対象リソースとして arn:aws:iam::*:role/AWS-QuickSetup-SSM-DefaultEC2MgmtRole-* が記載されています。少なくとも執筆時点では、Quick Setup が作成する DHMC 用ロールはこの命名パターンで扱われています。
"Resource" : "arn:aws:iam::*:role/AWS-QuickSetup-SSM-DefaultEC2MgmtRole-*"
https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSQuickSetupEnableDHMCExecutionPolicy.html
したがって、Quick Setup を使った環境では、AWSSystemsManagerDefaultEC2InstanceManagementRole が見つからなくても不自然ではありません。代わりに、default-ec2-instance-management-role に AWS-QuickSetup-SSM-DefaultEC2MgmtRole-ap-northeast-1 のようなロールが設定されている場合があります。
今回確認した環境でも、Quick Setup 用の命名パターンに沿った IAM ロールが作成されていました。アタッチされているポリシーについては後述します。

確実な確認方法
ここで確認したいのは、EC2 のインスタンスプロファイルにアタッチされた IAM ロールではなく、Systems Manager の default-ec2-instance-management-role サービス設定に設定されている IAM ロール名です。
そのため、DHMC で実際に使われている IAM ロール名を確認するには、IAM のロール一覧を眺めるよりも、default-ec2-instance-management-role を確認するのが最も確実です。
Quick Setup のドキュメントでも、ロールが既に指定されているかどうかの確認には get-service-setting を使うよう案内されています。
aws ssm get-service-setting \
--setting-id /ssm/managed-instance/default-ec2-instance-management-role \
--region ap-northeast-1
実際に確認したところ、Quick Setup で有効化されているアカウントでは次のような結果になりました。
{
"ServiceSetting": {
"SettingId": "/ssm/managed-instance/default-ec2-instance-management-role",
"SettingValue": "AWS-QuickSetup-SSM-DefaultEC2MgmtRole-ap-northeast-1",
"LastModifiedDate": "2025-01-24T02:36:57.131000+00:00",
"LastModifiedUser": "arn:aws:sts::123456789012:assumed-role/AWS-QuickSetup-SSM-EnableDHMC-vnxiq/Automation-6c5d56de-d880-424d-8c2c-994430651e81",
"ARN": "arn:aws:ssm:ap-northeast-1:123456789012:servicesetting/ssm/managed-instance/default-ec2-instance-management-role",
"Status": "Customized"
}
}
この出力から、東京リージョンでは AWS-QuickSetup-SSM-DefaultEC2MgmtRole-ap-northeast-1 が設定されており、LastModifiedUser も Quick Setup の Automation 実行ロールになっていることが分かります。Quick Setup 経由で設定されたことを確認する材料として分かりやすい結果でした。
一方で、未設定のアカウントでは次のように SettingValue が $None になっていました。
{
"ServiceSetting": {
"SettingId": "/ssm/managed-instance/default-ec2-instance-management-role",
"SettingValue": "$None",
"LastModifiedDate": "2021-11-15T15:15:59.711000+00:00",
"LastModifiedUser": "System",
"ARN": "arn:aws:ssm:ap-northeast-1:123456789012:servicesetting/ssm/managed-instance/default-ec2-instance-management-role",
"Status": "Default"
}
}
この場合は、そのアカウントとリージョンでは default-ec2-instance-management-role がまだ設定されていないと判断できます。
マネジメントコンソールでどこまで確認できるか
今回確認した範囲では、Fleet Manager から個別に設定した場合は、編集画面から指定中の IAM ロールを確認できました。そのため、個別設定のケースでは CLI を使わなくても、マネジメントコンソール上で状況を把握しやすいです。
一方で、Quick Setup で展開したケースでは、メンバーアカウントのマネジメントコンソール上から default-ec2-instance-management-role に設定されている実ロール名を直接確認する方法は見つけられませんでした。
AWS 公式ドキュメントでも、ロールが既に指定されているかどうかの確認には get-service-setting を使うよう案内されています。
そのため、実際に設定されているロール名の確認は CLI の get-service-setting が最も確実です。
付与される権限も確認しておく
DHMC 用ロールに付与される代表的なポリシーは AmazonSSMManagedEC2InstanceDefaultPolicy です。AWS 管理ポリシーの説明では、このポリシーは EC2 インスタンス上で AWS Systems Manager の機能を有効にするものとされています。
今回確認した Quick Setup 用のロールにも、この AmazonSSMManagedEC2InstanceDefaultPolicy がアタッチされていました。
Description: This policy enables AWS Systems Manager functionality on EC2 instances.
説明 このポリシーは EC2 インスタンスで AWS Systems Manager の機能を有効にします。
https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSSMManagedEC2InstanceDefaultPolicy.html
まとめ
今回の確認内容を整理すると、DHMC で EC2 が利用する IAM ロール名を確認する際は、IAM ロール名そのもの と、どのロールを使うかを保持するサービス設定 を分けて考えると分かりやすいです。
DHMC では、Fleet Manager から個別アカウントで設定する場合も、Quick Setup で組織展開する場合も、最終的には Systems Manager の default-ec2-instance-management-role サービス設定に使用する IAM ロール名が設定されます。
- Fleet Manager から個別アカウントで設定する場合
AWSSystemsManagerDefaultEC2InstanceManagementRoleが推奨ロールとして表示される- 設定後はマネジメントコンソールの編集画面から指定中の IAM ロールを確認できる
default-ec2-instance-management-roleには、選択した IAM ロール名が設定される
- Quick Setup で組織展開する場合
- 既に
default-ec2-instance-management-roleに IAM ロールが設定されていれば、そのロールが使われる - 未設定であれば、執筆時点では Quick Setup により
AWS-QuickSetup-SSM-DefaultEC2MgmtRole-<region>という名前のロールが作成され、default-ec2-instance-management-roleに設定される
- 既に
マネジメントコンソール上で確認できる場合もありますが、設定値そのものを確認するという意味では、aws ssm get-service-setting で default-ec2-instance-management-role の値を見るのが最も確実です。
AWSSystemsManagerDefaultEC2InstanceManagementRole が見つからないと戸惑いますが、DHMC で使われるロール名は設定方法や既存のサービス設定によって異なる場合があります。まずは default-ec2-instance-management-role を確認し、そこに設定されている値を実際に使われている IAM ロール名として見るのがよさそうです。





