

• Amazon Systems Manager CloudWatch 控制面板在 2026 年 4 月 30 日之后将不再可用。客户可以像现在一样继续使用 Amazon CloudWatch 控制台来查看、创建和管理其 Amazon CloudWatch 控制面板。有关更多信息，请参阅 [Amazon CloudWatch 控制面板文档](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

# 使用默认主机管理配置自动管理 EC2 实例
<a name="fleet-manager-default-host-management-configuration"></a>

通过“默认主机管理配置”设置，Amazon Systems Manager 可以将 Amazon EC2 实例作为*托管式实例*自动管理。托管实例是一个配置为与 Systems Manager 一起使用的 EC2 实例。

使用 Systems Manager 管理实例的好处包括以下几点：
+ 可以使用 Session Manager 安全地连接到您的 EC2 实例。
+ 可以使用 Patch Manager 执行自动补丁扫描。
+ 可以使用 Systems Manager 清单查看有关您的实例的详细信息。
+ 可以使用 Fleet Manager 追踪和管理实例。
+ 可以自动保持 SSM Agent 处于最新状态。

*Fleet Manager、Inventory、Patch Manager和Session Manager都是 Systems Manager 中的工具。*

使用默认主机管理配置时，无需手动创建 Amazon Identity and Access Management（IAM）实例配置文件即可管理 EC2 实例。“默认主机管理配置”会创建并应用默认 IAM 角色，确保 Systems Manager 有权管理已激活该设置的 Amazon Web Services 账户 和 Amazon Web Services 区域 中的所有实例。

如果提供的权限不足以满足您的应用场景要求，您还可以向“默认主机管理配置”创建的默认 IAM 角色添加策略。或者，如果您不需要默认 IAM 角色提供的所有功能的权限，可以创建自己的自定义角色和策略。对您为“默认主机管理配置”选择的 IAM 角色所做的任何更改，都适用于相应区域和账户中的所有托管 Amazon EC2 实例。

有关“默认主机管理配置”所用策略的更多信息，请参阅 [Amazon 托管式策略：AmazonSSMManagedEC2InstanceDefaultPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSSMManagedEC2InstanceDefaultPolicy)。

**实施最低权限访问**  
本主题中的过程仅由管理员执行。因此，我们建议实施*最低权限访问权限*，以防止非管理员用户配置或修改“默认主机管理配置”。要查看限制访问“默认主机管理配置”时的策略示例，请参阅本主题后面的 [“默认主机管理配置”的最低权限策略示例](#least-privilege-examples)。

**重要**  
使用“默认主机管理配置”注册的实例的注册信息，存储在本地的 `var/lib/amazon/ssm` 或 `C:\ProgramData\Amazon` 目录中。如果移除这些目录或其中的文件，将导致实例无法使用默认主机管理配置获取连接到 Systems Manager 所需的凭证。在这些情况下，您必须使用 IAM 实例配置文件为实例提供所需的权限，或者重新创建实例。

**Topics**
+ [

## 先决条件
](#dhmc-prerequisites)
+ [

## 激活“默认主机管理配置”设置
](#dhmc-activate)
+ [

## 停用“默认主机管理配置”设置
](#dhmc-deactivate)
+ [

## “默认主机管理配置”的最低权限策略示例
](#least-privilege-examples)

## 先决条件
<a name="dhmc-prerequisites"></a>

要在激活该设置的 Amazon Web Services 区域 和 Amazon Web Services 账户 中使用“默认主机管理配置”，就必须满足以下要求。
+ 要管理的实例必须使用实例元数据服务版本 2（imdsv2）。

  “默认主机管理配置”不支持实例元数据服务版本 1。有关过渡到 IMDSv2 的信息，请参阅《Amazon EC2 用户指南》**中的[转换为使用实例元数据服务版本 2](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/instance-metadata-transition-to-version-2.html)。
+ 3.2.582.0 版本或更高版本的 SSM Agent 必须安装在实例上。

  有关检查您的实例上安装的 SSM Agent 版本的信息，请参阅 [正在检查 SSM Agent 版本号](ssm-agent-get-version.md)。

  有关更新 SSM Agent 的信息，请参阅 [自动更新 SSM Agent](ssm-agent-automatic-updates.md#ssm-agent-automatic-updates-console)。
+ 作为执行本主题中任务的管理员，您必须具有 [GetServiceSetting](https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_GetServiceSetting.html)、[ResetServiceSetting](https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_ResetServiceSetting.html) 和 [UpdateServiceSetting](https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_UpdateServiceSetting.html) API 操作的权限。此外，您还必须有权获得 `AWSSystemsManagerDefaultEC2InstanceManagementRole` IAM 角色的 `iam:PassRole` 权限。以下是提供这些权限的示例策略。将每个*示例资源占位符*替换为您自己的信息。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "ssm:GetServiceSetting",
                  "ssm:ResetServiceSetting",
                  "ssm:UpdateServiceSetting"
              ],
              "Resource": "arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/managed-instance/default-ec2-instance-management-role"
          },
          {
              "Effect": "Allow",
              "Action": [
                  "iam:PassRole"
              ],
              "Resource": "arn:aws:iam::111122223333:role/service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole",
              "Condition": {
                  "StringEquals": {
                      "iam:PassedToService": [
                          "ssm.amazonaws.com"
                      ]
                  }
              }
          }
      ]
  }
  ```

------
+ 如果已经使用 Systems Manager 将 IAM 实例配置文件附加到要管理的 EC2 实例，则必须从中移除任何允许 `ssm:UpdateInstanceInformation` 操作的权限。SSM Agent 会首先尝试使用实例配置文件权限，然后才会使用“默认主机管理配置”权限。如果您在自己的 IAM 实例配置文件中允许该 `ssm:UpdateInstanceInformation` 操作，则该实例将不使用“默认主机管理配置”权限。

## 激活“默认主机管理配置”设置
<a name="dhmc-activate"></a>

您可以从 Fleet Manager 控制台或者使用 Amazon Command Line Interface 或 Amazon Tools for Windows PowerShell 激活“默认主机管理配置”。

您必须在想要通过此设置管理 Amazon EC2 实例的每个区域中，逐个开启“默认主机管理配置”。

在开启“默认主机管理配置”后，实例最多可能需要 30 分钟，就能使用您在下述过程步骤 5 中所选角色的凭证。

**激活“默认主机管理配置”（控制台）**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.amazonaws.cn/systems-manager/)，打开 Amazon Systems Manager 控制台。

1. 在导航窗格中，请选择 **Fleet Manager**。

1. 选择**账户管理，配置默认主机管理配置**。

1. 打开**启用默认主机管理配置**。

1. 选择用于为您的实例启用 Systems Manager 工具的 Amazon Identity and Access Management（IAM）角色。我们建议使用“默认主机管理配置”提供的默认角色。它包含使用 Systems Manager 管理您的 Amazon EC2 实例所需的最低权限集合。如果您更喜欢使用自定义角色，则该角色的信任策略必须允许 Systems Manager 作为可信实体。

1. 选择**配置**以完成设置。

**激活“默认主机管理配置”（命令行）**

1. 在您的本地计算机上创建包含以下信任关系策略的 JSON 文件。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement":[
           {
               "Sid":"",
               "Effect":"Allow",
               "Principal":{
                   "Service":"ssm.amazonaws.com"
               },
               "Action":"sts:AssumeRole"
           }
       ]
   }
   ```

------

1. 打开 Amazon CLI 或 Tools for Windows PowerShell 并运行以下命令之一，以在您的账户中创建一个服务角色，具体取决于您本地计算机的操作系统类型。将每个*示例资源占位符*替换为您自己的信息。

------
#### [ Linux & macOS ]

   ```
   aws iam create-role \
   --role-name AWSSystemsManagerDefaultEC2InstanceManagementRole \
   --path /service-role/ \
   --assume-role-policy-document file://trust-policy.json
   ```

------
#### [ Windows ]

   ```
   aws iam create-role ^
   --role-name AWSSystemsManagerDefaultEC2InstanceManagementRole ^
   --path /service-role/ ^
   --assume-role-policy-document file://trust-policy.json
   ```

------
#### [ PowerShell ]

   ```
   New-IAMRole `
   -RoleName "AWSSystemsManagerDefaultEC2InstanceManagementRole" `
   -Path "/service-role/" `
   -AssumeRolePolicyDocument "file://trust-policy.json"
   ```

------

1. 运行以下命令，将 `AmazonSSMManagedEC2InstanceDefaultPolicy` 托管策略附加到您新建的角色。将每个*示例资源占位符*替换为您自己的信息。

------
#### [ Linux & macOS ]

   ```
   aws iam attach-role-policy \
   --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedEC2InstanceDefaultPolicy \
   --role-name AWSSystemsManagerDefaultEC2InstanceManagementRole
   ```

------
#### [ Windows ]

   ```
   aws iam attach-role-policy ^
   --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedEC2InstanceDefaultPolicy ^
   --role-name AWSSystemsManagerDefaultEC2InstanceManagementRole
   ```

------
#### [ PowerShell ]

   ```
   Register-IAMRolePolicy `
   -PolicyArn "arn:aws:iam::aws:policy/AmazonSSMManagedEC2InstanceDefaultPolicy" `
   -RoleName "AWSSystemsManagerDefaultEC2InstanceManagementRole"
   ```

------

1. 打开 Amazon CLI 或 Tools for Windows PowerShell 并运行以下命令。将每个*示例资源占位符*替换为您自己的信息。

------
#### [ Linux & macOS ]

   ```
   aws ssm update-service-setting \
   --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role \
   --setting-value service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole
   ```

------
#### [ Windows ]

   ```
   aws ssm update-service-setting ^
   --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role ^
   --setting-value service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole
   ```

------
#### [ PowerShell ]

   ```
   Update-SSMServiceSetting `
   -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role" `
   -SettingValue "service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole"
   ```

------

   如果此命令成功，则无任何输出。

1. 运行以下命令，以查看当前的 Amazon Web Services 账户 和 Amazon Web Services 区域 中“默认主机管理配置”的当前服务设置。

------
#### [ Linux & macOS ]

   ```
   aws ssm get-service-setting \
   --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role
   ```

------
#### [ Windows ]

   ```
   aws ssm get-service-setting ^
   --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMServiceSetting `
   -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role"
   ```

------

   此命令会返回如下信息。

   ```
   {
       "ServiceSetting": {
           "SettingId": "/ssm/managed-instance/default-ec2-instance-management-role",
           "SettingValue": "service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole",
           "LastModifiedDate": "2022-11-28T08:21:03.576000-08:00",
           "LastModifiedUser": "System",
           "ARN": "arn:aws:ssm:us-east-2:-123456789012:servicesetting/ssm/managed-instance/default-ec2-instance-management-role",
           "Status": "Custom"
       }
   }
   ```

## 停用“默认主机管理配置”设置
<a name="dhmc-deactivate"></a>

您可以从 Fleet Manager 控制台或者使用 Amazon Command Line Interface 或 Amazon Tools for Windows PowerShell 停用“默认主机管理配置”。

您必须在不再想要通过此配置管理 Amazon EC2 实例的每个区域中，逐个关闭“默认主机管理配置”设置。在一个区域将其停用，不会在所有区域将其停用。

如果您停用“默认主机管理配置”，并且未将实例配置文件附加到允许访问 Systems Manager 的 Amazon EC2 实例，则这些实例将不再由 Systems Manager 管理。

**停用“默认主机管理配置”（控制台）**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.amazonaws.cn/systems-manager/)，打开 Amazon Systems Manager 控制台。

1. 在导航窗格中，请选择 **Fleet Manager**。

1. 选择**账户管理，默认主机管理配置**。

1. 关闭**启用默认主机管理配置**。

1. 选择**配置**以禁用“默认主机管理配置”。

**停用“默认主机管理配置”（命令行）**
+ 打开 Amazon CLI 或 Tools for Windows PowerShell 并运行以下命令。将每个*示例资源占位符*替换为您自己的信息。

------
#### [ Linux & macOS ]

  ```
  aws ssm reset-service-setting \
  --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role
  ```

------
#### [ Windows ]

  ```
  aws ssm reset-service-setting ^
  --setting-id arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role
  ```

------
#### [ PowerShell ]

  ```
  Reset-SSMServiceSetting `
  -SettingId "arn:aws:ssm:region:account-id:servicesetting/ssm/managed-instance/default-ec2-instance-management-role"
  ```

------

## “默认主机管理配置”的最低权限策略示例
<a name="least-privilege-examples"></a>

以下示例策略演示如何防止组织成员更改您账户中的“默认主机管理配置”设置。

### 适用于 Amazon Organizations 的服务控制策略
<a name="scp-organizations"></a>

以下策略演示如何防止您 Amazon Organizations 中的非管理员成员更新您的“默认主机管理配置”设置。将每个*示例资源占位符*替换为您自己的信息。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Deny",
            "Action": [
                "ssm:UpdateServiceSetting",
                "ssm:ResetServiceSetting"
            ],
            "Resource": "arn:aws:ssm:*:*:servicesetting/ssm/managed-instance/default-ec2-instance-management-role",
            "Condition": {
                "StringNotEqualsIgnoreCase": {
                    "aws:PrincipalTag/job-function": [
                        "administrator"
                    ]
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "arn:aws:iam::*:role/service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "ssm.amazonaws.com"
                },
                "StringNotEqualsIgnoreCase": {
                    "aws:PrincipalTag/job-function": [
                        "administrator"
                    ]
                }
            }
        },
        {
            "Effect": "Deny",
            "Resource": "arn:aws:iam::*:role/service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:DeleteRole"
            ],
            "Condition": {
                "StringNotEqualsIgnoreCase": {
                    "aws:PrincipalTag/job-function": [
                        "administrator"
                    ]
                }
            }
        }
    ]
}
```

------

### 适用于 IAM 主体的策略
<a name="iam-principals-policy"></a>

以下策略演示如何防止您 Amazon Organizations 中的 IAM 组、角色或用户更新您的“默认主机管理配置”设置。将每个*示例资源占位符*替换为您自己的信息。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "ssm:UpdateServiceSetting",
                "ssm:ResetServiceSetting"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/managed-instance/default-ec2-instance-management-role"
        },
        {
            "Effect": "Deny",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:DeleteRole",
                "iam:PassRole"
            ],
            "Resource": "arn:aws:iam::111122223333:role/service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole"
        }
    ]
}
```

------