[AWS] Client VPN (1)
aws workshop studio의 [PRD] 2024 ConntectX for Partners - Hybrid Network using AWS VPN의 lab을 정리한 내용이다
Client VPN
AWS 리소스 및 온프레미스 네트워크의 리소스에 안전하게 액세스할 수 있도록 하는 관리형 클라이언트 기반 VPN 서비스다.
Client VPN에서는 OpenVPN 기반 VPN 클라이언트를 사용하여 어떤 위치에서든 리소스에 액세스할 수 있다.
AWS Client VPN은 완전 관리형의 탄력적 VPN 서비스로, 사용자 요구 사항에 맞추어 자동으로 확장하거나 축소가 가능하다.
시나리오는 다음과 같다
AnyCompany는 현재 서울에 본사(headquater, HQ)를 두고있으며 On-prem IDC 또한 서울에 위치하여 사용하고 있습니다.
1) 클라우드 워크로드의 도입으로 인하여 AWS로의 마이그레이션이 이루어지고 있지만 여전히 IDC의 몇몇 데이터 및 워크로드가 필요합니다.
2) 또한, 브라질 상파울루 오피스와의 안정적인 네트워크 연결이 필요하나, 물리적으로 매우 먼 거리와 현지 공인망의 불안정성으로 인하여 네트워크 상황이 불안정합니다.
3) 최근 팬데믹 시기를 지나며, 원격 및 재택 근무자가 늘어나 IDC로의 안전한 접근 뿐 아니라, AWS 워크로드로의 안전한 접속이 필요합니다.
원격 및 재택 근무자들에게 AWS 환경 및 이와 연결된 On-prem 네트워크에도 안전하게 접속할 수 있는
인프라를 제공해야한다.
Client VPN을 이용하면, 운영자 측면에서 기존의 설치형 VPN에 비하여 서버/운영 관리 및 확장, 연단위의 라이센스 비용 측면에서 이점을 기대할 수 있다.
원격 사용자는 Client VPN Endpoint를 통해 AWS환경에 바로 접속하게 되므로 생상성 향상을 기대할 수 있다.
AWS Client VPN 클라이언트 인증
원격 접속자의 접근을 제어하기 위해 인증을 사용해야한다.
인증이 성공하면 클라이언트가 Client VPN 엔드포인트에 연결하고 VPN 세션을 설정한다.
인증이 실패하면 연결이 거부되고 클라이언트가 VPN 세션을 연결 할 수 없다.
AWS Certificate Manager에 등록된 인증서를 이용하여 상호 인증하는 방식으로 인증을 구성한다.
인증서를 OpenVPN easy-rsa를 사용하여 서버 및 클라이언트 인증서와 키를 생성한 다음, 서버 인증서와 키를 ACM에 업로드한다.
상호 인증을 하기 위해 다음 문서를 참고하여 OS에 맞게 인증서와 키를 생성한다.
https://docs.aws.amazon.com/ko_kr/vpn/latest/clientvpn-admin/mutual.html
인증서가 생성되었으면, AWS Certificate Manager 콘솔에서 인증서를 직접 업로드하면 된다.
인증서는 서버와 클라이언트 두개를 업로드해야한다.
서버
- Certificate body : server.crt 파일 하단의 -----BEGIN CERTIFICATE----- 부터 -----END CERTIFICATE-----
- Certificate private key : server.key 파일의 -----BEGIN PRIVATE KEY----- 부터 -----END PRIVATE KEY-----
- Certificate chain : ca.crt 파일의 -----BEGIN CERTIFICATE----- 부터 -----END CERTIFICATE-----
클라이언트
- Certificate body : client1.domain.tld.crt 파일 하단의 -----BEGIN CERTIFICATE----- 부터 -----END CERTIFICATE-----
- Certificate private key : client1.domain.tld.key 파일의 -----BEGIN PRIVATE KEY----- 부터 -----END PRIVATE KEY-----
- Certificate chain : ca.crt 파일의 -----BEGIN CERTIFICATE----- 부터 -----END CERTIFICATE-----
Client VPN Endpoint 생성 및 설정
원격 접속자는 아래와 같이 Client VPN 엔드포인트에 접속하여 VPN 세션을 설정하여 사용할 수 있게된다.
원격 접속을 허용하고자 하는 VPC에 서브넷을 따로 구성하여 Endpoint와 연결하는 것이 모범 사례다.
1. Client VPN Endpoint 생성
VPC 콘솔의 VPN -> Virtual private network (VPN) -> Client VPN endpoints 메뉴에서
VPN 엔드포인트를 생성하고 다음와 같이 입력한다.
2. 상호 인증
Server certificate ARN의 메뉴를 드롭다운하여 서버 인증서를 선택한다.
상호 인증을 위해 use mutual authentication을 선택하고 클라이언트 인증서를 선택한다.
3. 로깅
클라이언트 엔드포인트로 접속하는 기록 및 상태 로깅을 위하여 로깅을 활성화해준다.
4. 옵션 설정
Enable split-tunnel을 ON하지 않으면 모든 트래픽이 VPN Endpoint를 통하기 때문에,
로컬 PC의 인터넷이 되지 않는다.
5. 타켓 네트워크 연결
해당 VPC의 어떤 subnet에 Endpoint와 연결 될 ENI를 생성할 지 선택하는 과정이다.
Client VPN 연결을 위한 서브넷을 선택한다. a서브넷과 b서브넷 둘 다 연결해준다.
위 과정을 완료하면 Client VPN Endpoint가 생성되고,
생성한 Endpoint에 대한 VPC 연결이 완료된다.
'💻 CSP > AWS' 카테고리의 다른 글
[AWS] Transit Gateway (0) | 2024.02.28 |
---|---|
[AWS] Client VPN (2) (0) | 2024.02.27 |
[AWS] On-Premises와 AWS간의 Hybrid DNS (0) | 2024.02.23 |
[AWS] Site-to-Site VPN 구성하기 (0) | 2024.02.22 |
[AWS] Site-to-site VPN (0) | 2024.02.21 |