Autorizzazione della connessione in AWS Client VPN - AWS Client VPN

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Autorizzazione della connessione in AWS Client VPN

È possibile configurare un gestore di connessione client per l'endpoint ClientVPN. L'handler consente di eseguire una logica personalizzata che autorizza una nuova connessione, in base agli attributi del dispositivo, dell'utente e della connessione. Il gestore di connessione client viene eseguito dopo che il VPN servizio Client ha autenticato il dispositivo e l'utente.

Per configurare un gestore di connessione client per l'VPNendpoint Client, create una AWS Lambda funzione che prenda come input gli attributi di dispositivo, utente e connessione e restituisca al VPN servizio Client la decisione di consentire o negare una nuova connessione. Specificate la funzione Lambda nell'endpoint ClientVPN. Quando i dispositivi si connettono all'VPNendpoint Client, il VPN servizio Client richiama la funzione Lambda per conto dell'utente. Solo le connessioni autorizzate dalla funzione Lambda possono connettersi all'endpoint ClientVPN.

Nota

Attualmente, l'unico tipo di handler delle connessioni client supportato è una funzione Lambda.

Requisiti e considerazioni

Di seguito sono riportati i requisiti e le considerazioni per l'handler delle connessioni client:

  • Il nome della funzione Lambda deve iniziare con il prefisso AWSClientVPN-.

  • Sono supportate le funzioni Lambda complete.

  • La funzione Lambda deve trovarsi nella stessa AWS regione e nello stesso AWS account dell'endpoint ClientVPN.

  • Il timeout della funzione Lambda si verifica dopo 30 secondi. Questo valore non può essere modificato.

  • La funzione Lambda viene richiamata in modo sincrono. Viene richiamata dopo l'autenticazione del dispositivo e dell'utente e prima che vengano valutate le regole di autorizzazione.

  • Se la funzione Lambda viene richiamata per una nuova connessione e il VPN servizio Client non riceve una risposta prevista dalla funzione, il VPN servizio Client nega la richiesta di connessione. Ad esempio, ciò può verificarsi se la funzione Lambda viene limitata, se si verifica un errore imprevisto o se la risposta della funzione non è in un formato valido.

  • Consigliamo di configurare la concorrenza con provisioning per la funzione Lambda per consentirne la scalabilità senza fluttuazioni di latenza.

  • Se aggiorni la funzione Lambda, le connessioni esistenti all'VPNendpoint Client non ne risentono. Puoi terminare le connessioni esistenti e quindi indicare ai client di stabilire nuove connessioni. Per ulteriori informazioni, consulta Interrompere una connessione AWS Client VPN client.

  • Se i client utilizzano il client AWS fornito per connettersi all'VPNendpoint Client, devono utilizzare la versione 1.2.6 o successiva per Windows e la versione 1.2.4 o successiva per macOS. Per ulteriori informazioni, consulta Connessione mediante il client fornito da AWS.

Interfaccia Lambda

La funzione Lambda accetta gli attributi del dispositivo, gli attributi utente e gli attributi di connessione come input dal servizio Client. VPN Deve quindi restituire al VPN servizio Client la decisione se consentire o negare la connessione.

Schema di richiesta

La funzione Lambda accetta come input un JSON blob contenente i seguenti campi.

