View a markdown version of this page

共用 SSM 文件 - AWS Systems Manager

• 2026 年 4 月 30 日之後將不再提供 AWS Systems Manager CloudWatch Dashboard。客戶可以繼續使用 Amazon CloudWatch 主控台來檢視、建立和管理其 Amazon CloudWatch 儀表板,就像現在一樣。如需詳細資訊,請參閱 Amazon CloudWatch Dashboard 文件。

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

共用 SSM 文件

您可以透過 AWS 區域 兩種方式,以相同的方式與其他帳戶共用 AWS Systems Manager (SSM) 文件。對於新的文件共用,建議使用 AWS Resource Access Manager (AWS RAM)。使用 AWS RAM,您可以與 AWS Organizations 中的整個組織或組織單位 (OU) 或個人共用文件 AWS 帳戶。您也可以從 RAM AWS 主控台管理所有共用。如需詳細資訊,請參閱使用 RAM AWS 共用 SSM 文件。

您也可以使用帳戶許可、原始共用機制來共用文件。透過帳戶許可,您可以直接修改文件許可,以私下與 AWS 帳戶 IDs共用文件,或公開與所有人共用文件。帳戶許可共用仍受支援。如需詳細資訊,請參閱使用帳戶許可共用 SSM 文件。

如果您已使用帳戶許可共用文件,您可以將這些共用遷移至 AWS RAM。如需詳細資訊,請參閱將現有的共用文件遷移至 AWS RAM。

您無法同時公開和私下共用文件。您也無法在相同文件中同時使用 AWS RAM 共用和帳戶許可 (ModifyDocumentPermission) 共用。

警告

只能使用受信任來源的共用 SSM 文件。當您使用任何共用文件,請在使用文件之前仔細檢視文件的內容,讓您了解文件將會如何改變您執行個體的組態。如需共用文件的最佳實務詳細資訊,請參閱 共用 SSM 文件的最佳實務。

限制

當您開始使用 SSM 文件時,請注意以下限制。

  • 只有文件擁有者可以分享文件。

  • 文件只能與相同 中的其他帳戶共用 AWS 區域 。不支援跨區域共用。

重要

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

共用 SSM 文件的最佳實務

共享或使用共用文件之前,請檢閱下列指導方針。

使用 AWS RAM 共用文件 (建議)

對於新的文件共用,我們建議您使用 AWS Resource Access Manager (AWS RAM) 而非 ModifyDocumentPermission API 操作。當您透過 AWS RAM 共用時,您可以與 AWS Organizations 中的整個組織或組織單位 (OU) 共用文件,而不是列出 AWS 帳戶 IDs。您也可以使用以資源為基礎的政策來管理存取權,並在 RAM AWS 主控台的單一位置檢視和稽核所有共用。如需這些步驟,請參閱 使用 RAM AWS 共用 SSM 文件。ModifyDocumentPermission 仍然支援您使用 與 AWS 帳戶 IDs共用的文件。若要將您已共用的文件移至 AWS RAM,請參閱 將現有的共用文件遷移至 AWS RAM。

移除敏感的資訊

請仔細檢閱您的 AWS Systems Manager (SSM) 文件,並移除任何敏感資訊。例如,確認文件不包含您的 AWS 登入資料。如果您與特定個人共享文件,這些使用者可以檢視文件中的資訊。如果您將文件設定為公開,任何使用者可以檢視文件中的資訊。

封鎖文件的公有共用

檢閱帳戶中所有公開共用的 SSM 文件,並確認是否要繼續共用它們。若要停止公開共用文件,必須依照本主題的修改共用 SSM 文件的許可章節所述修改文件許可設定。開啟封鎖公開共用設定不會影響目前正在公開共用的任何文件。除非您的使用案例需要公開共用文件,否則建議在 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 文件上可執行哪些動作。您可以建立嚴格的政策,讓使用者只能使用特定的文件。如需詳細資訊,請參閱客戶管理政策範例。

請小心使用共用的 SSM 文件

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

