# AWS 連線方式 在安全連線上我們可以藉由SSM的方式來達到相對於具有ssh key的更安全的方式 這邊說明兩個做法 ## Instance Connect ![image](https://hackmd.io/_uploads/BydpTWz1xe.png) 在EC2上點選Connect ![image](https://hackmd.io/_uploads/HkCKjXQkxx.png) 這裡會區分兩種連線方式,一個是走Public IP 另一個是走Private Connect ![image](https://hackmd.io/_uploads/B1WTiQmkgg.png) 這邊以簡單的Public IP的方式進行 若設定上沒有太大問題就可以直接連線 需要注意兩點 一個是他必須要具備Public IP 另一個是還是要有key pair(即使我們不用SSH Key的方式連線) ## System Session Manager 架構圖如下 ![image](https://hackmd.io/_uploads/HJjy0ZMJlg.png) 第一次設定時需注意SSM 會需要比較多的設定步驟 1. 我們需要檢查 2. IAM身份具有AmazonSSMManagedInstanceCore,並且沒有存在Premission Boundary 3. MetaData具有IMDSv2(需要藉由IMDS取得Credentials) 4. 具有amazon-ssm-agent 5. 網路連線可以暢通`ssm.<region>.amazonaws.com` 都做完以後會變成 像這樣的架構邏輯 ![image](https://hackmd.io/_uploads/B1tzYm7kgx.png) 以下為檢查步驟 檢查 IAM Role 是否正確掛載 `curl http://169.254.169.254/latest/meta-data/iam/info` ![image](https://hackmd.io/_uploads/BJ1aKQm1el.png) 確認 Instance Profile 應該只有這個權限 `AmazonSSMManagedInstanceCore` 檢查Metadata是否可用 ``` curl http://169.254.169.254/latest/meta-data/placement/availability-zone ``` ![image](https://hackmd.io/_uploads/H1tKVfG1xe.png) 測試網路連線 網路這段需要注意設定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](https://hackmd.io/_uploads/HyxvL9XXkge.png) 確認一下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](https://hackmd.io/_uploads/BJIi4Lm1ge.png) 重新安裝並啟用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](https://hackmd.io/_uploads/rk3B1MG1gx.png) 若有出現則將此刪掉 ![image](https://hackmd.io/_uploads/r14kgzGyxg.png) 若都檢查完成,此時點選Session Manager應該就可以順利連線了 ![image](https://hackmd.io/_uploads/S1YNjQQkel.png)