

• 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)。

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

# 步驟 4：進行工作階段偏好設定
<a name="session-manager-getting-started-configure-preferences"></a>

已在 AWS Identity and Access Management (IAM) 政策中授予管理許可的使用者可以設定工作階段偏好設定，包括下列項目：
+ 為 Linux 受管節點開啟執行身分支援。這可讓您使用指定作業系統使用者的登入資料來啟動工作階段，而不是可在受管節點上建立的系統產生`ssm-user`帳戶的 AWS Systems Manager Session Manager登入資料。
+ 設定 Session Manager 以使用 AWS KMS key 加密，為用戶端機器與受管節點之間傳輸的資料提供額外的保護。
+ 設定 Session Manager 來建立工作階段歷史記錄日誌，並傳送到 Amazon Simple Storage Service (Amazon S3) 儲存貯體或 Amazon CloudWatch Logs 日誌群組。之後，就可以使用儲存的資料來報告與受管節點建立的工作階段連線，以及在工作階段期間對這些節點執行的命令。
+ 設定工作階段逾時。您可以使用此設定來指定在閒置一段時間後結束工作階段的時間。
+ 設定 Session Manager 以使用可設定的 shell 描述檔。這些可自訂的描述檔可讓您在工作階段內定義偏好設定，例如 shell 偏好設定、環境變數、工作目錄，以及在工作階段啟動時執行的多個命令。

如需設定 Session Manager 偏好設定所需的許可的詳細資訊，請參閱 [授與或拒絕使用者許可來更新Session Manager偏好設定](preference-setting-permissions.md)。

**Topics**
+ [授與或拒絕使用者許可來更新Session Manager偏好設定](preference-setting-permissions.md)
+ [指定閒置工作階段逾時值](session-preferences-timeout.md)
+ [指定工作階段持續時間上限](session-preferences-max-timeout.md)
+ [允許可設定的 Shell 設定檔](session-preferences-shell-config.md)
+ [為 Linux 和 macOS 受管節點開啟執行身分支援](session-preferences-run-as.md)
+ [開啟工作階段資料的 KMS 金鑰加密 (主控台)](session-preferences-enable-encryption.md)
+ [建立 Session Manager 偏好設定文件 (命令列)](getting-started-create-preferences-cli.md)
+ [更新 Session Manager 偏好設定 (命令列)](getting-started-configure-preferences-cli.md)

如需如何使用 Systems Manager 主控台設定工作階段資料記錄選項的詳細資訊，請參閱下列主題。
+  [使用 Amazon Simple Storage Service (Amazon S3) (主控台) 記錄工作階段資料](session-manager-logging-s3.md) 
+  [使用 Amazon CloudWatch Logs (主控台) 串流工作階段資料。](session-manager-logging-cwl-streaming.md) 
+  [使用 Amazon CloudWatch Logs (主控台) 記錄工作階段資料。](session-manager-logging-cloudwatch-logs.md) 

# 授與或拒絕使用者許可來更新Session Manager偏好設定
<a name="preference-setting-permissions"></a>

帳戶偏好設定會儲存為每個 的 AWS Systems Manager (SSM) 文件 AWS 區域。在使用者可以更新帳戶裡工作階段偏好之前，他們必須授與必要的權限來存取這些偏好設定所存放的 SSM 文件。這些許可是透過 AWS Identity and Access Management (IAM) 政策授予。

**管理員政策允許建立和更新偏好設定**  
管理員可以有以下政策在任何時候建立和更新偏好設定。以下政策允許許可存取和更新 `SSM-SessionManagerRunShell` 文件在 us-east-2 123456789012 帳戶。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ssm:CreateDocument",
                "ssm:GetDocument",
                "ssm:UpdateDocument",
                "ssm:DeleteDocument"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        }
    ]
}
```

------

**使用者政策防止更新偏好設定**  
使用以下政策防止最終使用者更新或覆寫在您的帳戶中的任何 Session Manager 偏好設定。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ssm:CreateDocument",
                "ssm:GetDocument",
                "ssm:UpdateDocument",
                "ssm:DeleteDocument"
            ],
            "Effect": "Deny",
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        }
    ]
}
```

