질문
Client VPN의 접근을 제한하기 위해 Security Group에 접근 가능한 IP Address를 등록을 했습니다. 하지만, 등록된 IP Address와 관계 없이, 허용되지 않은 IP Address에서도 접근이 되고 있습니다.
Client VPN 자체에서 IP Address 별로 접근 제어를 할 수 없나요?
답변
AWS Client VPN에서 클라이언트가 Client VPN 엔드포인트에 연결하도록 허용하기 위해서는 다음과 같은 유형의 클라이언트 인증을 사용할 수 있습니다.
Active Directory 인증(사용자 기반)
상호 인증(인증서 기반)
Single sign-on (SAML 기반 연동 인증)(사용자 기반)
인증이 성공하면 클라이언트가 Client VPN 엔드포인트에 연결하고 VPN 세션을 설정합니다. 인증이 실패하면 연결이 거부되고 클라이언트가 VPN 세션을 연결할 수 없습니다.[1]
위에 나열된 방법 중 하나만 사용하거나 다음과 같이 사용자 기반 방법과 상호 인증을 조합해 사용할 수 있습니다.
상호 인증 및 연동 인증
상호 인증 및 Active Directory 인증
Client VPN에서 Security Group은 VPC의 특정 리소스에 대한 액세스를 제한하도록 Client VPN 엔드포인트를 구성할 때 사용되고 있습니다.
대상 네트워크 연결(Client VPN 보안 그룹)에 적용된 보안 그룹을 참조하는 보안 그룹 규칙을 추가하거나 제거하여 VPC의 특정 리소스에 대한 액세스를 부여하거나 거부할 수 있습니다.[2]
따라서, Security Group에 Public IP를 등록하여 클라이언트가 Client VPN 엔드포인트에 연결하도록 허용하거나 제한할 수 없습니다.
Public IP로 Client VPN 엔드포인트에 연결하도록 허용하거나 제한하려면, Client VPN 엔드포인트에 대한 "클라이언트 연결 핸들러"를 구성할 수 있습니다. 핸들러를 사용하면 디바이스, 사용자 및 연결 속성을 기반으로 새 연결을 인증하는 사용자 지정 논리를 실행할 수 있습니다.[3]
현재 지원되는 유일한 클라이언트 연결 핸들러 유형은 "Lambda" 함수입니다.
-------------------------------------------------------------------------------------
[1] 클라이언트 인증
https://docs.aws.amazon.com/ko_kr/vpn/latest/clientvpn-admin/client-authentication.html
[2] 보안 그룹을 사용하여 액세스 제한
https://docs.aws.amazon.com/ko_kr/vpn/latest/clientvpn-admin/scenario-restrict.html#scenario-restrict-security-groups
[3] 연결 권한 부여
https://docs.aws.amazon.com/ko_kr/vpn/latest/clientvpn-admin/connection-authorization.html