AWS ClientVPN Source IP 제어

dawon·2022년 9월 2일
0
post-thumbnail

사전지식

ClientVPN의 접근 포인트에 대한 제어는 aws에서 친절하게 제공하지 않아서 접근 지점의 Source IP를 lambda를 통해 관리하는 방법을 안내합니다.

구성 방법

  1. 아래와 같은 구성으로 lambda를 구성합니다.
  • 런타임: python 최신 버전
  • 네이밍: AWSClientVPN- 으로 시작
    아래 샘플 코드를 참고해서 구성을 완료합니다.
import ipaddress

def is_public_source_ip_valid(public_ip):
    ## 접근 허용할 ip 입력
    ips = ['72.21.0.0', '220.70.6.93']; 
    
    if public_ip in ips:
        return True
    return False

def lambda_handler(event, context):
    public_ip = event['public-ip']
    allow = False
    error_msg = "Your IP is not allowed to establish a connection. Please contact your administrator!!"
    if is_public_source_ip_valid(public_ip):
        allow = True
    return {
        "allow": allow,
        "error-msg-on-failed-posture-compliance": error_msg,
        "posture-compliance-statuses": [],
        "schema-version": "v1"        
    }

접근할 대상이 ip 대역인 경우에는 1)기존 코드 부분을 2)변경 코드로 변경해서 사용이 가능합니다.

1) 기존 코드

if public_ip in ips:

2) 변경 코드

if ipaddress.ip_address(public_ip) in ipaddress.ip_network('123.12.0.0/16'):
  1. client VPN 핸들러 설정
    아래와 같이 AWS ClientVPN의 생성, 수정 화면에서 연결 핸들러를 등록할 수 있으며, 위에서 구성한 lambda를 선택합니다.

구성 결과

client vpn 접근 포인트에 대해 간편하게 제어하는 것이 가능해졌습니다.
자세한 사항은 공식 가이드에서 확인이 가능합니다.

0개의 댓글