본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

AWS Ambassador

Amazon EC2 Instance Connect Endpoint 를 활용한 폐쇄된 VPC 환경의 AWS EC2 접근

2023.07.11

1. 개요

Amazon EC2를 사용하면 다양한 방법으로 EC2에 접근이 가능합니다. EC2가 Public Subnet에 노출되어 있다면 Public IP로 바로 접근 하거나, 일반적으로는 Bastion Host를 별도로 구성하여 한 번 거쳐서 접근을 하게 됩니다. 최근에 들어서는 keypair 관리에 들어가는 Effort와 보안적인 Risk를 줄이기 위해 IAM 기반의 사용자 접근 제어를 통한 AWS System Manager Session Manager를 사용하기도 합니다. 하지만 폐쇄된 VPC(IGW, NGW 가 없는 Private Subnet만 존재하는) 환경일 경우 AWS System Manager Session Manager를 사용할 수 없는 상황이 발생할 수 있습니다.
Amazon EC2 Instance Connect Endpoint는 이러한 폐쇄된 VPC 환경에 존재하는 Amazon EC2 인스턴스로 접근 가능하도록 하는 서비스 입니다.
이번 블로그에서는 Amazon EC2 Instance Connect Endpoint 사용하여 Amazon EC2에 접근하는 방법과 장점을 알아보도록 하겠습니다.

2. 내용

2.1 Pain point

다음은 일반적으로 사용되는 대표적인 두 가지 EC2 접근 방식의 Pain point를 살펴 보도록 하겠습니다.

2.1.1 Bastion Host

위 아키텍처 다이어그램은 Bastion Host를 통해 Private 환경의 Amazon EC2에 접근하는 일반적인 아키텍처 입니다. Bastion Host를 사용하여 Private Subnet의 EC2에 접근한다면 keypair 기반의 접속을 동반하게 됩니다. 이러한 아키텍처에는 다음과 같은 Pain point를 가질 수 있습니다.

• Pain point
◦지속적인 keypair 관리 이슈
 ▪ 1인 1계정 사용 시 많은 기회비용 발생
 ▪ 퇴사자 발생 시 keypair 관리 필요
◦폐쇄망에서 사용 불가능
 ▪ VPN 등 다른 Workaround 방식 필요
◦추가 리소스 사용으로 인한 자원 비용 및 관리 에포트 추가 발생
◦일원화 된 접근 제어, 모니터링 불가
 ▪ 추가적인 작업 혹은 솔루션이 필요

2.1.2 AWS System Manager Session Manager

위 아키텍처 다이어그램은 System Manager Session Manager를 사용하여 Private Subnet에 있는 컴퓨팅 리소스에 접근하는 아키텍처입니다.
위의 아키텍처의 경우 Private Subnet이 인터넷으로 나갈 수 있는 라우팅이 있어야지만 사용이 가능합니다.

• Bastion host 대비 장점
◦IAM 을 통한 일원화 된 EC2 자원 접근 통제
◦Cloud Trails, SSM Session Logging 을 통한 접근 모니터링 및 감사 가능

• Pain point
◦폐쇄망일 경우 Endpoint를 추가 구성하여야 하는 번거로움이 존재
• Endpoint 3개, IAM, Security groups, VPC DNS host 설정 등

2.2 Amazon EC2 Instance Connect Endpoint

2.2.1 Architecture diagram

상기 아키텍처 다이어그램은 EC2 Instance Connect(EIC) Endpoint를 사용하여 외부와의 접근이 차단된 폐쇄망의 EC2 Instance에 접근하는 방법입니다.

• 장점
◦System Manager Session Manager 보다 쉽고 간결한 구성
◦EC2 접근 만을 위한 권한 및 구성 관리
 • System Manager 는 Session Manager 외에도 다양한 기능을 제공

다음으로 EIC 구성 및 테스트를 진행해보도록 하겠습니다.

2.2.2 구성 방법 및 테스트

  1. 폐쇄된 VPC 생성
  2. EC2 생성
  3. EC2 Instance Connect Endpoint 생성
  4. 접속 테스트

2.2.2.1 폐쇄된 VPC 생성

Demo의 간단한 위해 AWS Console을 이용해 VPC를 생성합니다.

• Resources to create: VPC and more
• Name tag auto-generation:
◦Auto-generate: demo
◦IPv4 CIDR block: 10.0.0.0/24
• Number of Availability Zones (AZs): 1
• Number of public subnets: 0
• Number of private subnets: 1
• NAT gateways: None

2.2.2.2 EC2 생성

기본 설정에 VPC 만 앞 단계에서 생성된 리소스로 수정합니다.

• Application and OS Images (Amazon Machine Image)
◦Amazon Linux 2023 AMI 2023.1.20230629.0 x86_64 HVM kernel-6.1
(선택사항) 이번 데모에서는 IAM 권한 통제를 통한 EC2 Instance Connect(EIC) Endpoint 접속을 테스트 할 예정이라 keypair 는 사용하지 않았습니다.

2.2.2.3 EC2 Instance Connect Endpoint 생성

• VPC> Endpoints> Create endpoints

◦VPC, Subnet: 데모용으로 생성한 VPC, Subnet을 선택합니다.
◦Security groups: Endpoint가 갖게 되는 ENI(Elastic Network Interface)에 연결할 Security group을 선택합니다.

• 데모 결과 아키텍처

2.2.2.4 접속 테스트

• aws cli
◦Command

◦테스트 결과

2.2.3 IAM을 통한 EC2 접근 사용자 관리

EIC는 IAM을 통해 IAM User 별 접근 제어를 할 수 있다. 다음은 IAM policy 예제이다.
• Example IAM Policy Yaml
◦Document 예제(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/permissions-for-ec2-instance-connect-endpoint.html) 외에 아래 두가지 policy 도 필요합니다.
▪ “ec2-instance-connect:OpenTunnel”
“ec2-instance-connect:SendSSHPublicKey”

2.2.4 CloudTrail을 통한 EC2 접근 사용자 추적

다음과 같이 CloudTrail 을 사용하여 User의 Ec2 Instance Connect 연결에 대한 확인이 가능합니다.
• CloudTrail > Event history

3. 마무리

이번 포스팅에서는 Amazon EC2 Instance Connect Endpoint 를 사용한 폐쇄된 VPC 내의 Ec2 접근 방안에 대해서 확인해봤습니다. AWS System Manager Session Manager 를 사용하기 위해선 IGW, NatG/W 가 구성되어 있거나 폐쇄망일 경우 다른 VPC 혹은 On-premise 와 연결된 환경에서 Endpoint 작업을 통해 접근이 가능하지만, Amazon EC2 Instance Connect Endpoint 를 사용하면 Endpoint 만 간단하게 생성하여 폐쇄된 VPC 내의 EC2 로도 쉽게 연결이 가능합니다. 물론 엔터프라이즈 환경에서 요구하는 보안요건을 맞추기 위해선 솔루션을 도입하거나 별도의 채널을 통해서 접근하는 것이 맞을 수도 있지만 일반적인 보안요건 혹은 긴급하게 연결이 필요할 시에는 빠르게 설정하여 사용할 수 있는 유용한 서비스입니다.

챗봇과 대화를 할 수 있어요