AWS를 운영하다 보면 EC2에 접근해야 할 때가 많음
보통 SSH (22번 포트)
를 통해 접속하지만, 보안 문제, 키 관리, 비용 증가 등의 단점이 있음
그런데 AWS에서는 SSM Session Manager를 사용하면 SSH 없이 EC2에 접속 가능하고, 보안성과 운영 효율성이 훨씬 높아짐! 🚀
AWS Systems Manager(Session Manager)는 SSH 없이 EC2에 접속할 수 있도록 해주는 서비스임.
✅ SSH(22번 포트) 없이도 EC2에 접속 가능
✅ IAM 역할 기반 접근 제어 (키 관리 불필요)
✅ CloudTrail로 접속 기록 저장 (보안 감사 가능)
✅ VPN 없이 프라이빗 EC2에 직접 접속 가능
✅ Bastion Host 없이도 EC2 관리 가능 (비용 절감)
즉, 운영 효율성 + 보안 + 비용 절감이 가능한 솔루션임!
Amazon Linux 2, Ubuntu 최신 버전에는 기본적으로 SSM Agent 포함되어 있음
만약 없다면 EC2에서 아래 명령어로 설치 가능
# Amazon Linux / RHEL / Ubuntu
sudo yum install -y amazon-ssm-agent
sudo systemctl enable amazon-ssm-agent
sudo systemctl start amazon-ssm-agent
EC2가 SSM을 사용할 수 있도록 IAM 역할을 부여해야 함.
👉 이제 EC2가 AWS SSM과 통신할 수 있음! 🚀
✅ SSH(22번) 포트를 닫고 아웃바운드 443(HTTPS)만 허용하면 됨.
aws ssm start-session --target i-xxxxxxxxxxxxxxxxx
i-xxxxxxxxxxxxxxxxx
→ EC2 인스턴스 ID 입력👉 이제 SSH 없이 EC2에 바로 접속됨! 🎉
Start-SSMSession -TargetInstanceId i-xxxxxxxxxxxxxxxxx
SSH를 사용해야 하는 경우에도 SSM을 이용할 수 있음!
aws ssm start-session --target i-xxxxxxxxxxxxxxxxx --document-name AWS-StartSSHSession
ssh -i "~/.ssh/my-key.pem" ec2-user@127.0.0.1 -p 22
✅ 이렇게 하면 SSH 포트를 열지 않고도 SSH 접속이 가능함.
기능 | SSH | SSM |
---|---|---|
포트 개방 필요 여부 | ✅ 22번 포트 개방 필요 | ❌ 포트 개방 불필요 |
보안 그룹 설정 | 🔓 인바운드 필요 | 🔒 443(HTTPS)만 허용 |
키 관리 | 🔑 .pem 키 필요 | 🛠️ IAM 권한으로 관리 |
VPN 필요 여부 | ✅ 필요 (프라이빗 접근) | ❌ VPN 없이 접속 가능 |
접속 기록 저장 | ❌ 어렵거나 불가능 | ✅ CloudTrail & S3 저장 가능 |
Bastion Host 필요 여부 | ✅ 필요 | ❌ 불필요 (비용 절감) |
원격 명령 실행 | ❌ SSH 접속 후 실행 | ✅ EC2 여러 대에서 동시에 실행 가능 |
👉 즉, SSM을 사용하면 보안도 강화되고, 운영도 쉬워지고, 비용도 절감됨! 🚀
✅ SSM을 사용하면 SSH 없이도 EC2에 안전하게 접속 가능
✅ IAM 권한으로 접근 제어 가능 → SSH 키 관리 필요 없음
✅ Bastion Host, VPN 없이도 프라이빗 EC2 관리 가능 → 비용 절감
✅ CloudTrail을 통한 접속 로그 저장 가능 → 보안 감사 용이
✅ AWS CLI, PowerShell, 콘솔 어디서든 접속 가능