[보안] SSM으로 콘솔에서 EC2 원격 쉘 접속
intro
배경
- 보안 정책에 따라 EC2 인스턴스 보안그룹 화이트 리스트 적용, 기존 원격 개발자들의 ssh 접속 불편 증가
- 보안그룹 인바운드 정책을 계속 수정하는 것은 보안정책상 적합하지 않음
개요
- AWS 콘솔에 접속 가능한 자는 배스천 호스트나 pem 없이도 콘솔 상에서 인스턴스에 쉘 접속이 가능하다.
- 접근제어를 위해, 해당 접속 기록은 ‘세션관리자’의 로그로 남는다.
prerequisite
EC2 SSM agent 시작
$ sudo yum install -y amazon-ssm-agent
$ sudo systemctl start amazon-ssm-agent
$ sudo systemctl enable amazon-ssm-agent
EC2 리소스 IAM 역할 부여
- 역할 생성
- 정책)
AmazonSSMManagedInstanceCore
- 정책)
- EC2 인스턴스에 역할 부여
- 인스턴스 선택>작업>보안>IAM 역할 수정
SSM 세션 관리자 확인
- Systems Manager 서비스 이동
- 좌측 메뉴 ‘세션 관리자’ 탭 이동
- ‘세션 시작’ 클릭하여 대상 인스턴스 항목에 해당 인스턴스가 보이는 지 확인
- IAM 역할 부여 후 등록까지 수분 걸릴 수 있음
- 여기서 세션 시작을 클릭할 필요는 없음
(★사용방법) AWS 콘솔에서 EC2 접속하기
-
EC2 서비스 진입 -> 인스턴스 목록에서 인스턴스 선택 -> 우측 상단의 ‘연결’ 클릭
-
session manager 연결
-
정상 쉘 접속 되는 것을 확인할 수 있다.
보안사항
- 권장 사항 : 프라이빗 인스턴스 직접 연결보다는, bastion 인스턴스로 진입하여 -> 프라이빗 인스턴스로 진입 권장
sudo ssh -i /home/ec2-user/hdcl-csp-key.pem ec2-user@[프라이빗 인스턴스 ip]
- AWS System Manager 서비스에서 세션 접속 기록 로깅 : 어떤 IAM 계정이 언제 세션 오픈하였는지 확인 가능