Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verbindungsautorisierung in AWS Client VPN
Sie können einen Client-Connect-Handler für Ihren VPN Client-Endpunkt konfigurieren. Mit dem Handler können Sie eine benutzerdefinierte Logik ausführen, die eine neue Verbindung basierend auf Geräte-, Benutzer- und Verbindungsattributen autorisiert. Der Client-Connect-Handler wird ausgeführt, nachdem der VPN Client-Dienst das Gerät und den Benutzer authentifiziert hat.
Um einen Client-Connect-Handler für Ihren VPN Client-Endpunkt zu konfigurieren, erstellen Sie eine AWS Lambda Funktion, die Geräte-, Benutzer- und Verbindungsattribute als Eingaben verwendet und eine Entscheidung an den VPN Client-Dienst zurückgibt, ob eine neue Verbindung zugelassen oder verweigert werden soll. Sie geben die Lambda-Funktion in Ihrem VPN Client-Endpunkt an. Wenn Geräte eine Verbindung zu Ihrem VPN Client-Endpunkt herstellen, ruft der VPN Client-Dienst die Lambda-Funktion in Ihrem Namen auf. Nur Verbindungen, die von der Lambda-Funktion autorisiert wurden, dürfen eine Verbindung zum VPN Client-Endpunkt herstellen.
Anmerkung
Derzeit ist der einzige unterstützte Client-Connect-Handler-Typ eine Lambda-Funktion.
Anforderungen und Überlegungen
Nachfolgend werden Anforderungen und Überlegungen für den Client-Connect-Handler aufgeführt:
-
Der Name der Lambda-Funktion muss mit dem
AWSClientVPN-
-Präfix beginnen. -
Qualifizierte Lambda-Funktionen werden unterstützt.
-
Die Lambda-Funktion muss sich in derselben AWS Region und demselben AWS Konto wie der VPN Client-Endpunkt befinden.
-
Die Lambda-Funktion läuft nach 30 Sekunden ab. Dieser Wert kann nicht geändert werden.
-
Die Lambda-Funktion wird synchron aufgerufen. Er wird nach der Geräte- und Benutzerauthentifizierung und vor der Auswertung der Autorisierungsregeln aufgerufen.
-
Wenn die Lambda-Funktion für eine neue Verbindung aufgerufen wird und der VPN Client-Dienst keine erwartete Antwort von der Funktion erhält, lehnt der VPN Client-Dienst die Verbindungsanforderung ab. Dies kann beispielsweise auftreten, wenn die Lambda-Funktion gedrosselt wird, ein Timeout auftritt oder auf andere unerwartete Fehler trifft oder wenn die Antwort der Funktion nicht in einem gültigen Format vorliegt.
-
Wir empfehlen, dass Sie die bereitgestellte Parallelität für die Lambda-Funktion konfigurieren, damit sie ohne Latenzschwankungen skaliert werden kann.
-
Wenn Sie Ihre Lambda-Funktion aktualisieren, sind bestehende Verbindungen zum VPN Client-Endpunkt nicht betroffen. Sie können die bestehenden Verbindungen beenden und Ihre Clients dann anweisen, neue Verbindungen herzustellen. Weitere Informationen finden Sie unter Eine AWS Client VPN Client-Verbindung beenden.
-
Wenn Clients den AWS bereitgestellten Client verwenden, um eine Verbindung zum VPN Client-Endpunkt herzustellen, müssen sie Version 1.2.6 oder höher für Windows und Version 1.2.4 oder höher für macOS verwenden. Weitere Informationen finden Sie unter Verbinden mit dem von AWS bereitgestellten Client.
Lambda-Schnittstelle
Die Lambda-Funktion verwendet Geräteattribute, Benutzerattribute und Verbindungsattribute als Eingaben vom VPN Client-Dienst. Anschließend muss sie eine Entscheidung an den VPN Client-Dienst zurücksenden, ob die Verbindung zugelassen oder verweigert werden soll.
Anfrageschema
Die Lambda-Funktion verwendet einen JSON Blob mit den folgenden Feldern als Eingabe.
{ "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
— Die ID der Client-Verbindung zum Client-Endpunkt. VPN -
endpoint-id
— Die ID des VPN Client-Endpunkts. -
common-name
– Die Geräte-ID. In dem Client-Zertifikat, das Sie für das Gerät erstellen, identifiziert der allgemeine Name das Gerät eindeutig. -
username
– Die Benutzer-ID, falls zutreffend. Bei der Active Directory-Authentifizierung ist dies der Benutzername. Für die SAML basierte Verbundauthentifizierung istNameID
dies. Bei gegenseitiger Authentifizierung ist dieses Feld leer. -
platform
– Die Client-Betriebssystemplattform. -
platform-version
– Die Version des Betriebssystems. Der VPN Client-Dienst stellt einen Wert bereit, wenn die--push-peer-info
Direktive in der VPN Open-Client-Konfiguration vorhanden ist, wenn Clients eine Verbindung zu einem VPN Client-Endpunkt herstellen und wenn der Client die Windows-Plattform ausführt. -
public-ip
– Die öffentliche IP-Adresse des sich verbindenden Geräts. -
client-openvpn-version
— Die vom Client verwendete VPN Open-Version. -
aws-client-version
— Die AWS Client-Version. -
groups
– Die Gruppen-ID, falls zutreffend. Bei der Active-Directory-Authentifizierung ist dies eine Liste mit Active-Directory-Gruppen. Bei der SAML basierten Verbundauthentifizierung ist dies eine Liste von Identitätsanbieter-Gruppen (IdP). Bei gegenseitiger Authentifizierung ist dieses Feld leer. -
schema-version
– Die Schema-Version Der Standardwert istv3
.
Antwortschema
Die Lambda-Funktion muss die folgenden Felder zurückgeben.
{ "allow":
boolean
, "error-msg-on-denied-connection": "", "posture-compliance-statuses": [], "schema-version": "v3
" }
-
allow
– Erforderlich. Ein boolescher Wert (true
|false
), der angibt, ob die neue Verbindung zugelassen oder verweigert werden soll. -
error-msg-on-denied-connection
– Erforderlich. Eine Zeichenfolge von bis zu 255 Zeichen, die verwendet werden kann, um den Clients Schritte und Anleitungen zu übermitteln, wenn die Verbindung von der Lambda-Funktion verweigert wird. Bei Ausfällen während der Ausführung der Lambda-Funktion (z. B. aufgrund einer Drosselung) wird die folgende Standardnachricht an Clients zurückgegeben.Error establishing connection. Please contact your administrator.
-
posture-compliance-statuses
– Erforderlich. Wenn Sie die Lambda-Funktion für das Posture Assessment verwenden, ist dies eine Liste der Status für das sich verbindende Gerät. Sie definieren die Statusnamen entsprechend Ihren Posture Assessment-Kategorien für Geräte, z. B.compliant
,quarantined
,unknown
usw. Jeder Name kann bis zu 255 Zeichen lang sein. Sie können bis zu 10 Status angeben. -
schema-version
– Erforderlich. Die Schemaversion. Der Standardwert istv3
.
Sie können dieselbe Lambda-Funktion für mehrere VPN Client-Endpunkte in derselben Region verwenden.
Weitere Informationen zum Erstellen einer Lambda-Funktion finden Sie unter Erste Schritte mit AWS Lambda im AWS Lambda -Entwicklerhandbuch.
Verwenden Sie den Client Connect-Handler für die Beurteilung der Körperhaltung
Sie können den Client-Connect-Handler verwenden, um Ihren VPN Client-Endpunkt in Ihre bestehende Geräteverwaltungslösung zu integrieren, um die Konformität der Verbindungsgeräte zu bewerten. Verwenden Sie die gegenseitige Authentifizierung für Ihren VPN Client-Endpunkt, damit die Lambda-Funktion als Geräteautorisierungshandler funktioniert. Erstellen Sie für jeden Client (Gerät), der eine Verbindung zum VPN Client-Endpunkt herstellt, ein eindeutiges Client-Zertifikat und einen eindeutigen Schlüssel. Die Lambda-Funktion kann den eindeutigen allgemeinen Namen für das Client-Zertifikat (das vom VPN Client-Dienst übergeben wurde) verwenden, um das Gerät zu identifizieren und seinen Status Compliance Status von Ihrer Geräteverwaltungslösung abzurufen. Sie können die gegenseitige Authentifizierung in Kombination mit einer benutzerbasierten Authentifizierung verwenden.
Alternativ können Sie ein grundlegendes Posture Assessment in der Lambda-Funktion selbst vornehmen. Sie können beispielsweise die platform-version
Felder platform
und auswerten, die vom VPN Client-Dienst an die Lambda-Funktion übergeben werden.
Anmerkung
Der Verbindungshandler kann zwar verwendet werden, um eine Mindestversion der AWS Client VPN Anwendung zu erzwingen, aber das Feld aws-client-version
im Verbindungshandler gilt nur für die AWS Client VPN Anwendung und wird anhand von Umgebungsvariablen auf dem Benutzergerät gefüllt.
Aktivieren Sie den Client-Connect-Handler
Um den Client-Connect-Handler zu aktivieren, erstellen oder ändern Sie einen VPN Client-Endpunkt und geben Sie den Amazon-Ressourcennamen (ARN) der Lambda-Funktion an. Weitere Informationen erhalten Sie unter Einen AWS Client VPN Endpunkt erstellen und Einen AWS Client VPN Endpunkt ändern.
Serviceverknüpfte Rolle
AWS Client VPN erstellt automatisch eine serviceverknüpfte Rolle in Ihrem Konto namens. AWSServiceRoleForClientVPNConnections Die Rolle ist berechtigt, die Lambda-Funktion aufzurufen, wenn eine Verbindung zum VPN Client-Endpunkt hergestellt wird. Weitere Informationen finden Sie unter Verwenden von serviceverknüpften Rollen für AWS Client VPN.
Überwachen Sie Fehler bei der Verbindungsautorisierung
Sie können den Status der Verbindungsautorisierung von Verbindungen zum VPN Client-Endpunkt einsehen. Weitere Informationen finden Sie unter AWS Client VPN Client-Verbindungen anzeigen.
Wenn der Client-Connect-Handler für die Statusbeurteilung verwendet wird, können Sie in den Verbindungsprotokollen auch den Status der Konformität von Geräten einsehen, die eine Verbindung zu Ihrem VPN Client-Endpunkt herstellen. Weitere Informationen finden Sie unter Verbindungsprotokollierung für einen AWS Client VPN Endpunkt.
Wenn ein Gerät die Verbindungsautorisierung nicht besteht, gibt das connection-attempt-failure-reason
-Feld in den Verbindungsprotokollen einen der folgenden Fehlergründe zurück:
-
client-connect-failed
– Die Lambda-Funktion verhinderte, dass die Verbindung hergestellt wurde. client-connect-handler-timed-out
– Die Lambda-Funktion hat das Zeitlimit überschritten.client-connect-handler-other-execution-error
– Die Lambda-Funktion ist auf einen unerwarteten Fehler gestoßen.client-connect-handler-throttled
– Die Lambda-Funktion wurde gedrosselt.client-connect-handler-invalid-response
– Die Lambda-Funktion gab eine ungültige Antwort zurück.client-connect-handler-service-error
– Während des Verbindungsversuchs ist ein serviceseitiger Fehler aufgetreten.