使用文件雜湊來傳送命令

當您共用文件,系統會建立一個 SHA-256 雜湊並將其指派給文件。系統還會儲存文件內容的快照。當您使用共用文件傳送命令時,您可以在命令中指定雜湊,以確保下列條件成立:

  • 您正在執行正確的 Systems Manager 文件的命令

  • 自從與您共用文件後,文件內容尚未變更。

如果雜湊不符合指定的文件或者如果共用文件的內容被更改過,命令會傳回 InvalidDocument 的錯誤例外訊息。雜湊無法從外部位置驗證文件的內容。

使用插補參數來改善安全性

對於 SSM 文件中的 String 類型參數,請使用參數和 interpolationType": "ENV_VAR 值,透過將參數輸入視為字串常值,而非潛在可執行命令,來提高安全性以防止命令注入攻擊。在此情況下,Agent 會使用參數的值,建立名為 SSM_parameter-name 的環境變數。建議您更新所有包含 String 類型參數的現有 SSM 文件,以包含 "interpolationType": "ENV_VAR"。如需詳細資訊,請參閱撰寫 SSM 文件內容。

封鎖 SSM 文件的公有共用

開始之前,請檢閱 AWS 帳戶 中所有公開共用的 SSM 文件,並確認是否要繼續共用它們。若要停止公開共用 SSM 文件,必須依照本主題的修改共用 SSM 文件的許可章節所述修改文件許可設定。開啟封鎖公開共用設定不會影響目前正在公開共用的任何 SSM 文件。啟用封鎖公開共用設定後,您將無法公開共用任何其他 SSM 文件。

除非您的使用案例需要公開共用文件,否則建議開啟 SSM 文件的封鎖公開共用設定。開啟此設定可避免 SSM 文件遭到不必要的存取。封鎖公開共用設定是帳戶層級設定,每個設定可能有所不同 AWS 區域。完成下列任務,為目前未共用的 SSM 文件封鎖公開共用。

封鎖公有共用 (主控台)

若要封鎖 SSM 文件的公有共用
  1. 在 https://https://console.aws.amazon.com/systems-manager/ 開啟 AWS Systems Manager 主控台。

  2. 在導覽窗格中,選擇 Documents (文件)。

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

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

封鎖公有共用 (命令列)

在本機 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 的公有共用

您可以建立 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" } ] }

使用 RAM AWS 共用 SSM 文件

AWS 資源存取管理員 (AWS RAM) 是建議共用 AWS Systems Manager (SSM) 文件的方式。使用 AWS RAM,您可以建立授予文件存取權的資源共用,並從 AWS RAM 主控台管理所有共用。您可以與下列三種類型的委託人共用 SSM 文件:

  • AWS Organizations 中的整個組織。

  • Organizations 中的 AWS 組織單位 (OU)。

  • 個人 AWS 帳戶。

您只能與相同 中的帳戶共用文件 AWS 區域,而且只有文件擁有者可以共用文件。如需使用 AWS RAM 共用的詳細資訊,請參閱 AWS Resource Access Manager 使用者指南中的 AWS RAM 入門。

重要

當您使用 RAM AWS 共用 SSM 文件時,您可以共用文件的所有版本,而不只是預設版本。

注意

AWS RAM 僅支援私有共用。若要公開共用文件,請使用帳戶許可共用 SSM 文件改用 中的程序。

注意

當您與組織外部 AWS 帳戶 的 共用文件時,取用者必須先接受 AWS RAM 中的資源共用邀請,才能存取文件。當您在已啟用 RAM AWS 共用的組織中共用時,不需要邀請,且 AWS RAM 會自動授予存取權。

AWS 當您透過 AWS RAM 共用 SSM 文件時,會套用 RAM 服務配額。如需詳細資訊,請參閱 AWS Resource Access Manager 使用者指南中的 AWS RAM 服務配額。

若要管理現有的共用 (例如,更新主體或停止共用您透過 RAM AWS 共用的文件),請參閱 AWS Resource Access Manager 使用者指南中的使用共用 AWS 資源。