------

# 指定閒置工作階段逾時值
<a name="session-preferences-timeout"></a>

Session Manager是 中的工具 AWS Systems Manager，可讓您指定在系統結束工作階段之前，允許使用者處於非作用中狀態的時間量。根據預設，工作階段在閒置 20 分鐘後逾時。您可以修改此設定，以指定工作階段在閒置 1 到 60 分鐘之間逾時。一些專業的運算安全機構建議將閒置工作階段逾時設定為最長 15 分鐘。

閒置工作階段逾時計時器會在 Session Manager接收用戶端輸入時重設。這些輸入包括但不限於：
+ 終端機中的鍵盤輸入
+ 終端機或瀏覽器視窗調整事件大小
+ 工作階段重新連線 (ResumeSession)，可能是因為網路中斷、瀏覽器索引標籤管理或 WebSocket 中斷連線而發生

由於這些事件會重設閒置計時器，即使沒有直接終端機命令，工作階段仍會維持作用中的時間超過設定的逾時期間。

如果您的安全需求要求嚴格工作階段持續時間限制，無論活動為何，除了閒置逾時之外，請使用*工作階段持續時間上限*設定。如需詳細資訊，請參閱[指定工作階段持續時間上限](session-preferences-max-timeout.md)。

**若要允許閒置工作階段逾時 (主控台)**

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

1. 在導覽窗格中，選擇 **Session Manager**。

1. 選擇 **Preferences (偏好)** 標籤，然後選擇 **Edit (編輯)**。

1. 在 **Idle session timeout** (閒置工作階段逾時) 下的 **minutes** (分鐘) 欄位中，指定在工作階段結束之前允許使用者處於非作用中狀態的時間長度。

1. 選擇**儲存**。

# 指定工作階段持續時間上限
<a name="session-preferences-max-timeout"></a>

Session Manager是 中的工具 AWS Systems Manager，可讓您在工作階段結束之前指定工作階段的最長持續時間。依預設，工作階段沒有最長持續時間。您指定的工作階段持續時間上限值必須介於 1 到 1,440 分鐘之間。

**指定工作階段持續時間上限 (主控台)**

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

1. 在導覽窗格中，選擇 **Session Manager**。

1. 選擇 **Preferences (偏好)** 標籤，然後選擇 **Edit (編輯)**。

1. 選取 **Enable maximum session duration** (啟用工作階段持續時間上限) 旁邊的核取方塊。

1. 在 **Maximum session duration** (工作階段持續時間上限) 下的 **minutes** (分鐘) 欄位中，指定工作階段結束前的最長持續時間。

1. 選擇**儲存**。

# 允許可設定的 Shell 設定檔
<a name="session-preferences-shell-config"></a>

根據預設，Linux 的 EC2 執行個體上的工作階段開始使用 Bourne shell (sh)。但是，您可能偏好使用像 bash 這樣的其他 shell。透過允許可設定的 shell 描述檔，您可自訂工作階段內的偏好設定，例如 shell 偏好設定、環境變數、工作目錄，以及在工作階段啟動時執行的多個命令。

