昨天花了點時間介紹 Systems Manager 這個 AWS 的服務
主要就是希望透過這項服務能夠統一管理我們雲端的機械
不過要能夠管理機械
當然也不可能是暴力式的直接侵入系統
在管理機械前我們仍需要確認機械狀況
詳細支援列表可參考支援的作業系統和機器類型
基本上大部分的 64 位元的作業系統都支援
如果是使用 Amazon Linux 2 或 Amazon Linux 2023
已經有預裝 SSM Agent 在作業系統中
不需要再另外安裝
如果是使用 Windows Server 作業系統通常需要再裝 SSM Agent
請打開 Powershell 依序輸入下列指令
下載 SSM Agent
[System.Net.ServicePointManager]::SecurityProtocol = 'TLS12'
$progressPreference = 'silentlyContinue'
Invoke-WebRequest `
https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/windows_amd64/AmazonSSMAgentSetup.exe `
-OutFile $env:USERPROFILE\Desktop\SSMAgent_latest.exe
啟動 SSM Agent
Start-Process `
-FilePath $env:USERPROFILE\Desktop\SSMAgent_latest.exe `
-ArgumentList "/S"
刪除 SSM Agent
rm -Force $env:USERPROFILE\Desktop\SSMAgent_latest.exe
作業系統 | 命令 |
---|---|
Amazon Linux | sudo status amazon-ssm-agent |
Amazon Linux 2 和 Amazon Linux 2023 | sudo systemctl status amazon-ssm-agent |
macOS | 沒有用於在 macOS 上檢查 SSM Agent 狀態的命令。透過尋找和評估代理程式日誌檔案 /var/log/amazon/ssm/amazon-ssm-agent.log,您可以檢查狀態。 |
Ubuntu Server (32 位元) | sudo status amazon-ssm-agent |
Ubuntu Server (64 位元) | sudo systemctl status amazon-ssm-agent |
Windows Server | Get-Service AmazonSSMAgent |
官方文件說只需要添加 EC2 即可
但是考量到日後會使用其他相關功能
因此也添加 ssm.amazonaws.com
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"ec2.amazonaws.com",
"ssm.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
政策需要添加四個 AWS 受管政策
第四個 CloudWatchAgentServerPolicy
確實為非必要
如果需要將 EC2 的 Log 轉拋到 CloudWatch Log 則需要額外添加這個
此外添加此政策也可以針對監控數據傳送的頻率做更多的設定
因此也建議添加
最後記得要將 IAM Role 關聯至 EC2 上
步驟 1:設定 Systems Manager 的執行個體許可 中的 S3 也可以先不用設定
此設定是當 CloudWatchAgent 一些 Config 設定檔放在 S3 時
如果不想要重複上傳/下載
或是要從 S3 下載 Patch 進行安裝時才需要設定
是個有設定會很方便但是不一定需要的設定
Config 的傳遞也可以透過 SFTP 或 SCP 上傳到 Server
而公司內如果有自己的 Patch Server(yum、apt、wsus)
不是使用 S3 做為 Patch 來源的話
就沒有一定需要添加這個 S3 政策
不一定需要建立 VPC 端點
此設定只有當網路 EC2 無法聯外
沒有配置 Elastic IP
也沒有走 NAT Gateway 出外網
才需要特別設定 VPC 端點
將資料送到 AWS 上
需要注意的是 VPC 端點需要建三個ssm.region.amazonaws.com
ssmmessages.region.amazonaws.com
ec2messages.region.amazonaws.com
而且 Security Group Port 443 也要開
美東建一個 VPC Endpoint 每小時就需要花費 0.01 美金
新加坡需要 0.013 美金而東京需要 0.014 美金
容量費用另外計算
當機械數量少時
建立 VPC Endpoint 會是筆可觀的花費
只要在 Systems Manager 中的 Fleet Manager 裡
有看到 EC2 出現在列表中
就算是設定成功
在設定成功後 AWS 會自動在 EC2 中建立一個 ssm-user 使用者來管理這些機械
因此才可以擷取這些資訊
並在 AWS 的介面中瀏覽
在 Fleet Manager 中可看到許多有趣的資訊
除了 EC2 的 SSM Agent 版本和 AMI 資訊以外
點 EC2 的 ID 可以看到 EC2 中所有的使用者/群組/Process
參考資料: