Autorización de conexión en AWS Client VPN - AWS Client VPN

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Autorización de conexión en AWS Client VPN

Puede configurar un controlador de conexión de cliente para su VPN punto final de cliente. Este controlador le permite ejecutar una lógica personalizada que autorice las nuevas conexiones en función de los atributos del dispositivo, el usuario y la conexión. El controlador de conexión del cliente se ejecuta después de que el VPN servicio de cliente haya autenticado el dispositivo y el usuario.

Para configurar un controlador de conexión del cliente para el VPN punto final del cliente, cree una AWS Lambda función que tome los atributos del dispositivo, el usuario y la conexión como entradas y devuelva al VPN servicio de cliente la decisión de permitir o denegar una nueva conexión. La función Lambda se especifica en el punto final del clienteVPN. Cuando los dispositivos se conectan al VPN punto final del cliente, el VPN servicio de cliente invoca la función Lambda en su nombre. Solo las conexiones autorizadas por la función Lambda pueden conectarse al punto final del clienteVPN.

nota

Actualmente, el único tipo de controlador de conexión del cliente que se admite son las funciones Lambda.

Requisitos y consideraciones

A continuación se explican las consideraciones y los requisitos relacionados con el controlador de la conexión del cliente:

  • El nombre de la función Lambda debe comenzar con el prefijo AWSClientVPN-.

  • Las funciones Lambda calificadas son compatibles.

  • La función Lambda debe estar en la misma AWS región y en la misma AWS cuenta que el punto final del clienteVPN.

  • El tiempo de espera de la función Lambda se agota después de 30 segundos. Este valor no se puede modificar.

  • La función Lambda se invoca de manera sincrónica. Se invoca después de la autenticación del dispositivo y del usuario, y antes de que se evalúen las reglas de autorización.

  • Si se invoca la función Lambda para una nueva conexión y el VPN servicio de cliente no obtiene la respuesta esperada de la función, el VPN servicio de cliente deniega la solicitud de conexión. Esto puede ocurrir, por ejemplo, si la función Lambda tiene alguna limitación controlada, se agota su tiempo de espera o se producen otros errores inesperados, o bien si la respuesta de la función no tiene un formato válido.

  • Es conveniente que configure la simultaneidad aprovisionada de la función Lambda para que pueda escalarse sin que se produzcan fluctuaciones en la latencia.

  • Si actualiza la función Lambda, las conexiones existentes al VPN punto final del cliente no se ven afectadas. Puede terminar las conexiones existentes y pedirle después a sus clientes que establezcan nuevas conexiones. Para obtener más información, consulte Finalizar la conexión de un AWS Client VPN cliente.

  • Si los clientes utilizan el cliente AWS proporcionado para conectarse al VPN punto final del cliente, deben usar la versión 1.2.6 o posterior para Windows y la versión 1.2.4 o posterior para macOS. Para obtener más información, consulte Conexión mediante el cliente proporcionado por AWS.

Interfaz de Lambda

La función Lambda toma los atributos del dispositivo, los atributos de usuario y los atributos de conexión como entradas del servicio de clienteVPN. A continuación, debe devolver al VPN servicio de cliente la decisión de permitir o denegar la conexión.

Esquema de la solicitud

La función Lambda toma como entrada un JSON blob que contiene los siguientes campos.

