允許可設定的 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. 開啟位於 https://console.aws.amazon.com/systems-manager/ 的 AWS Systems Manager 主控台。

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

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

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

  5. 選擇 Save (儲存)。

以下是可以新增到 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 "------- ------ ----- ----- ----- ------ -- -----------"}