

• 2026 年 4 月 30 日之後將不再提供 AWS Systems Manager CloudWatch Dashboard。客戶可以繼續使用 Amazon CloudWatch 主控台來檢視、建立和管理其 Amazon CloudWatch 儀表板，就像現在一樣。如需詳細資訊，請參閱 [Amazon CloudWatch Dashboard 文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 共用 SSM 文件
<a name="documents-ssm-sharing"></a>

您可以與相同 中的帳戶私下或公開共用 AWS Systems Manager (SSM) 文件 AWS 區域。若要私下共用文件，您需要修改文件許可，並根據特定人員的 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)請求提高此限制。對於 **Limit type** (限制類型)，選擇 *EC2 Systems Manager* 並說明請求的原因。
+ 您最多可以公開共用五個 SSM 文件。您可以在 [支援 中心](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase)請求提高此限制。對於 **Limit type** (限制類型)，選擇 *EC2 Systems Manager* 並說明請求的原因。
+ 文件只能與相同 中的其他帳戶共用 AWS 區域 。不支援跨區域共用。

**重要**  
在 Systems Manager 中，*Amazon 擁有的* SSM 文件是由 Amazon Web Services 本身建立和管理的文件。*Amazon 擁有的*文件的文件名中包含如 `AWS-*` 的字首。文件的擁有者被視為 Amazon，而不是其中的特定使用者帳戶 AWS。這些文件公開供所有人使用。

如需有關 Systems Manager 服務配額的詳細資訊，請參閱 [AWS Systems Manager Service 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) 政策。IAM 政策決定使用者可以在 Amazon Elastic Compute Cloud (Amazon EC2) 主控台或使用 `ListDocuments` AWS Command Line Interface (AWS CLI) 或 呼叫 來查看哪些 SSM 文件 AWS Tools for Windows PowerShell。此政策也限制使用者在 SSM 文件上可執行哪些動作。您可以建立嚴格的政策，讓使用者只能使用特定的文件。如需詳細資訊，請參閱[客戶管理政策範例](security_iam_id-based-policy-examples.md#customer-managed-policies)。

**請小心使用共用的 SSM 文件**  
檢閱每個與您共享的文件內容，特別是公有文件。了解那些將在您的執行個體上執行的指令。文件執行後可能會有意或無意地產生負面影響。如果文件參考外部網路、先檢閱外部來源，然後再使用文件。

**使用文件雜湊來傳送命令**  
當您共用文件，系統會建立一個 SHA-256 雜湊並將其指派給文件。系統還會儲存文件內容的快照。當您使用共用文件來傳送命令，您可以在您的命令中指定雜湊以確保以下條件為真：  
+ 您正在執行正確的 Systems Manager 文件的命令
+ 自從與您共用文件後，文件內容尚未變更。
如果雜湊不符合指定的文件或者如果共用文件的內容被更改過，命令會傳回 `InvalidDocument` 的錯誤例外訊息。雜湊無法從外部位置驗證文件的內容。

**使用插補參數來改善安全性**  
對於 SSM 文件中的 `String` 類型參數，請使用參數和 `interpolationType": "ENV_VAR` 值，透過將參數輸入視為字串常值，而非潛在可執行命令，來提高安全性以防止命令注入攻擊。在此情況下，Agent 會使用參數的值，建立名為 `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：//[https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/) 開啟 AWS Systems Manager 主控台。

1. 在導覽窗格中，選擇 **Documents (文件)**。

1. 選擇 **Preferences** (偏好設定)，然後在 **Block public sharing** (封鎖公有共用) 區段中選擇 **Edit** (編輯)。

1. 選取 **Block public sharing** (封鎖公有共用) 核取方塊，再選擇 **Save** (儲存)。

### 封鎖公有共用 (命令列)
<a name="block-public-access-cli"></a>

在本機 AWS Tools for Windows PowerShell 電腦上開啟 AWS Command Line Interface (AWS CLI) 或 ，並執行下列命令來封鎖 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 政策範例。若要使用此範例，您必須用您自己的帳戶 ID 取代範例 Amazon Web Services 帳戶 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 CLI) 或 AWS SDK 呼叫 `ModifyDocumentPermission` API AWS Command Line Interface 操作 AWS Tools for Windows PowerShell，以程式設計方式共用 SSM 文件。在共用文件之前，先取得您要與其共用的人員的 AWS 帳戶 ID。當您要共享文件時，您可以指定這些帳戶 ID。

### 分享文件 (主控台)
<a name="share-using-console"></a>

1. 在 https：//[https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/) 開啟 AWS Systems Manager 主控台。

1. 在導覽窗格中，選擇 **Documents (文件)**。

1. 在文件清單中，選擇要共享的文件，然後選擇 **View details (查看詳細資訊)**。在 **Permissions** (許可) 索引標籤中，驗證您是文件的擁有者。只有文件擁有者可以分享文件。

1. 選擇**編輯**。

1. 若要公開共享命令，選擇 **Public (公有)**，然後選擇 **Save (儲存)**。若要私下共用命令，選擇 **Private** (私有)，輸入 AWS 帳戶 ID，選擇 **Add permission** (新增許可)，然後選擇 **Save** (儲存)。

### 分享文件 (命令列)
<a name="share-using-cli"></a>

下列程序需要您 AWS 區域 為命令列工作階段指定 。

1. 在本機 AWS Tools for Windows PowerShell 電腦上開啟 AWS CLI 或 ，並執行下列命令來指定您的登入資料。

   在下列命令中，用您自己的資訊取代{{區域}}。如需支援的 {{region}} 值的清單，請參閱《Amazon Web Services 一般參考》**中 [Systems Manager 服務端點](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_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：//[https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/) 開啟 AWS Systems Manager 主控台。

1. 在導覽窗格中，選擇 **Documents (文件)**。

1. 在文件清單中，選擇要停止共用的文件，然後選擇**詳細資訊**。在**許可**區段中，確認您是文件擁有者。只有文件擁有者可以停止共享文件。

1. 選擇**編輯**。

1. 選擇 **X** 以刪除不應再存取命令的 AWS 帳戶 ID，然後選擇**儲存**。

### 停止分享文件 (命令列)
<a name="unshare-using-cli"></a>

在本機 AWS Tools for Windows PowerShell 電腦上開啟 AWS CLI 或 ，並執行下列命令來停止共用命令。

------
#### [ 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-*`) 或您擁有的文件指定 ARNs。

### 使用共用的 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}}
```

------