先前調研過,最近也遇到有人提問,整理了一下連線 AWS EC2 instance 的方法。
方法一、SSH
將個人的 public key 放到 EC2 instance,就能用 private key 使用 SSH 方式登入。
因為不是為每個人建立 os user,無法得知誰登入,也不知道登入後的操作。
方法二、Systems Manager 的 Session Manager
不需要 public/private key。透過 IAM 權限配置,授權使用者,登入方式有瀏覽器、AWS CLI、SSH 等,請參閱 AWS Document - AWS Systems Manager - Start a session
CloudTrail 可以知道誰登入,但不是為每個人建立 os user,不知道登入後的操作。
方法三、EC2 instance connect
EC2 instance 要安裝 Agent,透過 IAM 權限配置,登入方式為 SSH。
CloudTrail 可以知道誰登入,但不是為每個人建立 os user,不知道登入後的操作
方法四、SSH with IAM
將個人的 public key 放在 IAM,EC2 instance 安裝 validate credentials 的 scripts,登入方式為 SSH,請參閱 https://github.com/widdix/aws-ec2-ssh。
CloudTrail 有記錄哪一台 EC2 instance 索取哪一位 IAM user 的 public key。有為每個人建立 os user,登入後的操作,可以透過作業系統的 audit log 查詢 (預設沒開啟,要記得開)