{ "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— El ID de la conexión del cliente al punto final del clienteVPN.

  • endpoint-id— El ID del VPN punto final del cliente.

  • common-name: identificador del dispositivo. En el certificado de cliente que va a crear para el dispositivo, el nombre común identifica de forma inequívoca el dispositivo.

  • username: identificador del usuario, si procede. En la autenticación de Active Directory, es el nombre de usuario. En el SAML caso de la autenticación federada basada, esto esNameID. En la autenticación mutua, este campo está vacío.

  • platform: plataforma del sistema operativo cliente.

  • platform-version: versión del sistema operativo. El VPN servicio de cliente proporciona un valor cuando la --push-peer-info directiva está presente en la configuración del VPN cliente abierto, cuando los clientes se conectan a un VPN punto final del cliente y cuando el cliente ejecuta la plataforma Windows.

  • public-ip: dirección IP pública del dispositivo de conexión.

  • client-openvpn-version— La VPN versión abierta que utiliza el cliente.

  • aws-client-version— La versión AWS del cliente.

  • groups: identificador del grupo, si procede. Para la autenticación de Active Directory, será una lista de grupos de Active Directory. Para la autenticación federada SAML basada, será una lista de grupos de proveedores de identidad (IdP). En la autenticación mutua, este campo está vacío.

  • schema-version: versión del esquema. El valor predeterminado es v3.

Esquema de respuesta

La función Lambda debe devolver los siguientes campos.

{ "allow": boolean, "error-msg-on-denied-connection": "", "posture-compliance-statuses": [], "schema-version": "v3" }
  • allow: obligatorio. Valor booleano (true | false) que indica si se va a permitir o denegar la nueva conexión.

  • error-msg-on-denied-connection: obligatorio. Cadena de hasta 255 caracteres que se puede utilizar para proporcionar pasos y directrices a los clientes si la función Lambda deniega la conexión. Si se producen errores durante la ejecución de la función Lambda (por ejemplo, debido a una limitación controlada), se devuelve a los clientes el siguiente mensaje predeterminado.

    Error establishing connection. Please contact your administrator.
  • posture-compliance-statuses: obligatorio. Si utiliza la función Lambda para evaluar la posición, es una lista de estados del dispositivo de conexión. Los nombres de estado se definen de acuerdo con las categorías de evaluación de la posición de los dispositivos; por ejemplo, compliant, quarantined, unknown, etc. Un nombre puede tener 255 caracteres como máximo. Puede especificar hasta 10 estados.

  • schema-version: obligatorio. Versión del esquema. El valor predeterminado es v3.

Puede usar la misma función Lambda para varios VPN puntos finales de cliente en la misma región.

Para obtener más información acerca de cómo crear una función de Lambda, consulte Introducción a AWS Lambda en la Guía para desarrolladores de AWS Lambda .

Utilice el controlador Client Connect para evaluar la postura

Puede usar el controlador de conexión del cliente para integrar su VPN terminal cliente con su solución de administración de dispositivos existente a fin de evaluar el cumplimiento de la postura de los dispositivos que se conectan. Para que la función Lambda funcione como un controlador de autorización de dispositivos, utilice la autenticación mutua para el punto final del cliente. VPN Cree un certificado de cliente y una clave únicos para cada cliente (dispositivo) que se conectará al punto final del clienteVPN. La función Lambda puede usar el nombre común único del certificado de cliente (que se transmite desde el VPN servicio de cliente) para identificar el dispositivo y obtener su estado de conformidad con la postura de la solución de administración de dispositivos. Puede utilizar la autenticación mutua combinada con la autenticación basada en usuarios.

Si lo desea, también puede realizar una evaluación básica de la posición de la propia función Lambda. Por ejemplo, puede evaluar los platform-version campos platform y que el servicio de cliente VPN pasa a la función Lambda.

nota

Si bien el controlador de conexión se puede utilizar para aplicar una versión mínima de la AWS Client VPN aplicación, el campo aws-client-version del controlador de conexión solo se aplica a la AWS Client VPN aplicación y se rellena a partir de variables de entorno del dispositivo del usuario.

Habilite el controlador de conexión del cliente

Para habilitar el controlador de conexión del cliente, cree o modifique un VPN punto final del cliente y especifique el nombre de recurso de Amazon (ARN) de la función Lambda. Para obtener más información, consulte Crear un AWS Client VPN punto final y Modificar un AWS Client VPN punto final.

Función vinculada al servicio

AWS Client VPN crea automáticamente un rol vinculado al servicio en su cuenta llamado. AWSServiceRoleForClientVPNConnections El rol tiene permisos para invocar la función Lambda cuando se establece una conexión con el punto final del VPN cliente. Para obtener más información, consulte Uso de roles vinculados a servicios para AWS Client VPN.

Supervise los errores de autorización de conexión

Puede ver el estado de autorización de conexión de las conexiones al VPN punto final del cliente. Para obtener más información, consulte Ver las conexiones de los AWS Client VPN clientes.

Cuando se utiliza el controlador de conexión del cliente para evaluar la postura, también puede ver el estado de cumplimiento de la postura de los dispositivos que se conectan al VPN punto final del cliente en los registros de conexión. Para obtener más información, consulte Registro de conexiones para un AWS Client VPN punto final.

Si un dispositivo no consigue la autorización de conexión, el campo connection-attempt-failure-reason de los registros de conexión devuelve uno de los siguientes motivos de error:

  • client-connect-failed: la función Lambda impidió que se estableciera la conexión.

  • client-connect-handler-timed-out: se agotó el tiempo de espera de la función Lambda.

  • client-connect-handler-other-execution-error: la función Lambda encontró un error inesperado.

  • client-connect-handler-throttled: se aplicaron limitaciones en la función Lambda.

  • client-connect-handler-invalid-response: la función Lambda devolvió una respuesta que no era válida.

  • client-connect-handler-service-error: se produjo un error en el lado del servicio durante el intento de conexión.