- Published on
- |...
開通AWS EC2 System Manager
在安全連線上我們可以藉由SSM的方式來達到相對於具有ssh key的更安全的方式
這邊說明兩個做法
Instance Connect

在EC2上點選Connect
這裡會區分兩種連線方式,一個是走Public IP 另一個是走Private Connect 
這邊以簡單的Public IP的方式進行 若設定上沒有太大問題就可以直接連線
需要注意兩點 一個是他必須要具備Public IP 另一個是還是要有key pair(即使我們不用SSH Key的方式連線)
System Session Manager
架構圖如下 
第一次設定時需注意SSM 會需要比較多的設定步驟
- 我們需要檢查
- IAM身份具有AmazonSSMManagedInstanceCore,並且沒有存在Premission Boundary
- MetaData具有IMDSv2(需要藉由IMDS取得Credentials)
- 具有amazon-ssm-agent
- 網路連線可以暢通
ssm.<region>.amazonaws.com
都做完以後會變成 像這樣的架構邏輯 
以下為檢查步驟
檢查 IAM Role 是否正確掛載 curl http://169.254.169.254/latest/meta-data/iam/info
確認 Instance Profile 應該只有這個權限 AmazonSSMManagedInstanceCore
檢查Metadata是否可用
curl http://169.254.169.254/latest/meta-data/placement/availability-zone

測試網路連線
網路這段需要注意設定VPC subnet 以及IGW 另一種方式是走VPC Endpoint 但就會需要收費
ping ssm.ap-southeast-1.amazonaws.com
dig ssm.ap-southeast-1.amazonaws.com
curl https://ssm.ap-southeast-1.amazonaws.com
確認一下Instance metadate service有勾選Enable 底下的Option or Require是 IMDSv1 IMDSv2的差別
[Instance Metadata Service Version 1 (IMDSv1) – a request/response method Instance Metadata Service Version 2 (IMDSv2) – a session-oriented method]

重新安裝並啟用SSM agent(預設就有,有需要的話再執行)
sudo yum erase amazon-ssm-agent -y
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
sudo systemctl enable amazon-ssm-agent
sudo systemctl start amazon-ssm-agent
檢查log有無權限錯誤 sudo journalctl -u amazon-ssm-agent -xe 依照本次案例 會看到Permission Boundary的限制導致
若有出現則將此刪掉 
若都檢查完成,此時點選Session Manager應該就可以順利連線了 