

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

# 使用文档
<a name="documents-using"></a>

本节包含有关如何使用 SSM 文档的信息。

**Topics**
+ [比较 SSM 文档版本](comparing-versions.md)
+ [创建 SSM 文档](create-ssm-console.md)
+ [删除自定义 SSM 文档](deleting-documents.md)
+ [从远程位置运行文档](documents-running-remote-github-s3.md)
+ [共享 SSM 文档](documents-ssm-sharing.md)
+ [搜索 SSM 文档](ssm-documents-searching.md)

# 比较 SSM 文档版本
<a name="comparing-versions"></a>

您可以在 Systems Manager 文档控制台中比较 AWS Systems Manager (SSM) 文档版本之间的内容差异。比较 SSM 文档的版本时，会突出显示版本内容之间的差异。

**比较 SSM 文档内容（控制台）**

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

1. 在导航窗格中，选择**文档**。

1. 在文档列表中，选择要比较其内容的文档。

1. 在存储库的**内容**选项卡上，选择**比较版本**，然后选择要将内容与其进行比较的文档版本。

# 创建 SSM 文档
<a name="create-ssm-console"></a>

如 [编写 SSM 文档内容](documents-creating-content.md#writing-ssm-doc-content) 中所述，为自定义 SSM 文档创建内容后，您可以通过 Systems Manager 控制台使用您的内容创建 SSM 文档。

**要创建 SSM 文档**

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

1. 在导航窗格中，选择**文档**。

1. 选择 **Create command or session (创建命令或会话)**。

1. 输入文档的描述性名称。

1. （可选）对于 **Target type (目标类型)**，指定可以运行文档的资源类型。

1. 在**文档类型**列表中，选择您要创建的文档类型。

1. 删除 **Content (内容)** 字段中的方括号，然后将您之前创建的文档内容粘贴到这里。

1. （可选）在 **Document tags (文档标签)** 部分，将一个或多个标签键名称/值对应用于文档。

   标签是您分配给资源的可选元数据。标签可让您按各种标准（如用途、所有者或环境）对资源进行分类。例如，您可能希望标记文档以标识它运行的任务类型、它指向的操作系统的类型以及它在其中运行的环境。在这种情况下，您可以指定以下键名/键值对：
   + `Key=TaskType,Value=MyConfigurationUpdate`
   + `Key=OS,Value=AMAZON_LINUX_2`
   + `Key=Environment,Value=Production`

1. 选择**创建文档**以保存文档。

# 删除自定义 SSM 文档
<a name="deleting-documents"></a>

如果您不再想使用自定义 SSM 文档，则可以使用 AWS Systems Manager 控制台来删除它。

**要删除 SSM 文档**

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

1. 在导航窗格中，选择**文档**。

1. 选择要删除的角色。

1. 选择**删除**。在提示删除文档时，选择**删除**。

有关使用命令行工具或 SDK 删除 SSM 文档的示例，请参阅 [将 `DeleteDocument` 与 AWS SDK 或 CLI 配合使用](example_ssm_DeleteDocument_section.md)。

# 从远程位置运行文档
<a name="documents-running-remote-github-s3"></a>

您可以使用 `AWS-RunDocument` 预定义的 SSM 文档从远程位置运行 AWS Systems Manager (SSM) 文档。此文档支持运行存储在以下位置的 SSM 文档：
+ 公共和私有 GitHub 存储库（不支持 GitHub Enterprise）
+ Amazon S3 存储桶
+ Systems Manager

虽然您也可以使用State Manager或 Automation（都是 AWS Systems Manager 中的工具）运行远程文档，下面的过程仅介绍了如何在 Systems Manager 控制台中使用 AWS Systems Manager Run Command 运行远程 SSM 文档。

**注意**  
`AWS-RunDocument` 仅可用于运行命令类型的 SSM 文档，而不是其他类型（如自动化运行手册）。`AWS-RunDocument` 使用 `aws:downloadContent` 插件。有关 `aws:downloadContent` 插件的更多信息，请参阅 [`aws:downloadContent`](documents-command-ssm-plugin-reference.md#aws-downloadContent)。

**警告**  
`AWS-RunDocument` 可以执行来自各种来源（SSM 文档、GitHub、S3、URL）的文档内容。执行远程文档时，评估的 IAM 权限适用于远程文档中的 `ssm:GetDocument` 和 `AWS-RunDocument` 中的 `ssm:SendCommand`。如果您的 IAM 策略拒绝访问特定 SSM 文档，则拥有 `AWS-RunDocument` 权限的用户仍然可以通过将文档内容作为参数传递来执行这些被拒绝的文档，这些参数可能不受相同的特定于文档的 IAM 限制的约束。  
要正确限制文档执行，请使用以下方法之一：  
**允许名单批准的来源**：如果您需要使用嵌套文档执行，请使用对每种来源类型的适当控制来限制仅允许访问已批准的来源：用于控制 SSM 文档来源的 `ssm:GetDocument` 的 IAM 策略、Amazon S3 来源的 IAM 和 Amazon S3 存储桶策略以及公共互联网来源的网络设置（例如 VPC 端点或安全组）。
**限制访问 AWS-RunDocument**：拒绝 `AWS-RunDocument` 中的 `ssm:SendCommand` 以及在您的 IAM 策略中使用 `aws:runDocument` 插件的任何其他文档，进而防止嵌套文档执行。
**使用权限边界**：实施 IAM 权限边界为用户设置最大权限，防止他们执行未经授权的文档，无论执行方法如何。
有关 IAM 最佳实践和权限边界的更多信息，请参阅《AWS Identity and Access Management 用户指南》**中的 [IAM 身份的权限边界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。

**开始前的准备工作**  
必须先完成以下任务才能运行远程文档。
+ 创建 SSM 命令文档并在远程位置保存该文档。有关更多信息，请参阅 [创建 SSM 文档内容](documents-creating-content.md)。
+ 如果打算运行存储在私有 GitHub 存储库中的远程文档，则必须为 GitHub 安全访问令牌创建 Systems Manager `SecureString` 参数。通过 SSH 手动传递令牌无法访问私有 GitHub 存储库中的远程文档。该访问令牌必须作为 Systems Manager `SecureString` 参数传递。有关创建 `SecureString` 参数的更多信息，请参阅 [在 Systems Manager 中创建 Parameter Store 参数](sysman-paramstore-su-create.md)。

## 运行远程文档（控制台）
<a name="documents-running-remote-github-s3-console"></a>

**运行远程文档**

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

1. 在导航窗格中，请选择 **Run Command**。

1. 选择 **Run command（运行命令）**。

1. 在 **文档**列表中，选择 **`AWS-RunDocument`**。

1. 在 **命令参数** 中，对于 **源类型**，请选择一个选项。
   + 如果选择 **GitHub**，则采用以下格式指定**源信息**信息：

     ```
     {
         "owner": "owner_name",
         "repository": "repository_name",
         "path": "path_to_document",
         "getOptions":"branch:branch_name",
         "tokenInfo": "{{ssm-secure:secure-string-token}}"
     }
     ```

     例如：

     ```
     {
         "owner":"TestUser",
         "repository":"GitHubTestExamples",
         "path":"scripts/python/test-script",
         "getOptions":"branch:exampleBranch",
         "tokenInfo":"{{ssm-secure:my-secure-string-token}}"
     }
     ```
**注意**  
`getOptions` 是用于从分支（而非主分支）或存储库中的特定提交中检索内容的额外选项。如果您在主分支中使用最新提交，则可以省略 `getOptions`。仅当您的 SSM 文档存储在 `master` 以外的分支中时，`branch` 参数才是必需的。  
要使用存储库中特定*提交* 中的 SSM 文档版本，请使用 `commitID` 和 `getOptions`，而不是 `branch`。例如：  

     ```
     "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
     ```
   + 如果选择 **S3**，则采用以下格式指定**源信息**信息：

     ```
     {"path":"URL_to_document_in_S3"}
     ```

     例如：

     ```
     {"path":"https://s3.amazonaws.com/amzn-s3-demo-bucket/scripts/ruby/mySSMdoc.json"}
     ```
   + 如果选择 **SSMDocument**，则采用以下格式指定**源信息**信息：

     ```
     {"name": "document_name"}
     ```

     例如：

     ```
     {"name": "mySSMdoc"}
     ```

1. 在 **文档参数** 字段中，输入远程 SSM 文档的参数。例如，如果运行 `AWS-RunPowerShell` 文档，则可指定：

   ```
   {"commands": ["date", "echo \"Hello World\""]}
   ```

   如果运行 `AWS-ConfigureAWSPack` 文档中，则可指定：

   ```
   {
      "action":"Install",
      "name":"AWSPVDriver"
   }
   ```

1. 在 **Targets**（目标）部分中，通过指定标签、手动选择实例或边缘设备或指定资源组，选择要在其上运行此操作的托管式节点。
**提示**  
如果未列出您希望看到的托管式节点，请参阅 [排除托管式节点可用性的问题](fleet-manager-troubleshooting-managed-nodes.md) 以获取故障排除技巧。

1. 对于 **Other parameters（其他参数）**：
   + 对于 **Comment（注释）**，请输入有关此命令的信息。
   + 对于 **Timeout (seconds) (超时 (秒))**，请指定在整个命令执行失败之前系统等待的秒数。

1. 对于 **Rate control（速率控制）**：
   + 对于 **Concurrency**（并发），请指定要同时运行该命令的托管式节点的数量或百分比。
**注意**  
如果您通过指定应用于托管式节点的标签或指定 AWS Resource Groups 来选择目标，但不确定有多少个托管式节点已被设为目标，则可通过指定百分比来限制可同时运行该文档的目标的数量。
   + 对于 **Error threshold**（错误阈值），请指定当命令在一定数量或百分比的节点上失败后，何时在其他托管式节点上停止运行该命令。例如，如果您指定三个错误，Systems Manager 将在收到第四个错误时停止发送该命令。仍在处理该命令的托管式节点也可能发送错误。

1. （可选）对于 **输出选项**，要将命令输出保存到文件，请选中 **将命令输出写入 S3 存储桶** 框。在输入框中输入存储桶和前缀（文件夹）名称。
**注意**  
授予将数据写入 S3 存储桶的能力的 S3 权限，是分配给实例的实例配置文件（适用于 EC2 实例）或 IAM 服务角色（混合激活的计算机）的权限，而不是执行此任务的 IAM 用户的权限。有关更多信息，请参阅[配置 Systems Manager 所需的实例权限](setup-instance-permissions.md)或[为混合环境创建 IAM 服务角色](hybrid-multicloud-service-role.md)。此外，如果指定的 S3 存储桶位于不同的 AWS 账户 中，请确保与该托管式节点关联的实例配置文件或 IAM 服务角色具有写入该存储桶的所需权限。

1. 在 **SNS 通知**部分，如果需要发送有关命令执行状态的通知，请选中 **Enable SNS notifications（启用 SNS 通知）**复选框。

   有关为 Run Command 配置 Amazon SNS 通知的更多信息，请参阅 [使用 Amazon SNS 通知监控 Systems Manager 状态更改](monitoring-sns-notifications.md)。

1. 选择 **Run（运行）**。

**注意**  
有关在使用 Run Command 调用脚本时重启服务器和实例的信息，请参阅 [运行命令时处理重启问题](send-commands-reboot.md)。

# 共享 SSM 文档
<a name="documents-ssm-sharing"></a>

您可以与同一个 AWS 区域 中的账户私下或公开共享 AWS Systems Manager (SSM) 文档。要私下共享文档，请修改文档权限并允许特定个人根据其 AWS 账户 ID 访问文档。要公开共享 SSM 文档，请修改文档权限并指定 `All` 。不能同时公开和私下共享文档。

**警告**  
请仅使用从可信来源获取的共享 SSM 文档。使用任何共享文档时，请务必在使用前仔细查看文件内容，了解它会如何更改您的实例配置。有关共享文档最佳实践的更多信息，请参阅 [共享 SSM 文档的最佳做法](#best-practices-shared)。

**限制**  
在开始使用 SSM 文档时，请注意下列限制。
+ 仅所有者可共享文档。
+ 您必须先停止共享文档，然后才能删除它。有关更多信息，请参阅 [修改共享 SSM 文档的权限](#modify-permissions-shared)。
+ 您最多可与 1000 个 AWS 账户 共享一个文档。您可以在 [支持 中心](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase)中请求提高该限制。对于**限制类型**，选择 *EC2 Systems Manager * 并描述您的请求理由。
+ 您可公开共享最多 5 个 SSM 文档。您可以在 [支持支持中心](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase)中请求提高该限制。对于**限制类型**，选择 *EC2 Systems Manager* 并描述您的请求理由。
+ 文档只能与同一个 AWS 区域 中的其他账户共享。不支持跨区域共享。

**重要**  
在 Systems Manager 中，*Amazon 拥有的* SSM 文档是由 Amazon Web Services 自己创建和管理的文档。*Amazon 拥有的*文档在文档名称中包含 `AWS-*` 之类的前缀。文档的所有者被视为 Amazon，而不是 AWS 内的特定用户账户。这些文档可供所有人公开使用。

有关 Systems Manager Service Quotas 的更多信息，请参阅 [AWS Systems ManagerService Quotas ](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm)。

**Topics**
+ [共享 SSM 文档的最佳做法](#best-practices-shared)
+ [阻止 SSM 文档的公开共享](#block-public-access)
+ [共享 SSM 文档](#ssm-how-to-share)
+ [修改共享 SSM 文档的权限](#modify-permissions-shared)
+ [使用共享 SSM 文档](#using-shared-documents)

## 共享 SSM 文档的最佳做法
<a name="best-practices-shared"></a>

在共享或使用共享文档之前，请阅读以下指南。

**删除敏感信息**  
请仔细审查您的 AWS Systems Manager (SSM) 文档并删除任何敏感信息。例如，请确保文档不包含您的 AWS 凭证。如果您与特定个人共享文档，这些用户可查看文档中的信息。如果您公开共享文档，则任何人都可查看文档中的信息。

**阻止文档的公开共享**  
查看您账户中所有公开共享的 SSM 文档，并确认是否要继续共享这些文档。要停止与公众共享文档，必须按照本主题 [修改共享 SSM 文档的权限](#modify-permissions-shared) 部分所述来修改文档权限设置。启用“阻止公开共享”设置不会影响您当前与公众共享的任何文档。除非您的应用场景需要您与公众共享文档，否则建议在 Systems Manager 文档控制台的**首选项**部分，为您的 SSM 文档开启阻止公开共享设置。启用此设置可防止对 SSM 文档进行不需要的访问。阻止公开共享设置是一个帐户级别设置，每个 AWS 区域 的设置可能不同。

**使用 IAM 信任策略限制 Run Command 操作**  
为将有权访问该文档的用户创建限制性 AWS Identity and Access Management（IAM）policy。IAM policy 确定用户可在 Amazon Elastic Compute Cloud（Amazon EC2）控制台中或通过使用 AWS Command Line Interface（AWS CLI）或 AWS Tools for Windows PowerShell 调用 `ListDocuments` 查看哪些 SSM 文档。该策略还限制用户可使用 SSM 文档执行的操作。您可创建限制性策略，以便用户只能使用特定文档。有关更多信息，请参阅 [客户管理型策略示例](security_iam_id-based-policy-examples.md#customer-managed-policies)。

**使用共享 SSM 文档时要小心**  
审查与您共享的每个文档（特别是公开文档）的内容，以了解将在您的实例上运行的命令。一个文档在运行后可能会有意或无意具有负面影响。如果文档引用外部网络，请在使用文档前审查外部源。

**使用文档哈希发送命令**  
在共享文档时，系统将创建 Sha-256 哈希并将其分配给文档。系统还将保存文档内容的快照。使用共享文档发送命令时，您可在命令中指定哈希以确保下列条件为 true：  
+ 您正在从正确的 Systems Manager 文档运行命令
+ 在与您共享之后文档内容未更改。
如果哈希与指定文档不匹配，或者共享文档的内容已更改，则命令将返回 `InvalidDocument` 异常。哈希无法验证来自外部位置的文档内容。

**使用插值参数来增强安全性**  
对于 SSM 文档中的 `String` 类型参数，可使用参数和值 `interpolationType": "ENV_VAR` 增强对命令注入攻击的防御能力，方法是将参数输入视为字符串文本值，而非可能的可执行命令。在这种情况下，代理会创建一个包含参数值的环境变量 `SSM_parameter-name`。我们建议对现有所有包含 `String` 类型参数的 SSM 文档进行更新，以纳入 `"interpolationType": "ENV_VAR"`。有关更多信息，请参阅 [编写 SSM 文档内容](documents-creating-content.md#writing-ssm-doc-content)。

## 阻止 SSM 文档的公开共享
<a name="block-public-access"></a>

开始前，请查看您 AWS 账户 中所有公开共享的 SSM 文档，并确认是否要继续共享它们。要停止与公众共享 SSM 文档，必须按照本主题 [修改共享 SSM 文档的权限](#modify-permissions-shared) 部分所述修改文档权限设置。启用“阻止公开共享”设置不会影响您当前与公众共享的任何 SSM 文档。启用“阻止公开共享”设置后，您将无法与公众共享任何其他 SSM 文档。

除非您的应用场景需要您与公众共享文档，否则我们建议为您的 SSM 文档开启阻止公开共享设置。启用此设置可防止对 SSM 文档进行不需要的访问。阻止公开共享设置是一个帐户级别设置，每个 AWS 区域 的设置可能不同。完成以下任务以阻止您目前正在共享的任何 SSM 文档的公开共享。

### 阻止公开共享（控制台）
<a name="block-public-access-console"></a>

**要阻止 SSM 文档的公开共享**

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

1. 在导航窗格中，选择**文档**。

1. 选择**首选项**，然后在**阻止公开共享**部分中选择**编辑**。

1. 选择**阻止公开共享**复选框，然后选择**保存**。

### 阻止公开共享（命令行）
<a name="block-public-access-cli"></a>

打开 AWS Command Line Interface (AWS CLI）或 AWS Tools for Windows PowerShell 并运行以下命令以阻止 SSM 文档的公开共享。

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

```
aws ssm update-service-setting  \
    --setting-id /ssm/documents/console/public-sharing-permission \
    --setting-value Disable \
    --region 'The AWS 区域 you want to block public sharing in'
```

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

```
aws ssm update-service-setting ^
    --setting-id /ssm/documents/console/public-sharing-permission ^
    --setting-value Disable ^
    --region "The AWS 区域 you want to block public sharing in"
```

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

```
Update-SSMServiceSetting `
    -SettingId /ssm/documents/console/public-sharing-permission `
    -SettingValue Disable `
    –Region The AWS 区域 you want to block public sharing in
```

------

使用以下命令确认设置值已更新。

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

```
aws ssm get-service-setting   \
    --setting-id /ssm/documents/console/public-sharing-permission \
    --region The AWS 区域 you blocked public sharing in
```

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

```
aws ssm get-service-setting  ^
    --setting-id /ssm/documents/console/public-sharing-permission ^
    --region "The AWS 区域 you blocked public sharing in"
```

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

```
Get-SSMServiceSetting `
    -SettingId /ssm/documents/console/public-sharing-permission `
    -Region The AWS 区域 you blocked public sharing in
```

------

### 使用 IAM 限制访问阻止公开共享
<a name="block-public-access-changes-iam"></a>

您可以创建 AWS Identity and Access Management (IAM) 策略，这些策略限制用户修改阻止公开共享设置。这可以防止用户允许对 SSM 文档进行不需要的访问。

以下是一个 IAM policy 示例，该策略阻止用户更新阻止公开共享设置。要使用此示例，您必须将示例 Amazon Web Services 账户 ID 替换为您自己的账户 ID。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "ssm:UpdateServiceSetting",
            "Resource": "arn:aws:ssm:*:444455556666:servicesetting/ssm/documents/console/public-sharing-permission"
        }
    ]
}
```

------

## 共享 SSM 文档
<a name="ssm-how-to-share"></a>

您可以通过 Systems Manager 控制台共享 AWS Systems Manager (SSM) 文档。从控制台共享文档时，只能共享文档的默认版本。您还可以通过使用 AWS Command Line Interface (AWS CLI)、 AWS Tools for Windows PowerShell 或 AWS SDK 调用 `ModifyDocumentPermission` API 操作，以编程方式共享 SSM 文档。在共享文档之前，获取要与之共享文档的人的 AWS 账户 账户 ID。您将在共享文档时指定这些账户 ID。

### 共享文档（控制台）
<a name="share-using-console"></a>

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

1. 在导航窗格中，选择**文档**。

1. 在文档列表中，选择要共享的文档，然后选择**查看详细信息**。在**权限**选项卡中，确保您是文档所有者。只有文档所有者才可共享文档。

1. 选择**编辑**。

1. 要公开共享命令，请选择**公开**，然后选择**保存**。要私下共享命令，请选择**私有**，输入 AWS 账户 ID，选**择添加权限**，然后选择**保存**。

### 共享文档（命令行）
<a name="share-using-cli"></a>

以下过程要求您为命令行会话指定 AWS 区域。

1. 在本地计算机上打开 AWS CLI 或 AWS Tools for Windows PowerShell 并运行以下命令来指定凭证。

   在下面的命令中，将 *region* 替换为您自己的信息。有关支持的 *region* 值的列表，请参阅《Amazon Web Services 一般参考》**中的 [Systems Manager service endpoints](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) 的 **Region** 列。

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

   ```
   aws config
   
   AWS Access Key ID: [your key]
   AWS Secret Access Key: [your key]
   Default region name: region
   Default output format [None]:
   ```

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

   ```
   aws config
   
   AWS Access Key ID: [your key]
   AWS Secret Access Key: [your key]
   Default region name: region
   Default output format [None]:
   ```

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

   ```
   Set-AWSCredentials –AccessKey your key –SecretKey your key
   Set-DefaultAWSRegion -Region region
   ```

------

1. 使用以下命令列出可供您使用的所有 SSM 文档。此列表包括您已创建的文档和与您共享的文档。

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

   ```
   aws ssm list-documents
   ```

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

   ```
   aws ssm list-documents
   ```

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

   ```
   Get-SSMDocumentList
   ```

------

1. 使用以下命令获取特定文档。

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

   ```
   aws ssm get-document \
       --name document name
   ```

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

   ```
   aws ssm get-document ^
       --name document name
   ```

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

   ```
   Get-SSMDocument `
       –Name document name
   ```

------

1. 使用以下命令获取文档的描述。

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

   ```
   aws ssm describe-document \
       --name document name
   ```

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

   ```
   aws ssm describe-document ^
       --name document name
   ```

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

   ```
   Get-SSMDocumentDescription `
       –Name document name
   ```

------

1. 使用以下命令查看文档的权限。

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

   ```
   aws ssm describe-document-permission \
       --name document name \
       --permission-type Share
   ```

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

   ```
   aws ssm describe-document-permission ^
       --name document name ^
       --permission-type Share
   ```

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

   ```
   Get-SSMDocumentPermission `
       –Name document name `
       -PermissionType Share
   ```

------

1. 使用以下命令修改文档的权限并共享文档。您必须是文档的所有者才能编辑权限。或者，对于与特定 AWS 账户 ID 共享的文档，您可以使用 `--shared-document-version` 参数指定要共享的文档的版本。如果您不指定版本，系统将共享文档的`Default`版本。如果您公开（与 `all`）共享文档，则默认共享指定文档的所有版本。以下示例命令根据特定个人的 AWS 账户 ID 与该个人私下共享文档。

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

   ```
   aws ssm modify-document-permission \
       --name document name \
       --permission-type Share \
       --account-ids-to-add AWS 账户 ID
   ```

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

   ```
   aws ssm modify-document-permission ^
       --name document name ^
       --permission-type Share ^
       --account-ids-to-add AWS 账户 ID
   ```

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

   ```
   Edit-SSMDocumentPermission `
       –Name document name `
       -PermissionType Share `
       -AccountIdsToAdd AWS 账户 ID
   ```

------

1. 使用以下命令公开共享文档。
**注意**  
如果您公开（与 `all`）共享文档，则默认共享指定文档的所有版本。

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

   ```
   aws ssm modify-document-permission \
       --name document name \
       --permission-type Share \
       --account-ids-to-add 'all'
   ```

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

   ```
   aws ssm modify-document-permission ^
       --name document name ^
       --permission-type Share ^
       --account-ids-to-add "all"
   ```

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

   ```
   Edit-SSMDocumentPermission `
       -Name document name `
       -PermissionType Share `
       -AccountIdsToAdd ('all')
   ```

------

## 修改共享 SSM 文档的权限
<a name="modify-permissions-shared"></a>

如果您共享一条命令，则在您删除对 AWS Systems Manager (SSM) 文档的访问权限或删除 SSM 文档之前，用户可查看和使用该命令。但是，只要文档已共享，您就无法删除它。您必须先停止共享，然后再删除它。

### 停止共享文档（控制台）
<a name="unshare-using-console"></a>

**停止共享文档**

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

1. 在导航窗格中，选择**文档**。

1. 在文档列表中，选择要停止共享的文档，然后选择**详细信息**。在**权限**部分中，确认自己是文档所有者。只有文档所有者才可停止共享文档。

1. 选择**编辑**。

1. 选择 **X** 以删除不应再具有此命令的访问权限的 AWS 账户 ID，然后选择**保存**。

### 停止共享文档（命令行）
<a name="unshare-using-cli"></a>

在本地计算机上打开 AWS CLI 或 AWS Tools for Windows PowerShell，然后运行以下命令停止共享命令。

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

```
aws ssm modify-document-permission \
    --name document name \
    --permission-type Share \
    --account-ids-to-remove 'AWS 账户 ID'
```

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

```
aws ssm modify-document-permission ^
    --name document name ^
    --permission-type Share ^
    --account-ids-to-remove "AWS 账户 ID"
```

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

```
Edit-SSMDocumentPermission `
    -Name document name `
    -PermissionType Share `
    –AccountIdsToRemove AWS 账户 ID
```

------

## 使用共享 SSM 文档
<a name="using-shared-documents"></a>

共享 AWS Systems Manager (SSM) 文档时，系统将生成一个 Amazon Resource Name (ARN) 并将其分配给命令。如果您从 Systems Manager 控制台选择并运行某个共享文档，则不会看到此 ARN。但如果您要使用 Systems Manager 控制台以外的方法运行共享 SSM 文档，则必须在 `DocumentName` 请求参数中指定文档的完整 ARN。当您运行列出文档的命令时，将为您显示 SSM 文档的完整 ARN。

**注意**  
您无需为 AWS 公有文档（以 `AWS-*` 开头的文档）或您拥有的文档指定 ARN。

### 使用共享 SSM 文档（命令行）
<a name="using-shared-documents-cli"></a>

 **列出所有公有 SSM 文档** 

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

```
aws ssm list-documents \
    --filters Key=Owner,Values=Public
```

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

```
aws ssm list-documents ^
    --filters Key=Owner,Values=Public
```

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

```
$filter = New-Object Amazon.SimpleSystemsManagement.Model.DocumentKeyValuesFilter
$filter.Key = "Owner"
$filter.Values = "Public"

Get-SSMDocumentList `
    -Filters @($filter)
```

------

 **列出已与您共享的私有 SSM 文档** 

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

```
aws ssm list-documents \
    --filters Key=Owner,Values=Private
```

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

```
aws ssm list-documents ^
    --filters Key=Owner,Values=Private
```

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

```
$filter = New-Object Amazon.SimpleSystemsManagement.Model.DocumentKeyValuesFilter
$filter.Key = "Owner"
$filter.Values = "Private"

Get-SSMDocumentList `
    -Filters @($filter)
```

------

 **列出可供您使用的所有 SSM 文档** 

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

```
aws ssm list-documents
```

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

```
aws ssm list-documents
```

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

```
Get-SSMDocumentList
```

------

 **获取有关已与您共享的 SSM 文档的信息** 

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

```
aws ssm describe-document \
    --name arn:aws:ssm:us-east-2:12345678912:document/documentName
```

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

```
aws ssm describe-document ^
    --name arn:aws:ssm:us-east-2:12345678912:document/documentName
```

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

```
Get-SSMDocumentDescription `
    –Name arn:aws:ssm:us-east-2:12345678912:document/documentName
```

------

 **运行共享的 SSM 文档** 

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

```
aws ssm send-command \
    --document-name arn:aws:ssm:us-east-2:12345678912:document/documentName \
    --instance-ids ID
```

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

```
aws ssm send-command ^
    --document-name arn:aws:ssm:us-east-2:12345678912:document/documentName ^
    --instance-ids ID
```

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

```
Send-SSMCommand `
    –DocumentName arn:aws:ssm:us-east-2:12345678912:document/documentName `
    –InstanceIds ID
```

------

# 搜索 SSM 文档
<a name="ssm-documents-searching"></a>

您可以使用自由文本搜索或基于筛选器的搜索在 AWS Systems Manager (SSM) 文档存储中搜索 SSM 文档。您还可以收藏文档，以帮助您查找常用 SSM 文档。以下部分介绍如何使用这些功能。

## 使用自由文本搜索
<a name="ssm-documents-searching-free-text"></a>

Systems Manager **文档**页面上的搜索框支持自由文本搜索。自由文本搜索会将您输入的一个或多个搜索词与每个 SSM 文档中的文档名称进行比较。如果输入单个搜索词，例如 **ansible**，然后 Systems Manager 返回发现此术语的所有 SSM 文档。如果输入多个搜索词，Systems Manager 将使用 `OR` 网页。例如，如果指定 **ansible** 和 **linux**，然后搜索将返回名称中包含*任一*关键字的所有文档。

如果输入自由文本搜索词并选择搜索选项（例如**平台类型**），则搜索将使用 `AND` 语句，并返回所有名称中包含关键字和指定平台类型的文档。

**注意**  
请注意以下有关自由文本搜索的详细信息。  
搜索*不*区分大小写。
搜索词至少需要三个字符，且最多包含 20 个字符。
自由文本搜索最多可接受五个搜索词。
如果在搜索词之间输入空格，系统会在搜索时包含空格。
您可以将自由文本搜索与其他搜索选项，如：**文档类型**或者**平台类型**结合使用。
**文档名称前缀**过滤器和自由文本搜索不能一起使用，它们是相互排斥的。

**搜索 SSM 文档**

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

1. 在导航窗格中，选择**文档**。

1. 在搜索框中输入搜索词，然后按输入。

### 使用 AWS CLI 执行自由文本文档搜索
<a name="ssm-documents-searching-free-text-cli"></a>

**使用 CLI 执行自由文本文档搜索**

1. 安装并配置 AWS Command Line Interface（AWS CLI）（如果尚未执行该操作）。

   有关信息，请参阅[安装或更新 AWS CLI 的最新版本](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

1. 要使用单个术语执行自由文本文档搜索，请运行以下命令。在此命令中，用自己的信息替换*搜索术语*。

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="search_term"
   ```

   以下为示例。

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="aws-asg" --region us-east-2
   ```

   要使用多个术语进行搜索，可创建 `AND` 语句，运行以下命令。在此命令中，用自己的信息替换*搜索术语 1* 和*搜索术语 2*。

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="search_term_1","search_term_2","search_term_3" --region us-east-2
   ```

   以下为示例。

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="aws-asg","aws-ec2","restart" --region us-east-2
   ```

## 使用筛选条件
<a name="ssm-documents-searching-filters"></a>

Systems Manager **文档**页面会在您选择搜索框时自动显示以下筛选条件。
+ 文档名称前缀
+ 平台类型
+ 文档类型
+ 标签键

![\[“SSM 文档”页面上的筛选选项。\]](http://docs.aws.amazon.com/zh_cn/systems-manager/latest/userguide/images/ssm-documents-filters-1.png)


您可以使用单个筛选条件搜索 SSM 文档。如果要返回一组更具体的 SSM 文档，可以应用多个筛选条件。下面是一个搜索示例，使用**平台类型**和**文档名称前缀**筛选条件。

![\[在 “SSM 文档” 页面上应用多个筛选器选项。\]](http://docs.aws.amazon.com/zh_cn/systems-manager/latest/userguide/images/ssm-documents-filters-2.png)


如果应用多个筛选条件，Systems Manager 会根据您选择的筛选条件创建不同的搜索语句：
+ 如果您多次应用*相同*的筛选条件，例如**文档名称前缀**，然后 Systems Manager 将使用 `OR` 语句进行搜索。例如，如果您指定一个**文档名称前缀**=**AWS** 和第二个筛选条件**文档名称前缀**=**Lambda**，然后搜索将返回带有前缀 “`AWS`” 的所有文档以及带有前缀 “`Lambda`” 的所有文档。
+ 如果您应用*其他*筛选条件，例如 **Document name prefix**（文档名称前缀）和 **Platform types**（平台类型），则 Systems Manager 将使用 `AND` 语句进行搜索。例如，如果指定 **Document name prefix**（文档名称前缀）=**AWS** 筛选条件和 **Platform types**（平台类型）=**Linux** 筛选条件，则搜索会返回特定于 Linux 平台的带有前缀“`AWS`”的所有文档。

**注意**  
使用筛选条件区分大小写。

## 将文档添加到您的收藏夹
<a name="favorite-documents"></a>

为帮助您查找常用 SSM 文档，可将文档添加到您的收藏夹。每种文档类型、每种 AWS 账户 和 AWS 区域 最多可以收藏 20 份文档。您可以从文档 AWS 管理控制台 中选择、修改和查看您的收藏夹。以下过程介绍如何选择、修改和查看您的收藏夹。

**收藏 SSM 文档**

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

1. 在导航窗格中，选择**文档**。

1. 选择您要收藏的文档名称旁边的星形图标。

**从您的收藏夹中移除 SSM 文档**

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

1. 在导航窗格中，选择**文档**。

1. 取消选择要从您的收藏中移除的文档名称旁边的星形图标。

**从文档 AWS 管理控制台 中查看您的收藏夹**

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

1. 在导航窗格中，选择**文档**。

1. 选择**收藏夹**选项卡。