Wie verwende ich die AWS-CLI, um ein Client-VPN zu konfigurieren?

Lesedauer: 4 Minute
0

Ich möchte die AWS-Befehlszeilenschnittstelle (AWS CLI) verwenden, um ein AWS-Client-VPN zu konfigurieren.

Behebung

**Hinweis:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, finden Sie weitere Informationen unter Troubleshoot AWS CLI errors. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden. API-Aktionen für den Client-VPN-Service sind nur in der neuesten AWS-CLI-Version verfügbar.

Konfiguration eines Client-VPN mithilfe der gegenseitigen Authentifizierung

Gehen Sie wie folgt vor, um ein Client-VPN mit gegenseitiger Authentifizierung zu konfigurieren:

  1. Generieren Sie Server- und Client-Zertifikate und laden Sie die Zertifikate dann in AWS Certificate Manager (ACM) hoch.
  2. Notieren Sie sich den ARN des Serverzertifikats und den ARN des Client-Zertifikats.
  3. Verwenden Sie den Befehl create-client-vpn-endpoint. Der folgende Befehl erstellt beispielsweise einen Endpunkt, der die gegenseitige Authentifizierung mit einem Client-CIDR-Block von 172.16.0.0/16 verwendet:
    $ aws --region us-east-1 ec2 create-client-vpn-endpoint --client-cidr-block 172.16.0.0/16 --server-certificate-arn arn:aws:acm:us-east-1:1234567890:certificate/abc1d23e-45fa-678b-9cd0-ef123a45b678 --authentication-options Type=certificate-authentication,MutualAuthentication={ClientRootCertificateChainArn=arn:aws:acm:us-east-1:1234567890:certificate/abc1d23e-45fa-678b-9cd0-ef123a45b678} --connection-log-options Enabled=false

Hinweis:

  • Geben Sie für einen Client-IPv4-CIDR-Block einen IP-Adressbereich in CIDR-Notation an, um Client-IP-Adressen zuzuweisen.
  • ClientRootCertificateChainArn ist der ARN für das Client-Zertifikat. Eine Zertifizierungsstelle (CA) muss das Zertifikat signieren, und Sie müssen das Zertifikat in ACM generieren.
  • AWS Client VPN ist spezifisch für die AWS-Region. Die Region Ihres VPN muss mit der Region Ihres Zertifikats übereinstimmen.

Konfiguration eines Client-VPN mithilfe der benutzerbasierten Authentifizierung

Active Directory-Authentifizierung

Gehen Sie wie folgt vor, um ein Client-VPN mit Active Directory-Authentifizierung zu konfigurieren:

  1. Geben Sie für die Verzeichnis-ID die ID des AWS Active Directory an.
  2. Verwenden Sie den Befehl create-client-vpn-endpoint. Der folgende Befehl erstellt beispielsweise einen Endpunkt, der die Active Directory-basierte Authentifizierung mit einem Client-CIDR-Block von 172.16.0.0/16 verwendet:
    $ aws --region us-east-1 ec2 create-client-vpn-endpoint --client-cidr-block 172.16.0.0/16 --server-certificate-arn arn:aws:acm:us-east-1:1234567890:certificate/abc1d23e-45fa-678b-9cd0-ef123a45b678 --authentication-options Type=directory-service-authentication,ActiveDirectory={DirectoryId=d-1234567890} --connection-log-options Enabled=false

Hinweis:

  • Verwenden Sie die Option —dns-servers, um benutzerdefinierte DNS-Server für die DNS-Auflösung zu übergeben. Ein Client-VPN-Endpunkt kann bis zu zwei DNS-Server haben. Wenn Sie keinen DNS-Server angeben, wird die DNS-Adresse verwendet, die auf dem lokalen Gerät konfiguriert ist.
  • Verwenden Sie die Option —transport-protocol, um das Transportprotokoll für die VPN-Sitzung festzulegen.

Verbundauthentifizierung (für SAML-basierte Verbundauthentifizierung)