使用 RAM AWS 共用文件 (主控台)

使用 RAM AWS 共用文件
  1. 在 https://https://console.aws.amazon.com/ram/ 開啟 AWS RAM 主控台。

  2. 在導覽窗格中,選擇資源共用,然後選擇建立資源共用。

  3. 在名稱中,輸入資源共用的名稱。

  4. 在資源下,選擇資源類型 SSM 文件,然後選擇您要共用的文件。

  5. (選用) 在受管許可下,檢閱 RAM AWS 套用至共用文件的受管許可。

  6. 選擇下一步。在主體下,新增您要共用的組織、OUs 或 AWS 帳戶 。若要與組織或 OU 共用,您必須在 Organizations 中 AWS 啟用共用。

  7. 選擇下一步,檢閱您的選擇,然後選擇建立資源共享。

使用 RAM 共用文件 AWS (命令列)

在本機 AWS Tools for Windows PowerShell 電腦上開啟 AWS Command Line Interface (AWS CLI) 或 ,並執行下列命令,透過建立 AWS RAM 資源共用來共用文件。針對 --principals 參數,指定組織 ARN、OU ARN 或 AWS 帳戶 ID。

Linux & macOS
aws ram create-resource-share \ --name MyDocumentShare \ --resource-arns arn:aws:ssm:region:account-id:document/document-name \ --principals principal
Windows
aws ram create-resource-share ^ --name MyDocumentShare ^ --resource-arns arn:aws:ssm:region:account-id:document/document-name ^ --principals principal
注意

建立共享後, AWS RAM 可能需要幾分鐘的時間來傳播變更,然後取用帳戶才能看到它。

將現有的共用文件遷移至 AWS RAM

如果您目前使用帳戶許可 ( ModifyDocumentPermission API 操作) 共用文件,您可以透過執行 AWS-MigrateSSMDocumentSharingToRAM Runbook 將其遷移至 AWS RAM 資源共用。此 AWS擁有的 AWS Systems Manager Automation Runbook 會將文件從帳戶許可共用遷移至 AWS RAM 資源共用,同時保留文件的現有取用者。

注意

執行 AWS-MigrateSSMDocumentSharingToRAM Runbook 使用 AWS Systems Manager Automation,會產生費用。如需詳細資訊,請參閱 AWS Systems Manager 定價。

注意

您無法遷移公開共用的文件,因為 AWS RAM 僅支援私有共用。如果您指定公開共用的文件,則 Runbook 失敗。如果您遷移帳戶中的所有文件, Runbook 會略過公開共用的文件。若要遷移公開共用的文件,請先停止公開共用,然後與您想要的帳戶、組織單位 (OUs) 或組織共用。

重要

遷移文件之後,您可以透過 RAM AWS 管理該文件的共用。ModifyDocumentPermission 和 DescribeDocumentPermission API 操作會傳回已遷移文件的 4xx 錯誤。如果遷移失敗或取消, Runbook 會自動轉返變更。

從其許可檢視遷移文件 (主控台)
  1. 開啟 AWS Systems Manager 主控台,然後在導覽窗格中選擇文件。

  2. 選擇您要遷移的文件。

  3. 選擇詳細資訊索引標籤。

  4. 在許可區段中,選擇遷移至 RAM。Systems Manager 會開啟遷移至 RAM 頁面,這可協助您開始遷移。

  5. 針對要遷移的文件,選取要遷移的文件。選取個別文件,或選擇所有文件,以遷移帳戶中使用帳戶許可共用的每個文件。

  6. 針對 AutomationAssumeRole,選擇 Systems Manager Automation 執行遷移所擔任的 IAM 角色。

  7. (選用) 對於組織單位,新增要與其共用文件的組織 ID 或組織單位 (OU) ID。

  8. 選擇開始遷移。

