# 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)

# 運作原理

  1. 建立一個 Association(關聯)
    • 告訴 State Manager:「哪個設定文件要套用到哪些實例」
  2. 選擇一個 SSM Document
    • 例如:AWS-ApplyPatchBaseline、AWS-RunShellScript、自訂文件
  3. 設定 排程 (Schedule)
    • 可定時(例如每天凌晨 2 點)或開機時執行
  4. 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 自動安裝指定軟體 軟體部署