{ "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 della connessione del client all'endpoint del clientVPN.

  • endpoint-id— L'ID dell'VPNendpoint del client.

  • common-name: l'identificatore del dispositivo. Nel certificato client creato per il dispositivo, il nome comune identifica in modo univoco il dispositivo.

  • username: l'identificatore dell'utente, se applicabile. Per l'autenticazione di Active Directory, questo è il nome utente. Per l'autenticazione federata SAML basata, questo è. NameID Per l'autenticazione reciproca, questo campo è vuoto.

  • platform: la piattaforma del sistema operativo client.

  • platform-version: la versione del sistema operativo. Il VPN servizio Client fornisce un valore quando la --push-peer-info direttiva è presente nella configurazione Open VPN client, quando i client si connettono a un VPN endpoint Client e quando il client esegue la piattaforma Windows.

  • public-ip: l'indirizzo IP pubblico del dispositivo di connessione.

  • client-openvpn-version— La VPN versione Open utilizzata dal client.

  • aws-client-version— La versione AWS del client.

  • groups: l'identificatore del gruppo, se applicabile. Per l'autenticazione Active Directory, questo sarà un elenco di gruppi di Active Directory. Per l'autenticazione federata SAML basata, si tratterà di un elenco di gruppi di provider di identità (IdP). Per l'autenticazione reciproca, questo campo è vuoto.

  • schema-version: la versione dello schema. Il valore di default è v3.

Schema di risposta

La funzione Lambda deve restituire i seguenti campi.

{ "allow": boolean, "error-msg-on-denied-connection": "", "posture-compliance-statuses": [], "schema-version": "v3" }
  • allow: obbligatorio. Un valore booleano (true | false) che indica se consentire o negare la nuova connessione.

  • error-msg-on-denied-connection: obbligatorio. Una stringa di massimo 255 caratteri che può essere utilizzata per fornire fasi e indicazioni ai client se la connessione viene negata dalla funzione Lambda. In caso di errori durante l'esecuzione della funzione Lambda (ad esempio a causa del throttling) il seguente messaggio predefinito viene restituito ai client.

    Error establishing connection. Please contact your administrator.
  • posture-compliance-statuses: obbligatorio. Se usi la funzione Lambda per la valutazione dell'assetto, questo è l'elenco degli stati per il dispositivo di collegamento. Puoi definire i nomi degli stati in base alle categorie di valutazione dell'assetto per i dispositivi, ad esempio compliant, quarantined, unknown e così via. Ogni nome può contenere al massimo 255 caratteri. È possibile specificare fino a 10 stati.

  • schema-version: obbligatorio. Versione dello schema. Il valore di default è v3.

È possibile utilizzare la stessa funzione Lambda per più VPN endpoint Client nella stessa regione.

Per ulteriori informazioni sulla creazione di una funzione Lambda, consulta Nozioni di base su AWS Lambda nella Guida per gli sviluppatori di AWS Lambda .

Utilizza il gestore Client Connect per la valutazione della postura

È possibile utilizzare il gestore di connessione client per integrare l'VPNendpoint Client con la soluzione di gestione dei dispositivi esistente per valutare la conformità posturale dei dispositivi di connessione. Affinché la funzione Lambda funzioni come gestore delle autorizzazioni del dispositivo, utilizza l'autenticazione reciproca per l'endpoint Client. VPN Crea un certificato e una chiave client univoci per ogni client (dispositivo) che si connetterà all'endpoint Client. VPN La funzione Lambda può utilizzare il nome comune univoco per il certificato client (trasmesso dal VPN servizio Client) per identificare il dispositivo e recuperarne lo stato di conformità alla postura dalla soluzione di gestione dei dispositivi. Puoi utilizzare l'autenticazione reciproca combinata con l'autenticazione basata sull'utente.

In alternativa, puoi eseguire una valutazione dell'assetto di base nella funzione Lambda stessa. Ad esempio, è possibile valutare i platform-version campi platform and che vengono passati alla funzione Lambda dal servizio ClientVPN.

Nota

Sebbene il gestore di connessione possa essere utilizzato per imporre una versione minima AWS Client VPN dell'applicazione, il campo aws-client-version del gestore di connessione è applicabile solo all' AWS Client VPN applicazione e viene compilato dalle variabili di ambiente sul dispositivo utente.

Abilita il gestore della connessione del client

Per abilitare il gestore di connessione client, crea o modifica un VPN endpoint Client e specifica l'Amazon Resource Name (ARN) della funzione Lambda. Per ulteriori informazioni, consulta Creare un AWS Client VPN endpoint e Modificare un AWS Client VPN endpoint.

Ruolo collegato ai servizi

AWS Client VPN crea automaticamente un ruolo collegato al servizio nel tuo account chiamato. AWSServiceRoleForClientVPNConnections Il ruolo dispone delle autorizzazioni per richiamare la funzione Lambda quando viene effettuata una connessione all'endpoint Client. VPN Per ulteriori informazioni, consulta Utilizzo di ruoli collegati ai servizi per AWS Client VPN.

Monitora gli errori di autorizzazione della connessione

È possibile visualizzare lo stato di autorizzazione della connessione delle connessioni all'endpoint Client. VPN Per ulteriori informazioni, consulta Visualizza le connessioni AWS Client VPN dei client.

Quando il gestore Client Connect viene utilizzato per la valutazione della postura, è inoltre possibile visualizzare gli stati di conformità alla postura dei dispositivi che si connettono all'VPNendpoint Client nei log di connessione. Per ulteriori informazioni, consulta Registrazione della connessione per un endpoint AWS Client VPN.

Se un dispositivo non ottiene l'autorizzazione della connessione, il campo connection-attempt-failure-reason nei log delle connessioni restituisce uno dei seguenti motivi di errore:

  • client-connect-failed: la funzione Lambda ha impedito di stabilire la connessione.

  • client-connect-handler-timed-out: si è verificato il timeout della funzione Lambda.

  • client-connect-handler-other-execution-error: la funzione Lambda ha riscontrato un errore imprevisto.

  • client-connect-handler-throttled: la funzione Lambda è stata limitata.

  • client-connect-handler-invalid-response: la funzione Lambda ha restituito una risposta non valida.

  • client-connect-handler-service-error: si è verificato un errore sul lato servizio durante il tentativo di connessione.