기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
에서 연결 권한 부여 AWS Client VPN
클라이언트 엔드포인트에 대한 클라이언트 연결 핸들러를 구성할 수 있습니다. VPN 핸들러를 사용하면 디바이스, 사용자 및 연결 속성을 기반으로 새 연결을 인증하는 사용자 지정 논리를 실행할 수 있습니다. 클라이언트 연결 핸들러는 클라이언트 VPN 서비스가 장치 및 사용자를 인증한 후에 실행됩니다.
클라이언트 VPN 엔드포인트에 대한 클라이언트 연결 핸들러를 구성하려면 장치, 사용자 및 연결 속성을 입력으로 받아 클라이언트 VPN 서비스에 새 연결을 허용할지 거부할지 여부를 결정하는 결과를 반환하는 AWS Lambda 함수를 만드십시오. 클라이언트 엔드포인트에서 Lambda 함수를 지정합니다. VPN 디바이스가 클라이언트 VPN 엔드포인트에 연결되면 클라이언트 VPN 서비스가 사용자를 대신하여 Lambda 함수를 호출합니다. Lambda 함수에 의해 승인된 연결만 클라이언트 엔드포인트에 연결할 수 있습니다. VPN
참고
현재 지원되는 유일한 클라이언트 연결 핸들러 유형은 Lambda 함수입니다.
요구 사항 및 고려 사항
다음은 클라이언트 연결 핸들러에 대한 요구 사항 및 고려 사항입니다.
-
Lambda 함수의 이름은
AWSClientVPN-
접두사로 시작해야 합니다. -
정규화된 Lambda 함수가 지원됩니다.
-
Lambda 함수는 클라이언트 엔드포인트와 AWS 동일한 리전 및 AWS 동일한 계정에 있어야 합니다. VPN
-
Lambda 함수는 30초 후에 시간 초과됩니다. 이 값은 변경할 수 없습니다.
-
Lambda 함수는 동기식으로 호출됩니다. 이 함수는 디바이스 및 사용자 인증 후 권한 부여 규칙을 평가하기 전에 호출됩니다.
-
새 연결을 위해 Lambda 함수를 호출했는데 VPN 클라이언트 서비스가 함수로부터 예상 응답을 받지 못하면 VPN 클라이언트 서비스는 연결 요청을 거부합니다. 예를 들어, Lambda 함수가 제한되거나 시간 초과되거나 기타 예기치 않은 오류가 발생하거나 함수의 응답이 유효한 형식이 아닌 경우 이 문제가 발생할 수 있습니다.
-
지연 시간의 변동 없이 확장할 수 있도록 Lambda 함수에 대해 프로비저닝된 동시성을 구성하는 것이 좋습니다.
-
Lambda 함수를 업데이트하는 경우 VPN 클라이언트 엔드포인트에 대한 기존 연결은 영향을 받지 않습니다. 기존 연결을 종료한 다음 클라이언트에 새 연결을 설정하도록 지시할 수 있습니다. 자세한 내용은 AWS Client VPN 클라이언트 연결 종료 단원을 참조하십시오.
-
클라이언트가 AWS 제공된 클라이언트를 사용하여 클라이언트 VPN 엔드포인트에 연결하는 경우 Windows의 경우 버전 1.2.6 이상을 사용하고 macOS의 경우 버전 1.2.4 이상을 사용해야 합니다. 자세한 내용은 AWS 제공 클라이언트를 사용하여 연결을 참조하세요.
Lambda 인터페이스
Lambda 함수는 디바이스 속성, 사용자 속성 및 연결 속성을 클라이언트 서비스의 입력으로 받습니다. VPN 그런 다음 연결을 허용할지 거부할지에 대한 결정을 클라이언트 VPN 서비스에 반환해야 합니다.
요청 스키마
Lambda 함수는 다음 필드를 포함하는 JSON 블롭을 입력으로 받습니다.
{ "connection-id":
<connection ID>
, "endpoint-id":<client VPN endpoint ID>
, "common-name":<cert-common-name>
, "username":<user identifier>
, "platform":<OS platform>
, "platform-version":<OS version>
, "public-ip":<public IP address>
, "client-openvpn-version":<client OpenVPN version>
, "aws-client-version":<AWS client version>
, "groups":<group identifier>
, "schema-version": "v3
" }
-
connection-id
— 클라이언트 엔드포인트에 대한 클라이언트 연결 ID. VPN -
endpoint-id
— 클라이언트 VPN 엔드포인트의 ID. -
common-name
- 디바이스 식별자입니다. 디바이스에 대해 생성한 클라이언트 인증서에서 일반 이름은 디바이스를 고유하게 식별합니다. -
username
- 해당되는 경우 사용자 식별자입니다. Active Directory 인증의 경우 이 항목은 사용자 이름입니다. SAML기반 페더레이션 인증의 경우 다음과 같습니다NameID
. 상호 인증의 경우 이 필드는 비어 있습니다. -
platform
- 클라이언트 운영 체제 플랫폼입니다. -
platform-version
- 운영 체제 버전입니다. 클라이언트 VPN 서비스는 클라이언트가 클라이언트 VPN 엔드포인트에 연결할 때, 그리고 클라이언트가 Windows 플랫폼을 실행할 때 Open VPN client 구성에--push-peer-info
디렉티브가 있는 경우 값을 제공합니다. -
public-ip
- 연결 디바이스의 퍼블릭 IP 주소입니다. -
client-openvpn-version
— 클라이언트가 사용 VPN 중인 Open 버전입니다. -
aws-client-version
— AWS 클라이언트 버전. -
groups
- 해당되는 경우 그룹 식별자입니다. Active Directory 인증의 경우 이 항목은 Active Directory 그룹의 목록이 됩니다. SAML기반 연동 인증의 경우 이 목록은 ID 제공자 (IdP) 그룹 목록입니다. 상호 인증의 경우 이 필드는 비어 있습니다. -
schema-version
- 스키마 버전입니다. 기본값은v3
입니다.
응답 스키마
Lambda 함수가 다음 필드를 반환해야 합니다.
{ "allow":
boolean
, "error-msg-on-denied-connection": "", "posture-compliance-statuses": [], "schema-version": "v3
" }
-
allow
- 필수입니다. 새 연결을 허용할지 거부할지를 나타내는 부울(true
|false
)입니다. -
error-msg-on-denied-connection
- 필수입니다. Lambda 함수가 연결을 거부한 경우 클라이언트에 단계 및 지침을 제공하는 데 사용할 수 있는 최대 255자의 문자열입니다. Lambda 함수를 실행하는 동안 장애가 발생할 경우(예: 조절로 인해) 다음과 같은 기본 메시지가 클라이언트에게 반환됩니다.Error establishing connection. Please contact your administrator.
-
posture-compliance-statuses
- 필수입니다. Lambda 함수를 태세 평가에 사용하는 경우 이 필드는 연결 디바이스의 상태 목록입니다. 디바이스의 태세 평가 범주(예:compliant
,quarantined
,unknown
등)에 따라 상태 이름을 정의합니다. 각 이름의 최대 길이는 255자입니다. 최대 10개의 상태를 지정할 수 있습니다. -
schema-version
- 필수입니다. 스키마 버전입니다. 기본값은v3
입니다.
동일한 리전의 여러 VPN 클라이언트 엔드포인트에 동일한 Lambda 함수를 사용할 수 있습니다.
Lambda 함수 생성에 대한 자세한 내용은 AWS Lambda 개발자 안내서의 AWS Lambda시작하기를 참조하세요.
상태 평가에는 클라이언트 연결 핸들러를 사용하십시오.
클라이언트 연결 핸들러를 사용하여 클라이언트 VPN 엔드포인트를 기존 장치 관리 솔루션과 통합하여 연결 장치의 상태 규정 준수를 평가할 수 있습니다. Lambda 함수가 디바이스 권한 부여 핸들러로 작동하도록 하려면 클라이언트 엔드포인트에 대한 상호 인증을 사용하십시오. VPN 클라이언트 엔드포인트에 연결할 각 클라이언트 (장치) 에 대해 고유한 클라이언트 인증서와 키를 생성합니다. VPN Lambda 함수는 클라이언트 서비스에서 전달된 클라이언트 인증서의 고유한 일반 이름을 사용하여 디바이스를 식별하고 디바이스 관리 솔루션에서 상태 규정 준수 상태를 가져올 수 있습니다. VPN 사용자 기반 인증과 결합된 상호 인증을 사용할 수 있습니다.
또는 Lambda 함수 자체에서 기본 태세 평가를 수행할 수 있습니다. 예를 들어, 클라이언트 서비스에서 Lambda 함수로 전달한 platform
및 platform-version
필드를 평가할 수 있습니다. VPN
참고
연결 핸들러를 사용하여 최소 AWS Client VPN 애플리케이션 버전을 적용할 수 있지만 연결 핸들러의 필드는 aws-client-version
AWS Client VPN 애플리케이션에만 적용되며 사용자 디바이스의 환경 변수로 채워집니다.
클라이언트 연결 핸들러를 활성화합니다.
클라이언트 연결 핸들러를 활성화하려면 클라이언트 VPN 엔드포인트를 생성 또는 수정하고 Lambda 함수의 Amazon 리소스 이름 (ARN) 을 지정하십시오. 자세한 내용은 AWS Client VPN 엔드포인트 생성 및 AWS Client VPN 엔드포인트 수정 단원을 참조하세요.
서비스 연결 역할
AWS Client VPN 라는 계정에 서비스 연결 역할을 자동으로 생성합니다. AWSServiceRoleForClientVPNConnections 이 역할에는 클라이언트 엔드포인트에 연결될 때 Lambda 함수를 호출할 권한이 있습니다. VPN 자세한 내용은 서비스 연결 역할 사용 AWS Client VPN 단원을 참조하십시오.
연결 승인 실패를 모니터링합니다.
클라이언트 VPN 엔드포인트에 대한 연결의 연결 인증 상태를 볼 수 있습니다. 자세한 내용은 AWS Client VPN 클라이언트 연결 보기 단원을 참조하십시오.
클라이언트 연결 처리기를 상태 평가에 사용하는 경우 연결 로그에서 클라이언트 VPN 엔드포인트에 연결하는 장치의 상태 규정 준수 상태를 볼 수도 있습니다. 자세한 내용은 AWS Client VPN 엔드포인트에 대한 연결 로깅 단원을 참조하십시오.
디바이스가 연결 권한 부여에 실패하면 연결 로그의 connection-attempt-failure-reason
필드는 다음과 같은 실패 이유 중 하나를 반환합니다.
-
client-connect-failed
- Lambda 함수로 인해 연결을 설정할 수 없습니다. client-connect-handler-timed-out
- Lambda 함수가 시간 초과되었습니다.client-connect-handler-other-execution-error
- Lambda 함수에서 예기치 않은 오류가 발생했습니다.client-connect-handler-throttled
- Lambda 함수가 조절되었습니다.client-connect-handler-invalid-response
- Lambda 함수가 유효하지 않은 응답을 반환했습니다.client-connect-handler-service-error
- 연결 시도 중에 서비스 측 오류가 발생했습니다.