본 학습은 따라하며 배우는 AWS 네트워크 입문 서적을 통해 진행했습니다.
VPN
공공 인터넷을 통해 가상의 사설 네트워크를 구성하여 프라이빗 통신을 제공
- 암호화, 전용 연결 등 여러 보안 요구사항 충족 가능
AWS Site-to-Site VPN
두 개의 네트워크 도메인이 가상의 사설 네트워크 연결을 사용하여 프라이빗 통신을 제공
- AWS에서는 표준 IPsec VPN만 지원
AWS Site-to-Site VPN 기본 구성도
구성
- 고가용성 아키텍처 제공
- VPN 연결 시 제공되는 두 개의 터널 엔드 포인트는 고가용성을 위해 서로 다른 가용 영역에 생성
- 두 개의 터널 엔드 포인트와 각각 터널을 구성하여 터널 이중화를 권장
AWS S2S VPN 구성 요소 - 가상 프라이빗 게이트웨이, 터널 엔드포인트 2개
용어
VPN 연결(VPN Connection)
온프레미스의 장비와 AWS VPC 간의 보안 연결
VPN 터널(VPN Tunnel)
AWS VPC 네트워크와 온프레미스 네트워크 간 주고받을 수 있는 암호화된 링크
가상 프라이빗 게이트웨이 (Virtual Private Gateway, VGW)
AWS의 관리형 Site-to-Site VPN의 게이트웨이
고객 게이트웨이(Customer Gateway, CGW)
온프레미스의 장비 정보를 지정
- AWS의 가상 프라이빗 게이트웨이와 VPN 연결 설정을 위해 필요한 IPsec 정보를 지정
고객 게이트웨이 디바이스(Customer Gateway Device)
온프레미스의 장비 혹은 소프트웨어 애플리케이션
특징
1. VPN 연결 협상 시, Responder로 동작
가상 프라이빗 게이트웨이(VGW)는 통신 요청자(Initiator)가 아니기 때문에 VPN 협상은 항상 고객 게이트웨이 디바이스에서 연결을 시도해야 함
- IKE(Internet Key Exchange) 버전 2를 사용할 경우 AWS의 가상 프라이빗 게이트웨이가 통신 요청자가 될 수 있도록 설정이 가능
2. VPN 터널의 Idle Timeout
VPN 터널 연결 후, 터널에 트래픽이 10초 이상 흐르지 않는 경우 해당 터미널은 Down 처리
- 터널 유지를 위해 온프레미스에서 DPD(Dead Peer Detect)를 설정하거나 Ping을 일정 간격으로 발생시켜 터널을 유지하는 것을 권장
- DPD 시간 초과가 발생할 때, AWS가 IKE 세션을 다시 시작하도록 지정하거나 DPD 시간 초과가 발생할 때 AWS가 작업을 수행하지 않도록 지정 가능
3. 표준 IPsec 지원
데이터 암호화와 인증에 관여하는 다양한 알고리즘을 지원
- IKE(Internet Key Exchange): Version 1 or 2
- AES 128 or 256
- SHA 128 or 256
- Phase 1 Diffie Hellman(DH) groups: 2,14~24
- Phase 2 Diffie Hellman(DH) groups: 2,5,14~24
- Phase 1~2 Encryption algorithms: AES128, AES256, AES128-GCM-16, AES256-GCM-16
- Phase 1~2 integrity algorithms: SHA-1, SHA2-256, SHA2-384, SHA2-512
4. NAT-T(NAT Traversal) 지원
고객 게이트웨이 디바이스가 NAT 내부에 배치된 경우에도 NAT Traversal을 지원하여 VPN 연결이 가능
5. VPN 성능
VGW의 1개 Tunnel은 최대 1.25Gbps 성능을 가지며, 전송 게이트웨이의 ECMP(Equal Cost Multi-Path)를 사용 시 성능 향상 가능
- ECMP: 2개 이상의 연결을 1개의 논리적인 연결로 구성하는 기법으로, 대역폭 확장 가능
라우팅 옵션
Static Routing
사용자가 직접 원격 네트워크의 경로에 대해서 설정
Dynamic Routing
BGP 라우팅 프로토콜을 사용하여 상대방으로부터 전달되는 네트워크 경로를 자동으로 인지하여 통신 가능
- 네트워크 정보를 필요할 때마다 수동으로 설정할 필요 없이 동적으로 네트워크 정보를 관리
VPN 라우팅 모니터링
AWS Cloud Watch를 통해 모니터링 가능
- 제공되는 메트릭은 다른 리소스와 다르게 일부 제한적
- TunnelDataIn: VPN 터널을 통해 수신된 데이터(Byte 단위)
- TunnelDataOut: VPN 터널을 통해 송신된 데이터(Byte 단위)
- TunnelState:터널의 상태로 1은 터널의 연결 상태이며, 0은 터널의 연결 해제 상태
- 별도의 로그를 제공하지 않음
VPN 구성 시나리오
CGW 디바이스가 1대인 경우
- 장점
- 다른 구성 시나리오보다 가장 적은 비용으로 구성이 가능
- AWS 측의 유지 관리 Active 터널이 Down되면 Standby 터널이 Active 되어 지속적인 통신 환경을 보유 가능
- 단점
- 고객 온프레미스 환경에 장애(CGW 디바이스 장애, 인터넷 회선 장애 등) 발생 시 대응 방안이 없음
CGW 단일 구성
CGW 디바이스가 2대이고, 해당 디바이스 2대가 클러스터링 지원
온프레미스에 CGW(고객 게이트웨이) 디바이스의 가용성을 위한 시나리오로, CGW 디바이스는 2대의 장비가 논리적으로 1대의 장비로 동작하는 클러스터링 설정을 필요
- 장점
- CGW 디바이스 장비 1대에 장애가 발생해도 나머지 장비 1대가 지속적인 통신 환경을 제공하여 높은 수준의 고가용성 환경을 제공
- 단점
- CGW 디바이스 장비가 클러스터링 기능을 지원하지 않을 경우 해당 구성이 불가능
CGW 클러스터링 구성
CGW 디바이스가 2대이고 클러스터링 미지원 시 Static Routing 사용
CGW 디바이스가 클러스터링을 미지원할 시 해당 CGW 디바이스의 이중화로 가용성을 높이는 시나리오
- AWS VPN 연결(연결 당 터널 엔드포인트 2개)을 2개(터널 엔드포인트 총 4개)로 설정하고 CGW 디바이스와 연결
- Active 터널의 상태 이상 감지를 위해서 DPD(Dead Peer Detect)나 별도의 상태 확인(Ping 등)을 사용
- AWS VPC 네트워크 대역과 온프레미스 네트워크 대역의 통신을 위해서 Static Routing을 설정
- 장점
- 높은 수준의 고가용성 환경을 제공
- 단점
- DPD 등으로 터널 상태 감지가 제대로 되지 않을 경우 비대칭 라우팅 환경으로 비정상적인 통신 환경 혹은 통신 불능 발생 가능
- 네트워크 대역 추가나 삭제 시 수동으로 Static Routing 설정 요구
VGW & CGW 디바이스 2대 구성 - Static Routing 사용
CGW 디바이스가 2대이고 클러스터링 미지원 시 Dynamic Routing(BGP) 사용
AWS VPC 네트워크 대역과 온프레미스 네트워크 대역을 Dynamic Routing(BGP)를 통하여 자동으로 라우팅 경로 식별 가능
- 장점
- 높은 수준의 고가용성 환경을 제공
- 터널 상태 이상 시 BGP나 BFD(Bidirectional Forwarding Detection)로 자동 감지 후 Standby 터널이 Active 터널로 사용
- 네트워크 대역 정보가 자동으로 학습 및 갱신되며, 변경되는 네트워크 대역 정보를 매번 수동 설정할 필요가 없음
- 단점
- CGW 디바이스가 BGP를 미지원 시 해당 구성 불가능
AWS 클라이언트 VPN
AWS S2S VPN은 각 종단 간 고정된 IP를 통해 VPN 터널을 구성하는 반면 클라이언트 VPN은 사용자 측의 IP가 항상 유동적
- 고정된 장소에서의 VPN 터널을 연결하는 것이 아닌 사용자 위치와 관계없이 VPN 터널 연결 가능
AWS 클라이언트 VPN 기본 구성도
구성
- Administrator: 클라이언트 VPN 엔드포인트를 구성하고 대상 네트워크, 권한 규칙, 라우팅 설정 등을 구성한 후 클라이언트 VPN 엔드포인트 구성 파일을 최종 사용자에게 전달
- 최종 사용자: 전달 받은 구성 파일을 통해 컴퓨터나 모바일 기기를 통해 클라이언트 VPN 엔드포인트에 연결
AWS 클라이언트 VPN 구성 요소 - 클라이언트 VPN 엔드포인트, 클라이언트 VPN 최종 사용자
주요 용어
클라이언트 엔드포인트
클라이언트 VPN의 TLS(Transport Layer Security) 연결을 활성화하고 관리하기 위해 AWS에 생성되는 리소스
- 해당 엔드포인트를 통해 암호화된 사용자 트래픽이 복호화되어 AWS 내의 리소스와 통신 가능
대상 네트워크
사용자가 클라이언트 VPN을 통해 접근할 수 있는 네트워크로써 클라이언트 VPN 엔드포인트와 연결
- 클라이언트 VPN 엔드포인트와 연결되는 서브넷은 고가용성을 위해 서로 다른 가용 영역에 배치
라우팅 테이블
라우팅 테이블의 라우팅 설정을 통해 특정 리소스나 네트워크에 대한 경로 설정 가능
- 클라이언트 VPN 엔드포인트에 사용 가능한 대상 네트워크를 설정하는 라우팅 테이블
권한 규칙
네트워크에 접근 가능한 사용자를 제한 가능
- 지정된 네트워크에 대해 접근을 허용하는 AD(Active Directory) 그룹을 구성하여, 해당 그룹에 속한 사용자에 대해서만 접근할 수 있도록 구성 가능
- 기본적으로 권한 규칙이 없으면 통신이 불가능하므로 리소스 및 네트워크에 접근을 허용하는 접근 규칙을 구성
VPN 클라이언트
클라이언트 VPN 엔드포인트에 연결하는 최종 사용자
- 최종 사용자인 VPN 클라이언트는 OpenVPN 클라이언트를 사용하여 AWS 클라이언트 VPN에 연결 가능
특징
- TLS 프로토콜을 사용하여 AWS 클라이언트 VPN 엔드포인트와 사용자 간의 암호화 연결을 제공
- 관리형 서비스로 별도의 VPN을 배포하고 관리하는 운영 부담이 없음
- 사용자 수에 따라 자동으로 확장 및 축소되기 때문에 유연한 서비스 제공 가능
1. 접근 편리성
OpenVPN 클라이언트를 사용하여 어떠한 위치에서도 안전한 TLS 연결을 제공
2. 고가용성 및 유연성
고가용성을 제공하며 사용량에 따라 리소스를 자동으로 확장하고 축소
3. 보안 및 인증
AD 및 인증서 기반 인증을 제공하여 인가된 사용자에 대한 접근을 허용
4. 접근 제어
네트워크 기반 접근 규칙을 정의하여 사용자 지정 보안 제어가 가능하며, 클라이언트 연결에 대한 세부 정보를 제공하는 연결 로그를 제공
5. 호환성
AWS Directory 서비스 뿐만 아니라 기존의 AWS 서비스와 통합되어 다양한 서비스와의 연동을 제공