Published on
|...

開通AWS EC2 System Manager

在安全連線上我們可以藉由SSM的方式來達到相對於具有ssh key的更安全的方式

這邊說明兩個做法

Instance Connect

image

在EC2上點選Connect image 這裡會區分兩種連線方式,一個是走Public IP 另一個是走Private Connect image

這邊以簡單的Public IP的方式進行 若設定上沒有太大問題就可以直接連線

需要注意兩點 一個是他必須要具備Public IP 另一個是還是要有key pair(即使我們不用SSH Key的方式連線)

System Session Manager

架構圖如下 image

第一次設定時需注意SSM 會需要比較多的設定步驟

  1. 我們需要檢查
  2. IAM身份具有AmazonSSMManagedInstanceCore,並且沒有存在Premission Boundary
  3. MetaData具有IMDSv2(需要藉由IMDS取得Credentials)
  4. 具有amazon-ssm-agent
  5. 網路連線可以暢通ssm.<region>.amazonaws.com

都做完以後會變成 像這樣的架構邏輯 image

以下為檢查步驟

檢查 IAM Role 是否正確掛載 curl http://169.254.169.254/latest/meta-data/iam/info image 確認 Instance Profile 應該只有這個權限 AmazonSSMManagedInstanceCore

檢查Metadata是否可用

curl http://169.254.169.254/latest/meta-data/placement/availability-zone

image

測試網路連線

網路這段需要注意設定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

image 確認一下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]

image

重新安裝並啟用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的限制導致 Pasted Graphic 3 若有出現則將此刪掉 image

若都檢查完成,此時點選Session Manager應該就可以順利連線了 image