如需 參數的完整清單、AutomationAssumeRole角色所需的 IAM 許可,以及執行 Runbook step-by-step說明,請參閱 AWS Systems Manager Automation Runbook 參考中的 AWS-MigrateSSMDocumentSharingToRAM。

使用帳戶許可共用 SSM 文件

您可以修改文件許可以授予對 specificID (私有共用) 或所有人 AWS Systems Manager (公開共用) 的存取權,藉此共用 (SSM) 文件。 AWS 帳戶 IDs 您可以從 Systems Manager 主控台共用文件,或以程式設計方式使用 AWS Command Line Interface (AWS CLI) AWS Tools for Windows PowerShell或 AWS SDK 呼叫 ModifyDocumentPermission API 操作。當您從主控台共用文件時,您只能共用文件的預設版本。在共用文件之前,請取得您要共用的帳戶 AWS 帳戶 IDs。當您共用文件時,請指定這些帳戶 IDs。

注意

對於新的文件共用,我們建議您改用 AWS Resource Access Manager (AWS RAM)。使用 AWS RAM,您可以與整個組織或 OU 共用,並在同一個位置管理所有共用。如需詳細資訊,請參閱使用 RAM AWS 共用 SSM 文件。

限制

當您使用帳戶許可共享文件時,請注意下列限制。

  • 您必須停止共用文件,才能刪除文件。如需詳細資訊,請參閱修改共用 SSM 文件的許可。

  • 您可以共用最多 1,000 個文件 AWS 帳戶。您可以在 支援 中心請求提高此限制。對於 Limit type (限制類型),選擇 EC2 Systems Manager 並說明請求的原因。

  • 您最多可以公開共用五個 SSM 文件。您可以在 支援 中心請求提高此限制。對於 Limit type (限制類型),選擇 EC2 Systems Manager 並說明請求的原因。

如需有關 Systems Manager 服務配額的詳細資訊,請參閱 AWS Systems Manager Service Quotas。

分享文件 (主控台)

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

  2. 在導覽窗格中,選擇 Documents (文件)。

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

  4. 選擇編輯。

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

分享文件 (命令列)

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

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

    在下列命令中,用您自己的資訊取代區域。如需支援的 region 值的清單,請參閱《Amazon Web Services 一般參考》中 Systems Manager 服務端點一節的區域資料欄。

    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
  2. 使用下列的指令來查看文件的許可權限:

    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
  3. 使用下列的指令來修改文件的許可權限並共享文件。您必須文件的擁有者才能夠編輯許可權限。對於與特定 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
  4. 使用下列命令來公開共享的文件:

    注意

    如果您與 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 文件的許可

如果您共用命令,使用者可以檢視和使用該命令,直到您移除對 AWS Systems Manager (SSM) 文件的存取權或刪除 SSM 文件為止。不過,您無法刪除正在共享的文件。您必須先停止共享,然後才能將其刪除止。

注意

本節適用於您使用帳戶許可共用的文件。若要管理您透過 RAM AWS 共用的文件,請參閱 使用 RAM AWS 共用 SSM 文件。

停止分享文件 (主控台)

停止共享文件
  1. 在 https://https://console.aws.amazon.com/systems-manager/ 開啟 AWS Systems Manager 主控台。

  2. 在導覽窗格中,選擇 Documents (文件)。

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

  4. 選擇編輯。

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

停止分享文件 (命令列)

在本機 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 文件

當您共用 AWS Systems Manager (SSM) 文件時,系統會產生 Amazon Resource Name (ARN),並將其指派給 命令。如果您從 Systems Manager 主控台選取和執行共用文件,則不會看到 ARN。但是,如果您想要使用 Systems Manager 主控台以外的其他方法執行共用的 SSM 文件,則必須為 DocumentName 請求參數指定文件的完整 ARN。當您執行命令列出文件時,系統會顯示 SSM 文件的完整 ARN。

注意

您不需要為 AWS 公有文件 (以 開頭的文件AWS-*) 或您擁有的文件指定 ARNs。

使用共用的 SSM 文件 (命令列)

列出所有公有 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