# AWS - System Manager State Manager
# State Manager
State Manager 的概念有點像「自動化設定維持工具」(Configuration Drift Management),
讓系統自動維持在「理想狀態 (desired state)」。
AWS Systems Manager State Manager 是一個讓你 自動套用並維持 EC2 / On-Prem 主機設定狀態的服務,可確保每台伺服器都符合企業的 安全與組態標準。
確保所有實例的設定、代理程式、補丁、原則都維持一致。
# 解決了甚麼問題
在大型環境裡常見這些問題:
- 有些 EC2 忘了裝 SSM Agent?
- 某台主機的防火牆被改設定?
- 安全修補沒跑?
- Config 被人手動改壞?
這時候 State Manager 可以:
- 定期套用設定文件(如安裝軟體、修改參數、執行腳本)
- 確保設定被持續維護
- 若偏離預期設定,可自動修復(Reapply)
# 運作原理
- 建立一個 Association(關聯)
- 告訴 State Manager:「哪個設定文件要套用到哪些實例」
- 選擇一個 SSM Document
- 例如:AWS-ApplyPatchBaseline、AWS-RunShellScript、自訂文件
- 設定 排程 (Schedule)
- 可定時(例如每天凌晨 2 點)或開機時執行
- SSM Agent 在指定時間自動執行設定文件
- 成功 / 失敗狀態會上傳至 Systems Manager Console
# 關鍵名詞解釋
| 名稱 | 說明 |
|---|---|
| Association | State Manager 的任務單位,定義「要做什麼」與「對誰做」 |
| SSM Document | 實際執行的設定或腳本(JSON / YAML 格式) |
| Targets | 指定要執行的 EC2 / 混合雲伺服器(可用 Tag 選取) |
| Schedule Expression | 設定排程(Cron / Rate 格式) |
| Compliance Status | 顯示是否符合設定狀態(Compliant / Non-Compliant) |
# 支援的常見動作(SSM Documents)
| 文件名稱 | 功能 | 類似操作 |
|---|---|---|
AWS-RunShellScript |
執行 Linux Shell 腳本 | Bash 任務 |
AWS-RunPowerShellScript |
執行 Windows PowerShell 腳本 | Windows 管理 |
AWS-ApplyPatchBaseline |
自動修補系統更新 | Patch Manager |
AWS-UpdateSSMAgent |
更新 SSM Agent | Agent 維護 |
AWS-ConfigureCloudWatch |
部署與設定 CloudWatch Agent | 監控設定 |
AWS-JoinDirectoryServiceDomain |
自動加入 AD Domain | AD 自動化 |
AWS-InstallApplication |
自動安裝指定軟體 | 軟體部署 |