Search
Duplicate

AWS Solution 1 - Session Manager (Public 접근)

날짜
2021/09/05
작성자
태그
AWS
Network
SSM
IAM
Series
AWS Solution
완료
본 글은 제가 개인 블로그에 썼던 글을 재구성하여 쓴 글입니다 참고(linux) 참고(Windows)

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 솔루션을 사용할 수 있습니다
감사합니다