**重要**  
Systems Manager 不會檢查 shell 描述檔中的命令或指令碼，以查看在執行它們之前會對執行個體進行哪些變更。若要限制使用者修改在其 shell 描述檔中輸入的命令或指令碼的能力，建議執行下列動作：  
為您的 AWS Identity and Access Management (IAM) 使用者和角色建立自訂工作階段類型文件。然後修改這些使用者和角色的 IAM 政策，以便 `StartSession` API 操作只能使用您為它們建立的工作階段類型文件。如需相關資訊，請參閱 [建立 Session Manager 偏好設定文件 (命令列)](getting-started-create-preferences-cli.md) 及 [Session Manager的最終使用者政策快速入門](getting-started-restrict-access-quickstart.md#restrict-access-quickstart-end-user)。
修改 IAM 使用者和角色的 IAM 政策，以拒絕對您建立的工作階段類型文件資源的 `UpdateDocument` API 操作。這允許您的使用者和角色使用您為其工作階段偏好設定建立的文件，但不允許他們修改任何設定。

**若要開啟可設定的 shell 描述檔**

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

1. 在導覽窗格中，選擇 **Session Manager**。

1. 選擇 **Preferences (偏好)** 標籤，然後選擇 **Edit (編輯)**。

1. 在適用作業系統的欄位中，指定環境變數、shell 偏好設定、或者當您的工作階段啟動時要執行的命令。

1. 選擇**儲存**。

以下是可以新增到 Shell 描述檔的一些命令範例。

變更為 bash shell 並變更為 Linux 執行個體上的 /usr 目錄。

```
exec /bin/bash
cd /usr
```

在工作階段開始時輸出時間戳記和歡迎訊息。

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

```
timestamp=$(date '+%Y-%m-%dT%H:%M:%SZ')
user=$(whoami)
echo $timestamp && echo "Welcome $user"'!'
echo "You have logged in to a production instance. Note that all session activity is being logged."
```

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

```
$timestamp = (Get-Date).ToString("yyyy-MM-ddTH:mm:ssZ")
$splitName = (whoami).Split("\")
$user = $splitName[1]
Write-Host $timestamp
Write-Host "Welcome $user!"
Write-Host "You have logged in to a production instance. Note that all session activity is being logged."
```

------

在工作階段開始時檢視動態系統活動。

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

```
top
```

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

```
while ($true) { Get-Process | Sort-Object -Descending CPU | Select-Object -First 30; `
Start-Sleep -Seconds 2; cls
Write-Host "Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName"; 
Write-Host "-------  ------    -----      ----- -----   ------     -- -----------"}
```

------

# 為 Linux 和 macOS 受管節點開啟執行身分支援
<a name="session-preferences-run-as"></a>

依預設，Session Manager 會使用系統產生之 `ssm-user` 帳戶 (帳戶在受管節點上建立) 的憑證來驗證連線。在 Linux 和 macOS 機器上，帳戶新增到 `/etc/sudoers/`。如果可以選擇，您可以改為使用作業系統 (OS) 使用者帳戶的憑證，或是加入了 Active Directory 的執行個體的網域使用者來驗證工作階段。在此情況下，Session Manager 會在啟動工作階段之前，驗證您指定的作業系統帳戶是否存在於節點上或網域中。如果您嘗試使用節點上或網域中不存在的作業系統帳戶來啟動工作階段，則連線將會失敗。

**注意**  
Session Manager 不支援使用作業系統的 `root` 使用者帳戶來驗證連線。對於使用作業系統使用者帳戶驗證的工作階段，節點的作業系統層級和目錄政策 (如登入限制或系統資源使用限制) 可能不適用。

**運作方式**  
如果您為工作階段開啟執行身分支援，系統會如下檢查存取許可：

1. 啟動工作階段的使用者的 IAM 實體 (使用者或角色) 是否都已使用 `SSMSessionRunAs = os user account name` 標記？

   如果是，該受管節點上是否存在作業系統使用者名稱？ 如果有，就開始工作階段。如果沒有，則不允許工作階段開始。

   如果 IAM 實體尚*未*使用 `SSMSessionRunAs = os user account name` 標記，請繼續執行步驟 2。

1. 如果 IAM 實體尚未標記 `SSMSessionRunAs = os user account name`，是否已在 AWS 帳戶的Session Manager偏好設定中指定作業系統使用者名稱？

   如果是，該受管節點上是否存在作業系統使用者名稱？ 如果有，就開始工作階段。如果沒有，則不允許工作階段開始。

**注意**  
如果啟動執行身分支援，它會防止 Session Manager 使用受管理節點上的 `ssm-user` 帳戶啟動工作階段。這表示如果 Session Manager 無法使用指定的作業系統使用者帳戶進行連線，則不會返回使用預設方法進行連線。  
如果您在未指定作業系統帳戶或標記 IAM 實體的情況下啟用執行身分，且尚未在 Session Manager 偏好設定中指定作業系統帳戶，則工作階段連線嘗試將會失敗。

**為 Linux 和 macOS 受管節點開啟執行身分支援**

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

1. 在導覽窗格中，選擇 **Session Manager**。

1. 選擇 **Preferences (偏好)** 標籤，然後選擇 **Edit (編輯)**。

1. 選取 **為 Linux 執行個體啟用執行身分支援**旁的核取方塊。

1. 執行以下任意一項：
   + **選項 1**：在**作業系統使用者名稱**欄位，輸入您想要用來啟動工作階段的作業系統使用者帳戶名稱。使用此選項，所有工作階段都會由使用 AWS 帳戶 連線的 中所有使用者的相同作業系統使用者執行Session Manager。
   + **選項 2** (建議)：選擇**開啟 IAM 主控台**連結。在導覽窗格中，選擇 **Users (使用者)** 或者 **Roles (角色)**。選擇要新增標籤的實體 (使用者或角色)，然後選擇 **Tags** (標籤) 標籤。在金鑰名稱輸入 `SSMSessionRunAs`。在鍵值中輸入作業系統使用者帳戶的名稱。選擇**儲存變更**。

     使用此選項，您可以視需要為不同的 IAM 實體指定唯一的作業系統使用者。如需有關標記 IAM 實體 (使用者或角色) 的詳細資訊，請參閱 *IAM User Guide* 中的 [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)。

     下列是 範例。  
![\[指定 Session Manager 執行身分許可標籤的螢幕擷取畫面。\]](http://docs.aws.amazon.com/zh_tw/systems-manager/latest/userguide/images/ssn-run-as-tags.png)

1. 選擇**儲存**。

# 開啟工作階段資料的 KMS 金鑰加密 (主控台)
<a name="session-preferences-enable-encryption"></a>

使用 AWS Key Management Service (AWS KMS) 來建立和管理加密金鑰。透過 AWS KMS，您可以在應用程式中控制對各種 AWS 服務 和 加密的使用。您可以指定在受管節點與 中使用者的本機機器之間傳輸的工作階段資料 AWS 帳戶 會使用 KMS 金鑰加密進行加密。（這是除了預設 AWS 已提供的 TLS 1.2/1.3 加密之外。) 若要加密Session Manager工作階段資料，請使用 建立*對稱* KMS 金鑰 AWS KMS。

AWS KMS 加密適用於 `Standard_Stream`、 `InteractiveCommands`和 `NonInteractiveCommands`工作階段類型。若要使用 選項來使用在 中建立的金鑰加密工作階段資料 AWS KMS，必須在受管節點上安裝 2.3.539.0 版 AWS Systems Manager SSM Agent或更新版本。

**注意**  
您必須允許 AWS KMS 加密，才能從 AWS Systems Manager 主控台重設受管節點上的密碼。如需詳細資訊，請參閱[在受管節點上重設密碼](fleet-manager-reset-password.md#managed-instance-reset-a-password)。

您可以使用您在 中建立的金鑰 AWS 帳戶。您也可以使用在不同 AWS 帳戶中建立的金鑰。不同 中金鑰的建立者 AWS 帳戶 必須為您提供使用金鑰所需的許可。

在您啟用工作階段資料的 KMS 金鑰加密後，啟動工作階段的使用者和這些工作階段連接的受管節點必須具有該金鑰的使用許可。您提供透過 Session Manager AWS Identity and Access Management (IAM) 政策使用 KMS 金鑰的許可。如需詳細資訊，請參閱以下主題：
+ 新增您帳戶中使用者的 AWS KMS 許可：[適用於 Session Manager 的範例 IAM 政策](getting-started-restrict-access-quickstart.md)。
+ 新增您帳戶中受管節點的 AWS KMS 許可：[步驟 2：為 Session Manager 確認或新增執行個體許可](session-manager-getting-started-instance-profile.md)。

如需建立和管理 KMS 金輪的詳細資訊，請參閱 [https://docs.aws.amazon.com/kms/latest/developerguide/](https://docs.aws.amazon.com/kms/latest/developerguide/)。

如需有關使用 AWS CLI 開啟您帳戶中工作階段資料的 KMS 金鑰加密的資訊，請參閱 [建立 Session Manager 偏好設定文件 (命令列)](getting-started-create-preferences-cli.md)或 [更新 Session Manager 偏好設定 (命令列)](getting-started-configure-preferences-cli.md)。

**注意**  
使用 KMS 金輪需要付費嗎？ 如需相關資訊，請參閱 [AWS Key Management Service 定價](https://aws.amazon.com/kms/pricing/)。

**若要開啟工作階段資料的 KMS 金鑰加密 (主控台)**

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

1. 在導覽窗格中，選擇 **Session Manager**。

1. 選擇 **Preferences (偏好)** 標籤，然後選擇 **Edit (編輯)**。

1. 選取 **Enable KMS encryption** (啟用 KMS 加密) 旁邊的核取方塊。

1. 執行以下任意一項：
   + 選擇 **Select a KMS key in my current account** (在我目前的帳戶中選取 KMS 金鑰) 旁邊的按鈕，然後從清單中選取金鑰。

     -或-

     選擇 **Enter a KMS key alias or KMS key ARN (輸入 KMS 金鑰別名或 KMS 金鑰 ARN)** 旁的按鈕。為您在目前帳戶中建立的金鑰手動輸入 KMS 金鑰別名，或為另一個帳戶中的金鑰輸入其 Amazon Resource Name (ARN)。範例如下：
     + 金鑰別名：`alias/my-kms-key-alias`
     + 金鑰 ARN：`arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-12345EXAMPLE`

     -或-

     選擇 **Create new key (建立新的金鑰)** 以在您的帳戶中建立新的 KMS 金輪。在建立新的金鑰後，返回 **Preferences (偏好設定)** 標籤，然後選取要用來在您帳戶中加密工作階段資料的金鑰。

   如需共用金鑰的詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[允許外部 AWS 帳戶 存取金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-external-accounts)。

1. 選擇**儲存**。

# 建立 Session Manager 偏好設定文件 (命令列)
<a name="getting-started-create-preferences-cli"></a>

使用下列程序來建立 SSM 文件，以定義工作階段的 AWS Systems Manager Session Manager偏好設定。您可以使用該文件來設定工作階段選項，包括資料加密、工作階段持續時間和日誌記錄。例如，您可以指定在 Amazon Simple Storage Service (Amazon S3) 儲存貯體或 Amazon CloudWatch Logs 日誌群組中存放工作階段日誌資料的選項。您可以為 AWS 帳戶 和 的所有工作階段建立定義一般偏好設定的文件 AWS 區域，或為個別工作階段定義偏好設定的文件。

**注意**  
您也可以使用 Session Manager 主控台設定一般工作階段偏好設定。

用來設定 Session Manager 偏好設定的文件的 `sessionType` 必須為 `Standard_Stream`。如需有關工作階段文件的詳細資訊，請參閱 [工作階段文件結構描述](session-manager-schema.md)。

如需使用命令列來更新現有 Session Manager 偏好設定的資訊，請參閱 [更新 Session Manager 偏好設定 (命令列)](getting-started-configure-preferences-cli.md)。

如需如何使用 建立工作階段偏好設定的範例 CloudFormation，請參閱*AWS CloudFormation 《 使用者指南*》中的[為Session Manager偏好設定建立 Systems Manager 文件](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html#aws-resource-ssm-document--examples)。

**注意**  
此程序說明如何建立文件，以在 AWS 帳戶 層級設定Session Manager偏好設定。若要建立將用於設定工作階段層級偏好設定的文件，請為檔案名稱相關指令輸入指定初 `SSM-SessionManagerRunShell` 之外的值。  
若要使用文件來設定從 AWS Command Line Interface (AWS CLI) 啟動之工作階段的偏好設定，請提供文件名稱作為 `--document-name` 參數值。若要為從 Session Manager 主控台啟動的工作階段設定偏好設定，您可以輸入文件名稱或從清單中選取文件的名稱。

**建立 Session Manager 偏好設定 (命令列)**

1. 在您的本機電腦建立 JSON 檔案的名稱，例如 `SessionManagerRunShell.json`，然後貼上以下內容。

   ```
   {
       "schemaVersion": "1.0",
       "description": "Document to hold regional settings for Session Manager",
       "sessionType": "Standard_Stream",
       "inputs": {
           "s3BucketName": "",
           "s3KeyPrefix": "",
           "s3EncryptionEnabled": true,
           "cloudWatchLogGroupName": "",
           "cloudWatchEncryptionEnabled": true,
           "cloudWatchStreamingEnabled": false,
           "kmsKeyId": "",
           "runAsEnabled": false,
           "runAsDefaultUser": "",
           "idleSessionTimeout": "",
           "maxSessionDuration": "",
           "shellProfile": {
               "windows": "date",
               "linux": "pwd;ls"
           }
       }
   }
   ```

   您也可以使用參數將值傳遞到工作階段偏好設定，而不是對這些值進行硬編碼，如以下範例所示。

   ```
   {
      "schemaVersion":"1.0",
      "description":"Session Document Parameter Example JSON Template",
      "sessionType":"Standard_Stream",
      "parameters":{
         "s3BucketName":{
            "type":"String",
            "default":""
         },
         "s3KeyPrefix":{
            "type":"String",
            "default":""
         },
         "s3EncryptionEnabled":{
            "type":"Boolean",
            "default":"false"
         },
         "cloudWatchLogGroupName":{
            "type":"String",
            "default":""
         },
         "cloudWatchEncryptionEnabled":{
            "type":"Boolean",
            "default":"false"
         }
      },
      "inputs":{
         "s3BucketName":"{{s3BucketName}}",
         "s3KeyPrefix":"{{s3KeyPrefix}}",
         "s3EncryptionEnabled":"{{s3EncryptionEnabled}}",
         "cloudWatchLogGroupName":"{{cloudWatchLogGroupName}}",
         "cloudWatchEncryptionEnabled":"{{cloudWatchEncryptionEnabled}}",
         "kmsKeyId":""
      }
   }
   ```

1. 指定您要傳送工作階段資料的位置。您可以指定 S3 儲存貯體名稱 (包含選用字首) 或 CloudWatch Logs 日誌群組名稱。如果您想要進一步加密本機用戶端和受管節點的資料，請提供用於加密的 KMS 金鑰。下列是 範例。

   ```
   {
     "schemaVersion": "1.0",
     "description": "Document to hold regional settings for Session Manager",
     "sessionType": "Standard_Stream",
     "inputs": {
       "s3BucketName": "amzn-s3-demo-bucket",
       "s3KeyPrefix": "MyS3Prefix",
       "s3EncryptionEnabled": true,
       "cloudWatchLogGroupName": "MyLogGroupName",
       "cloudWatchEncryptionEnabled": true,
       "cloudWatchStreamingEnabled": false,
       "kmsKeyId": "MyKMSKeyID",
       "runAsEnabled": true,
       "runAsDefaultUser": "MyDefaultRunAsUser",
       "idleSessionTimeout": "20",
       "maxSessionDuration": "60",
       "shellProfile": {
           "windows": "MyCommands",
           "linux": "MyCommands"
       }
     }
   }
   ```
**注意**  
如果您不想加密工作階段日誌資料，請將 `s3EncryptionEnabled` 的 `true` 設為 `false`。  
如果您不是將日誌傳送到 Amazon Simple Storage Service (Amazon S3) 儲存貯體或 CloudWatch Logs 日誌群組、不想加密作用中的工作階段資料，或不想為帳戶中的工作階段啟用執行身分支援，您可以刪除這幾行選項。請確定在 `inputs` 部分最後一行不是用逗號結尾。  
如果您新增可加密工作階段資料的 KMS 金鑰 ID，啟動工作階段的使用者和這些工作階段連接的受管節點必須具有該金鑰的使用許可。您可透過 IAM 政策提供將 KMS 金輪 與 Session Manager 搭配使用的許可。如需詳細資訊，請參閱以下主題：  
新增您帳戶中使用者的 AWS KMS 許可： [適用於 Session Manager 的範例 IAM 政策](getting-started-restrict-access-quickstart.md)
新增您帳戶中受管節點的 AWS KMS 許可： [步驟 2：為 Session Manager 確認或新增執行個體許可](session-manager-getting-started-instance-profile.md)

1. 儲存檔案。

1. 在您建立 JSON 檔案的目錄裡執行下列命令。

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

   ```
   aws ssm create-document \
       --name SSM-SessionManagerRunShell \
       --content "file://SessionManagerRunShell.json" \
       --document-type "Session" \
       --document-format JSON
   ```

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

   ```
   aws ssm create-document ^
       --name SSM-SessionManagerRunShell ^
       --content "file://SessionManagerRunShell.json" ^
       --document-type "Session" ^
       --document-format JSON
   ```

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

   ```
   New-SSMDocument `
       -Name "SSM-SessionManagerRunShell" `
       -Content (Get-Content -Raw SessionManagerRunShell.json) `
       -DocumentType "Session" `
       -DocumentFormat JSON
   ```

------

   如果成功，此命令傳回的輸出會類似如下。

   ```
   {
       "DocumentDescription": {
           "Status": "Creating",
           "Hash": "ce4fd0a2ab9b0fae759004ba603174c3ec2231f21a81db8690a33eb66EXAMPLE",
           "Name": "SSM-SessionManagerRunShell",
           "Tags": [],
           "DocumentType": "Session",
           "PlatformTypes": [
               "Windows",
               "Linux"
           ],
           "DocumentVersion": "1",
           "HashType": "Sha256",
           "CreatedDate": 1547750660.918,
           "Owner": "111122223333",
           "SchemaVersion": "1.0",
           "DefaultVersion": "1",
           "DocumentFormat": "JSON",
           "LatestVersion": "1"
       }
   }
   ```

# 更新 Session Manager 偏好設定 (命令列)
<a name="getting-started-configure-preferences-cli"></a>

下列程序說明如何使用您偏好的命令列工具，對所選 AWS Systems Manager Session Manager AWS 帳戶 中的 偏好設定進行變更 AWS 區域。使用 Session Manager 偏好設定，以指定在 Amazon Simple Storage Service (Amazon S3) 儲存貯體或 Amazon CloudWatch Logs 日誌群組中記錄工作階段資料的選項。您也可以使用 Session Manager 偏好設定來加密工作階段資料。

**更新 Session Manager 偏好設定 (命令列)**

1. 在您的本機電腦建立 JSON 檔案的名稱，例如 `SessionManagerRunShell.json`，然後貼上以下內容。

   ```
   {
       "schemaVersion": "1.0",
       "description": "Document to hold regional settings for Session Manager",
       "sessionType": "Standard_Stream",
       "inputs": {
           "s3BucketName": "",
           "s3KeyPrefix": "",
           "s3EncryptionEnabled": true,
           "cloudWatchLogGroupName": "",
           "cloudWatchEncryptionEnabled": true,
           "cloudWatchStreamingEnabled": false,
           "kmsKeyId": "",
           "runAsEnabled": true,
           "runAsDefaultUser": "",
           "idleSessionTimeout": "",
           "maxSessionDuration": "",
           "shellProfile": {
               "windows": "date",
               "linux": "pwd;ls"
           }
       }
   }
   ```

1. 指定您要傳送工作階段資料的位置。您可以指定 S3 儲存貯體名稱 (包含選用字首) 或 CloudWatch Logs 日誌群組名稱。如果您想要進一步加密本機用戶端與受管節點之間的資料，請提供 AWS KMS key 以用於加密。下列是 範例。

   ```
   {
     "schemaVersion": "1.0",
     "description": "Document to hold regional settings for Session Manager",
     "sessionType": "Standard_Stream",
     "inputs": {
       "s3BucketName": "amzn-s3-demo-bucket",
       "s3KeyPrefix": "MyS3Prefix",
       "s3EncryptionEnabled": true,
       "cloudWatchLogGroupName": "MyLogGroupName",
       "cloudWatchEncryptionEnabled": true,
       "cloudWatchStreamingEnabled": false,
       "kmsKeyId": "MyKMSKeyID",
       "runAsEnabled": true,
       "runAsDefaultUser": "MyDefaultRunAsUser",
       "idleSessionTimeout": "20",
       "maxSessionDuration": "60",
       "shellProfile": {
           "windows": "MyCommands",
           "linux": "MyCommands"
       }
     }
   }
   ```
**注意**  
如果您不想加密工作階段日誌資料，請將 `s3EncryptionEnabled` 的 `true` 設為 `false`。  
如果您不是將日誌傳送到 Amazon Simple Storage Service (Amazon S3) 儲存貯體或 CloudWatch Logs 日誌群組、不想加密作用中的工作階段資料，或不想為帳戶中的工作階段啟用執行身分支援，您可以刪除這幾行選項。請確定在 `inputs` 部分最後一行不是用逗號結尾。  
如果您新增可加密工作階段資料的 KMS 金鑰 ID，啟動工作階段的使用者和這些工作階段連接的受管節點必須具有該金鑰的使用許可。您提供透過 Session Manager AWS Identity and Access Management (IAM) 政策使用 KMS 金鑰的許可。如需詳細資訊，請參閱以下主題：  
新增您帳戶中使用者的 AWS KMS 許可：[適用於 Session Manager 的範例 IAM 政策](getting-started-restrict-access-quickstart.md)。
新增您帳戶中受管節點的 AWS KMS 許可：[步驟 2：為 Session Manager 確認或新增執行個體許可](session-manager-getting-started-instance-profile.md)。

1. 儲存檔案。

1. 在您建立 JSON 檔案的目錄裡執行下列命令。

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

   ```
   aws ssm update-document \
       --name "SSM-SessionManagerRunShell" \
       --content "file://SessionManagerRunShell.json" \
       --document-version "\$LATEST"
   ```

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

   ```
   aws ssm update-document ^
       --name "SSM-SessionManagerRunShell" ^
       --content "file://SessionManagerRunShell.json" ^
       --document-version "$LATEST"
   ```

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

   ```
   Update-SSMDocument `
       -Name "SSM-SessionManagerRunShell" `
       -Content (Get-Content -Raw SessionManagerRunShell.json) `
       -DocumentVersion '$LATEST'
   ```

------

   如果成功，此命令傳回的輸出會類似如下。

   ```
   {
       "DocumentDescription": {
           "Status": "Updating",
           "Hash": "ce4fd0a2ab9b0fae759004ba603174c3ec2231f21a81db8690a33eb66EXAMPLE",
           "Name": "SSM-SessionManagerRunShell",
           "Tags": [],
           "DocumentType": "Session",
           "PlatformTypes": [
               "Windows",
               "Linux"
           ],
           "DocumentVersion": "2",
           "HashType": "Sha256",
           "CreatedDate": 1537206341.565,
           "Owner": "111122223333",
           "SchemaVersion": "1.0",
           "DefaultVersion": "1",
           "DocumentFormat": "JSON",
           "LatestVersion": "2"
       }
   }
   ```