Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Autorisation de connexion dans AWS Client VPN
Vous pouvez configurer un gestionnaire de connexion client pour votre point de VPN terminaison client. Ce gestionnaire vous permet d'exécuter une logique personnalisée qui autorise une nouvelle connexion, en fonction des attributs de périphérique, d'utilisateur et de connexion. Le gestionnaire de connexion client s'exécute une fois que le VPN service client a authentifié l'appareil et l'utilisateur.
Pour configurer un gestionnaire de connexion client pour votre point de VPN terminaison client, créez une AWS Lambda fonction qui prend les attributs de l'appareil, de l'utilisateur et de la connexion comme entrées, et renvoie une décision au VPN service client d'autoriser ou de refuser une nouvelle connexion. Vous spécifiez la fonction Lambda dans le point de terminaison de votre clientVPN. Lorsque des appareils se connectent à votre point de VPN terminaison client, le VPN service client appelle la fonction Lambda en votre nom. Seules les connexions autorisées par la fonction Lambda sont autorisées à se connecter au point de terminaison du clientVPN.
Note
Actuellement, le seul type de gestionnaire de connexion client pris en charge est une fonction Lambda.
Exigences et considérations
Voici les exigences et considérations relatives au gestionnaire de connexion client :
-
Le nom de la fonction Lambda doit commencer par le préfixe
AWSClientVPN-
. -
Les fonctions Lambda qualifiées sont prises en charge.
-
La fonction Lambda doit se trouver dans la même AWS région et sur le même AWS compte que le point de terminaison du clientVPN.
-
La fonction Lambda expire après 30 secondes. Cette valeur ne peut pas être modifiée.
-
La fonction Lambda est appelée de manière synchrone. Elle est appelée après l'authentification du périphérique et de l'utilisateur, et avant l'évaluation des règles d'autorisation.
-
Si la fonction Lambda est invoquée pour une nouvelle connexion et que le VPN service client n'obtient pas de réponse attendue de la part de la fonction, le VPN service client refuse la demande de connexion. Par exemple, ceci peut se produire si la fonction Lambda est limitée, expire ou rencontre d'autres erreurs inattendues, ou si la réponse de la fonction n'est pas dans un format valide.
-
Nous vous recommandons de configurer la simultanéité allouée pour la fonction Lambda afin qu'elle puisse être mise à l'échelle sans fluctuations de latence.
-
Si vous mettez à jour votre fonction Lambda, les connexions existantes au point de VPN terminaison client ne sont pas affectées. Vous pouvez résilier les connexions existantes, puis demander à vos clients d'établir de nouvelles connexions. Pour de plus amples informations, veuillez consulter Mettre fin à une connexion AWS Client VPN client.
-
Si les clients utilisent le client AWS fourni pour se connecter au point de VPN terminaison client, ils doivent utiliser la version 1.2.6 ou ultérieure pour Windows, et la version 1.2.4 ou ultérieure pour macOS. Pour plus d'informations, consultez Se connecter à l'aide d'un client fourni par AWS.
Interface Lambda
La fonction Lambda prend les attributs de l'appareil, les attributs utilisateur et les attributs de connexion en tant qu'entrées du service clientVPN. Il doit ensuite renvoyer une décision au VPN service client d'autoriser ou de refuser la connexion.
Schéma de la demande
La fonction Lambda prend en entrée un JSON blob contenant les champs suivants.
{ "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
— L'ID de la connexion du client au point de VPN terminaison du client. -
endpoint-id
— L'ID du point de VPN terminaison du client. -
common-name
— Identifiant du périphérique. Dans le certificat client que vous créez pour le périphérique, le nom commun identifie le périphérique de manière unique. -
username
— Identifiant de l'utilisateur, le cas échéant. Pour l'authentification Active Directory, il s'agit du nom d'utilisateur. Pour l'authentification fédérée SAML basée, c'estNameID
le cas. Pour l'authentification mutuelle, ce champ est vide. -
platform
— Plateforme du système d'exploitation client. -
platform-version
— Version du système d’exploitation. Le VPN service client fournit une valeur lorsque la--push-peer-info
directive est présente dans la configuration du VPN client Open lorsque les clients se connectent à un point de VPN terminaison client et lorsque le client exécute la plate-forme Windows. -
public-ip
— Adresse IP publique du périphérique qui se connecte. -
client-openvpn-version
— La VPN version Open utilisée par le client. -
aws-client-version
— La version AWS du client. -
groups
— Identifiant du groupe, le cas échéant. Pour l'authentification Active Directory, il s'agit d'une liste de groupes Active Directory. Pour l'authentification fédérée SAML basée, il s'agira d'une liste de groupes de fournisseurs d'identité (IdP). Pour l'authentification mutuelle, ce champ est vide. -
schema-version
— Version du schéma. La valeur par défaut estv3
.
Schéma de la réponse
La fonction Lambda doit renvoyer les champs suivants.
{ "allow":
boolean
, "error-msg-on-denied-connection": "", "posture-compliance-statuses": [], "schema-version": "v3
" }
-
allow
— Obligatoire. Booléen (true
|false
) qui indique s'il faut autoriser ou refuser la nouvelle connexion. -
error-msg-on-denied-connection
— Obligatoire. Chaîne de 255 caractères maximum qui peut être utilisée pour fournir des étapes et des conseils aux clients si la connexion est refusée par la fonction Lambda. En cas d'échec lors de l'exécution de la fonction Lambda (par exemple, en raison de la limitation), le message par défaut suivant est renvoyé aux clients.Error establishing connection. Please contact your administrator.
-
posture-compliance-statuses
— Obligatoire. Si vous utilisez la fonction Lambda pour évaluer la posture, ceci est une liste des états pour le périphérique qui se connecte. Vous définissez les noms d'états en fonction de vos catégories d'évaluation de posture pour les périphériques, par exemplecompliant
,quarantined
,unknown
, etc. Chaque nom peut contenir jusqu'à 255 caractères. Vous pouvez spécifier jusqu'à 10 statuts. -
schema-version
— Obligatoire. Version du schéma. La valeur par défaut estv3
.
Vous pouvez utiliser la même fonction Lambda pour plusieurs VPN points de terminaison clients dans la même région.
Pour plus d'informations sur la création d'une fonction Lambda, consultez Mise en route avec AWS Lambda dans le Guide du développeur AWS Lambda .
Utiliser le gestionnaire de connexion client pour évaluer la posture
Vous pouvez utiliser le gestionnaire de connexion client pour intégrer votre point de VPN terminaison client à votre solution de gestion des appareils existante afin d'évaluer la conformité de posture des appareils connectés. Pour que la fonction Lambda fonctionne comme un gestionnaire d'autorisation d'appareil, utilisez l'authentification mutuelle pour le point de terminaison de votre client. VPN Créez un certificat client et une clé uniques pour chaque client (appareil) qui se connectera au point de VPN terminaison du client. La fonction Lambda peut utiliser le nom commun unique du certificat client (transmis par le VPN service client) pour identifier l'appareil et récupérer son état de conformité à la posture depuis votre solution de gestion des appareils. Vous pouvez utiliser l'authentification mutuelle combinée à l'authentification basée sur l'utilisateur.
Vous pouvez également effectuer une évaluation de la posture de base dans la fonction Lambda elle-même. Par exemple, vous pouvez évaluer les platform-version
champs platform
et transmis à la fonction Lambda par le service clientVPN.
Note
Bien que le gestionnaire de connexion puisse être utilisé pour imposer une version minimale de AWS Client VPN l'application, le champ aws-client-version
du gestionnaire de connexion ne s'applique qu'à l' AWS Client VPN application et est renseigné à partir de variables d'environnement sur l'appareil utilisateur.
Activer le gestionnaire de connexion client
Pour activer le gestionnaire de connexion client, créez ou modifiez un point de VPN terminaison client et spécifiez le nom de ressource Amazon (ARN) de la fonction Lambda. Pour plus d’informations, consultez Création d'un AWS Client VPN point de terminaison et Modifier un AWS Client VPN point de terminaison.
Rôle lié à un service
AWS Client VPN crée automatiquement un rôle lié à un service dans votre compte appelé. AWSServiceRoleForClientVPNConnections Le rôle est autorisé à invoquer la fonction Lambda lorsqu'une connexion est établie avec le point de terminaison du clientVPN. Pour de plus amples informations, veuillez consulter Utilisation de rôles liés à un service pour AWS Client VPN.
Surveiller les échecs d'autorisation de connexion
Vous pouvez consulter l'état d'autorisation de connexion des connexions au point de VPN terminaison du client. Pour de plus amples informations, veuillez consulter Afficher les connexions AWS Client VPN client.
Lorsque le gestionnaire de connexion client est utilisé pour évaluer la posture, vous pouvez également consulter les états de conformité de posture des appareils qui se connectent à votre point de VPN terminaison client dans les journaux de connexion. Pour de plus amples informations, veuillez consulter Journalisation des connexions pour un AWS Client VPN point de terminaison.
Si un périphérique échoue l'autorisation de connexion, le champ connection-attempt-failure-reason
dans les journaux de connexion renvoie l'une des raisons d'échec suivantes :
-
client-connect-failed
— La fonction Lambda a empêché l'établissement de la connexion. client-connect-handler-timed-out
— La fonction Lambda a expiré.client-connect-handler-other-execution-error
— La fonction Lambda a rencontré une erreur inattendue.client-connect-handler-throttled
— La fonction Lambda a été limitée.client-connect-handler-invalid-response
— La fonction Lambda a renvoyé une réponse non valide.client-connect-handler-service-error
— Une erreur côté service s'est produite lors de la tentative de connexion.