iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0

昨天花了點時間介紹 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

驗證 SSM Agent 狀態

作業系統 命令
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 受管政策

  1. AmazonEC2RoleforSSM
  2. AmazonSSMManagedInstanceCore
  3. AmazonSSMPatchAssociation
  4. CloudWatchAgentServerPolicy

第四個 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 端點(選用)

不一定需要建立 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

參考資料:

  1. 支援的作業系統和機器類型
  2. 已預先安裝 SSM Agent 的 Amazon Machine Images (AMIs)
  3. 在 Windows Server 專用 EC2 執行個體手動安裝 SSM Agent
  4. 設定執行個體許可
  5. 步驟 1:設定 Systems Manager 的執行個體許可
  6. 步驟 2:建立 VPC 端點

上一篇
Day 7 介紹 Systems Manager
下一篇
Day 9 Systems Manager 自動上 Patch
系列文
上完 AWS 線上課程就打算應徵相關工作是否搞錯甚麼30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言