Infra & AWS

AWS Session Manager를 통해 Private Subnet에 위치한 EC2 접속하는 방법

Accept 2023. 6. 6. 23:13

Private Subnet에 위치한 EC2 인스턴스에 접근하기 위해선, Public Subnet에 위치한 EC2 인스턴스를 Bastion Host로 만드는 등의 번거로운 작업을 해왔다. 하지만 AWS Session Manager를 이용하면 Bastion Host 설정 같은 복잡한 작업 없이도 Private Subnet에 위치한 EC2에 손쉽게 접근이 가능하다. 참고로 PEM 파일과 같은 EC2 인스턴스의 키파일이 없어도 접속이 가능하다.

 

요구사항

* EC2 인스턴스에 SSM Agent가 설치되어 있을 것(Amazon Linux2는 기본 설치)

* EC2 AmazonEC2RoleforSSM Managed Policy 포함된 Role 설정 필요

   - IAM에서 해당 Role 추가 후 EC2 우클릭 -> IAM 역할 설정에서 변경 필요

* 아래의 VPC Endpoint가 해당 VPC에 있을 것

   - ssm

   - ssmmessages

   - ec2messages

   - logs(로깅 활성화시)

   - s3(s3 로깅 활성화시)

* Security Group에서 443포트 열려 있을 것

 

로깅 활성화 시

1. CloudWatch -> 로그 그룹 -> 로그 그룹 생성 -> /ssm/log 등의 이름 설정 후 생성

2. Session Manager 기본 설정 탭 -> CloudWatch logging Enable 체크 -> Allow only encrypted CloudWatch log groups 체크 해제 -> 1에서 생성한 로그 그룹 선택 후 저장

 

위 설정 모두 마무리되면 Session Manager 내 세션 관리자로 이동 -> 세션 시작 클릭 -> 대상 인스턴스 내 시작하고 싶은 EC2 선택 후 세션 시작 클릭해서 EC2 접속

 

주의사항

* VPC Endpoint가 적절히 설정되어있지 않을 경우, Private Subnet 내 EC2에 접속이 안될 수 있음