AWS Systems Manager、Session Manager、Parameter Store 關聯整理
一句話總結:AWS Systems Manager 是總管理平台;Session Manager 負責安全連主機;Parameter Store 負責集中保存設定值與密碼。
1. 整體關係
| 服務 / 元件 | 角色 | 白話理解 |
|---|---|---|
| AWS Systems Manager / SSM | 總管理平台 | AWS 的主機管理中心,用來集中管理很多台機器。 |
| SSM Agent | 主機上的代理程式 | 讓 EC2 或內部主機可以跟 Systems Manager 溝通。 |
| Session Manager | 安全登入功能 | 不用 SSH Key、不開 22 port,也能連進主機。 |
| Parameter Store | 設定與密碼保管功能 | 集中保存系統設定、DB 密碼、API Key、Token。 |
| IAM Role | 權限控管 | 控制 EC2 能不能被 SSM 管理,也控制 App 能不能讀參數。 |
| KMS | 加密服務 | 幫 SecureString 類型的機密資料加密。 |
2. 圖形化總覽
AWS Systems Manager / SSM
│
├─ Session Manager
│ └─ 安全連進主機
│
├─ Parameter Store
│ └─ 集中保存設定值與密碼
│
├─ Run Command
│ └─ 批次對多台主機下指令
│
├─ Patch Manager
│ └─ 批次更新修補程式
│
└─ Fleet Manager
└─ 查看主機清單與狀態
3. 核心關聯圖
AWS Systems Manager
主機管理中心
集中管理 EC2 與內部主機
Session Manager
安全登入主機
不用 SSH Key、不開 22 port
Parameter Store
保存設定與密碼
支援 SecureString + KMS
Run / Patch
批次管理主機
下指令、更新、維護
重點:Session Manager 和 Parameter Store 都是 Systems Manager 裡面的功能,不是完全獨立的概念。
4. SSM 怎麼管理主機
使用者 / 管理者
│
│ 透過 AWS Console / CLI
▼
AWS Systems Manager
│
│ 發送管理指令
▼
SSM Agent
│
│ 在主機上執行與回報
▼
EC2 / On-Premises Server
| 元件 | 作用 |
|---|---|
| Systems Manager | 負責集中管理與發送指令。 |
| SSM Agent | 裝在主機上,負責接收指令、執行動作、回報結果。 |
| IAM Role | 讓主機有權限跟 Systems Manager 溝通。 |
| Network | 主機要能連到 Systems Manager 服務端點。 |
5. Session Manager 的關聯
User │ │ 不用 SSH Key │ 不用開 Port 22 │ 不用 Bastion Host ▼ AWS Systems Manager │ ▼ Session Manager │ ▼ SSM Agent │ ▼ EC2 / On-Premises Server
| 傳統 SSH | Session Manager |
|---|---|
| 需要開 22 port | 不需要開 22 port |
| 需要管理 SSH Key | 不需要 SSH Key |
| 常需要 Bastion Host | 通常不需要 Bastion Host |
| 操作紀錄要另外設計 | 可以整合 S3 或 CloudWatch Logs |
| 安全性偏網路控管 | 安全性偏 IAM 集中控管 |
白話記法:Session Manager 就是用 Systems Manager 的方式連進主機,避免直接暴露 SSH。
6. Parameter Store 的關聯
Application / Lambda / EC2
│
│ 需要設定值或密碼
▼
AWS Systems Manager
│
▼
Parameter Store
│
├─ String
│ └─ 一般設定
│
├─ StringList
│ └─ 多個設定值
│
└─ SecureString
└─ 密碼 / API Key / Token
可搭配 KMS 加密
| 資料類型 | 適合放什麼 |
|---|---|
| String | 一般設定值,例如環境名稱、系統參數、URL。 |
| StringList | 多個字串值,例如多個 IP、多個參數清單。 |
| SecureString | 機密資料,例如 DB 密碼、API Key、Token。 |
白話記法:Parameter Store 就是把設定和密碼集中放,不要散落在程式碼或每台主機裡。
7. 實務搭配方式
AWS Systems Manager
│
┌────────────────┼────────────────┐
│ │ │
▼ ▼ ▼
Session Manager Parameter Store Run Command / Patch
登入 EC2 存 DB 密碼 批次下指令與更新
│ │ │
▼ ▼ ▼
不用開 22 port App 啟動時讀取 多台主機一起維護
不用 SSH Key SecureString 加密 降低人工操作
| 需求 | 使用功能 | 原因 |
|---|---|---|
| 要安全登入 EC2 | Session Manager | 不用開 SSH,也不用管理 Key。 |
| EC2 要被 SSM 管理 | SSM Agent + IAM Role | 主機需要能跟 Systems Manager 溝通。 |
| App 不想把 DB 密碼寫死 | Parameter Store SecureString | 密碼集中保存,並可用 KMS 加密。 |
| 要一次對多台主機下指令 | Run Command | 減少人工登入每台主機操作。 |
| 要批次更新 OS Patch | Patch Manager | 集中控管主機修補作業。 |
| 要查看哪些主機被管理 | Fleet Manager | 快速確認主機狀態與管理範圍。 |
8. 最好記版本
SSM
管主機
集中管理 EC2 與內部主機。
SSM Agent
當橋樑
讓主機可以跟 Systems Manager 溝通。
Session Manager
連主機
不用 SSH Key,也不用開 22 port。
Parameter Store
放設定與密碼
集中保存設定值、密碼、API Key。
9. 管理角度整理
| 管理問題 | 解法 |
|---|---|
| 主機太多,不好管理 | 用 Systems Manager 集中管理。 |
| SSH Key 難控管 | 用 Session Manager 取代傳統 SSH。 |
| 開 22 port 有安全風險 | 用 Session Manager,Security Group 不開 inbound 22 port。 |
| 設定散在各台機器 | 用 Parameter Store 集中保存。 |
| 密碼不想寫在程式裡 | 用 SecureString + KMS。 |
| 多台主機要重複執行指令 | 用 Run Command 批次執行。 |
| 主機修補程式不好控管 | 用 Patch Manager 統一管理。 |
10. 最後總結圖
AWS Systems Manager / SSM
主機管理中心
│
┌─────────────────────────────┼─────────────────────────────┐
│ │ │
▼ ▼ ▼
Session Manager Parameter Store Run / Patch 管理
安全登入主機 保存設定與密碼 批次管理主機
│ │ │
▼ ▼ ▼
不用 SSH / 22 port App 讀取設定 多台主機一起維護
不用 Bastion Host 密碼集中管理 更新 / 下指令 / 查狀態
│ │ │
└───────────────┬─────────────┴─────────────┬───────────────┘
▼ ▼
SSM Agent IAM Role
主機上的代理 權限控管
│
▼
EC2 / 主機
最後一句話:Systems Manager 是總管,SSM Agent 是橋樑,Session Manager 負責連主機,Parameter Store 負責放設定和密碼。
沒有留言:
張貼留言