Session Manager란?
•
AWS Systems Manager(SSM)의 기능으로, 포트가 아닌 IAM 권한을 가지고 통신하는 시스템
•
SSH나 RDP를 사용하는 통신이 아니기 때문에, 보안그룹을 모두 막아놓아도 AWS 콘솔에서 EC2에 접속해 관리할 수 있습니다
•
Session Manager로 EC2에 접속하기 위해 필요한 것은 아래와 같습니다
◦
IAM Role
◦
SSM Agent
◦
Internet이 되는 VPC 환경 (즉 IGW 또는 NAT GW로의 라우팅 설정이 되어있는 네트워크)
또는 VPC Endpoint 3개
•
SSM Agent는 AWS Managed AMI엔 기본으로 설치되어 있습니다
•
Internet이 아예 안되는 폐쇄망에서 Session Manager를 사용하는 방법(VPC Endpoint를 사용하는 방법)은 다음 글에서 다루도록 하겠습니다 : AWS Solution 2 - Session Manager (Private 접근)
•
VPC와 EC2 등 기본 리소스를 만드는 과정은 아래를 참고해주시길 바랍니다
1. IAM Role 생성하기
•
AWS Console > IAM > Roles > Create Role
•
Use Case에서 EC2를 선택한 후, Next: Permissions 를 누릅니다
•
AmazonEC2RoleforSSM Policy를 찾아 체크해준 후, Next: Tags를 누릅니다
•
3단계인 Tags는 옵션이니 건너뛰겠습니다
•
Role name을 지정해주고 Create role을 눌러 생성을 완료해줍니다
2. (기본 AMI가 아닌 경우만) SSM Agent 설치하기
•
AWS Managed AMI가 아닌 경우 (Marketplace AMI 또는 Community AMI) SSM Agent가 깔려있지 않을 수 있습니다
Linux에서 설치하기
Windows에서 설치하기
3. Session Manager로 EC2 접속하기
•
SSM Agent가 깔린 Linux, Windows EC2의 보안그룹을 아래와 같이 설정해 두었습니다
Inbound Rule이 아무것도 존재하지 않음
•
EC2에 위에서 만들어둔 IAM Role을 붙여보도록 하겠습니다
◦
EC2 > Actions > Security > Modify IAM role
◦
위에서 만든 IAM Role을 붙여준 후 Save 해줍니다
•
EC2를 선택한 후 Connect를 누르면 Session Manager 탭의 연결 버튼이 활성화 되어있는걸 확인할 수 있습니다
◦
Linux Session Manager 연결 화면
◦
Windows Session Manager 연결 화면
Session Manager Connect 버튼이 바로 활성화되지 않는 경우도 있습니다!
인내심을 가지고 조금만 기다려봅시다
마무리
•
보안그룹 Inbound가 모두 막혀있어도, Session Manager를 통해 EC2에 접근할 수 있었습니다
•
실수로 SSH나 RDP가 막혔을 때 관리자가 콘솔을 통해 해당 서버로 접속할 수 있습니다
•
보안에 민감한 아키텍처에서 유용하게 사용할 수 있으며, 인터넷에 전혀 연결할 수 없는 VPC에서 Session Manager를 사용하는 방법은 다음 글에서 확인하실 수 있습니다
•
보안그룹이 막혀있는 상황에서 윈도우 서버에 CLI(PowerShell) 환경이 아닌 GUI로 접속하고 싶다면, Session Manager가 아닌 Local Port Forwarding 솔루션을 사용할 수 있습니다
•
감사합니다