Gehen Sie wie folgt vor, um ein Client-VPN mit Verbundauthentifizierung zu konfigurieren:

  1. Geben Sie für den SAML-Anbieter-ARN den ARN des Security Assertion Markup Language (SAML)-Identitätsanbieters von AWS Identity and Access Management (IAM) an.
  2. Verwenden Sie den Befehl create-client-vpn-endpoint. Der folgende Befehl erstellt beispielsweise einen Endpunkt, der die Verbundauthentifizierung mit einem Client-CIDR-Block von 172.16.0.0/16 verwendet:
    $ aws --region us-east-1 ec2 create-client-vpn-endpoint --client-cidr-block 172.16.0.0/16 --server-certificate-arn arn:aws:acm:us-east-1:1234567890:certificate/abc1d23e-45fa-678b-9cd0-ef123a45b678 --authentication-options Type=federated-authentication,FederatedAuthentication={SAMLProviderArn=arn:aws:iam::123456789012:saml-provider/MySAMLProvider} --connection-log-options Enabled=false
    Hinweis: Ersetzen Sie SAMLProviderArn durch den ARN der SAML-Provider-Ressource in IAM und MySAMLProvider durch den Namen Ihres SAML-Anbieters.

Dem Client-VPN ein Subnetz zuordnen

Führen Sie den Befehl associate-client-vpn-target-network aus, um dem Client-VPN-Endpunkt ein Subnetz zuzuordnen:

$  aws --region us-east-1 ec2 associate-client-vpn-target-network --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --subnet-id subnet-0123456789abc123

Diese Aktion ändert den Status des Client-VPN auf Verfügbar. Lokale Routen für die Virtual Private Cloud (VPC) werden automatisch zur Routingtabelle für Client-VPN-Endpunkte hinzugefügt. Die Standardsicherheitsgruppe der VPC wird automatisch für die Subnetzzuordnung angewendet. Sie können die Sicherheitsgruppe ändern, nachdem Sie das Subnetz verknüpft haben.

Fügen Sie eine Autorisierungsregel hinzu, um Clients Zugriff auf die Ziel-VPC zu gewähren

Um eine Autorisierungsregel hinzuzufügen, führen Sie den Befehl authorize-client-vpn-ingress für die von Ihnen verwendete Authentifizierung aus:

Gegenseitige Authentifizierung

$ aws --region us-east-1 ec2 authorize-client-vpn-ingress --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --target-network-cidr 10.0.0.0/16 --authorize-all-groups

Active Directory-Authentifizierung

$ aws --region us-east-1 ec2 authorize-client-vpn-ingress --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --target-network-cidr 10.0.0.0/16 --access-group-id S-1-2-34-1234567890-1234567890-1234567890-1234

Verbundauthentifizierung (SAML 2.0)

$ aws --region us-east-1 ec2 authorize-client-vpn-ingress --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --target-network-cidr 10.0.0.0/16 --access-group-id MyAccessGroup

**Hinweis:**Ersetzen Sie MyAccessGroup durch die Zugriffsgruppen-ID der Providergruppe.

(Optional) Führen Sie den Befehl create-client-vpn-route aus, um zusätzliche Routen zum Zielnetzwerk auf dem Client-VPN-Endpunkt hinzuzufügen:

$ aws --region us-east-1 ec2 create-client-vpn-route --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --destination-cidr-block 0.0.0.0/0 --target-vpc-subnet-id subnet-0123456789abcabca

Exportieren der Konfigurationsdatei für den Client-VPN-Endpunkt

Exportieren Sie die Konfigurationsdatei für den Client-VPN-Endpunkt. Verwenden Sie diese Datei, um sie an Ihre Kunden zu verteilen.

**Hinweis:**Wenn Sie Ihr Client-VPN mit gegenseitiger Authentifizierung konfiguriert haben, führen Sie den Befehl export-client-vpn-client-configuration aus, um das Client-Zertifikat und den Client-Schlüssel an die Konfigurationsdatei anzuhängen:

$ aws --region us-east-1 ec2 export-client-vpn-client-configuration --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --output text > client-config.ovpn