允許可設定的 shell 描述檔 - AWS Systems Manager

允許可設定的 shell 描述檔

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

重要

Systems Manager 不會檢查 shell 描述檔中的命令或指令碼,以查看在執行它們之前會對執行個體進行哪些變更。若要限制使用者修改在其 shell 描述檔中輸入的命令或指令碼的能力,建議執行下列動作:

  • 為您的 AWS Identity and Access Management (IAM) 使用者和角色建立自訂工作階段類型文件。然後修改這些使用者和角色的 IAM 政策,以便 StartSession API 操作只能使用您為它們建立的工作階段類型文件。如需相關資訊,請參閱 建立 Session Manager 偏好設定 (命令列)Session Manager的最終使用者政策快速入門

  • 修改 IAM 使用者和角色的 IAM 政策,以拒絕對您建立的工作階段類型文件資源的 UpdateDocument API 操作。這允許您的使用者和角色使用您為其工作階段偏好設定建立的文件,但不允許他們修改任何設定。

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

  1. 開啟位於 AWS Systems Managerhttps://console.aws.amazon.com/systems-manager/ 的 主控台。https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Session Manager

  3. 選擇 Preferences (偏好) 標籤,然後選擇 Edit (編輯)

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

  5. 選擇 Save (儲存)。

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

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

/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 "------- ------ ----- ----- ----- ------ -- -----------"}