Comment configurer un VPN client à l'aide de l'interface de ligne de commande AWS ?

Dernière mise à jour : 22/01/2021

Comment configurer un VPN client AWS à l'aide de l'interface de ligne de commande AWS (AWS CLI) ?

Brève description

Pour configurer un VPN client à l'aide de l'interface de ligne de commande AWS :

1.    Configurez un VPN client pour votre type d'authentification spécifique : mutuelle ou basée sur l'utilisateur.

2.    Associez un sous-réseau au VPN client que vous avez créé à l'étape 1.

3.    Ajoutez une règle d'autorisation pour accorder aux clients l'accès au virtual private cloud (VPC) cible.

4.    (Facultatif) Ajoutez des itinéraires supplémentaires vers le réseau de destination sur le point de terminaison VPN client, selon les besoins.

5.    Téléchargez le fichier de configuration du point de terminaison VPN client à distribuer à vos clients.

Résolution

Remarque : si vous recevez des message d'erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), vérifiez que vous utilisez la version la plus récente d'AWS CLI. Les actions d'API pour le service VPN client sont disponibles uniquement dans la version la plus récente de l'interface de ligne de commande AWS.

Configurer un VPN client à l'aide de l'authentification mutuelle

1.    Provisionnez le certificat de serveur et importez-le dans AWS Certificate Manager (ACM). Pour obtenir des étapes détaillées pour générer les certificats et clés du serveur et du client, voir Authentification mutuelle.

2.    Notez l'Amazon Resource Name (ARN) du certificat de serveur et l'ARN du certificat de client.

3.    Utilisez la commande create-client-vpn-endpoint. Par exemple, la commande suivante crée un point de terminaison qui utilise l'authentification mutuelle avec un bloc d’adresse CIDR client 172.16.0.0/16.

$ aws 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

Remarques :

  • Pour un bloc d’adresse CIDR IPv4 client, spécifiez une plage d'adresses IP dans la notation CIDR pour attribuer des adresses IP client. Par exemple, 172.16.0.0/16.
  • « ClientRootCertificateChainArn » est l'ARN du certificat de client. Le certificat doit être signé par une autorité de certification (CA) et provisionné dans ACM.

Configurer un VPN client à l'aide de l'authentification basée sur l'utilisateur

Authentification Active Directory (AD)

1.    Pour l'ID d'annuaire, spécifiez l'ID d'AWS Active Directory (AD).

2.    Utilisez la commande create-client-vpn-endpoint. Par exemple, la commande suivante crée un point de terminaison qui utilise l'authentification basée sur Active Directory (AD) avec un bloc d’adresse CIDR client 172.16.0.0/16.

$ aws 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

Remarques :

  • Utilisez l'option « --dns-servers » pour transmettre des serveurs DNS personnalisés pour la résolution DNS. Un point de terminaison VPN client peut avoir jusqu'à deux serveurs DNS. Si aucun serveur DNS n'est spécifié, l'adresse DNS configurée sur l'appareil local est utilisée.
  • Utilisez l'option « --transport-protocol » pour définir le protocole de transport pour la séance VPN.

Authentification fédérée (pour l'authentification fédérée basée sur SAML)

1.    Pour l'ARN du fournisseur SAML, spécifiez l'ARN du fournisseur d'identité Security Assertion Markup Language (SAML) d'AWS Identity and Access Management (IAM).

2.    Utilisez la commande create-client-vpn-endpoint. Par exemple, la commande suivante crée un point de terminaison qui utilise l'authentification fédérée avec un bloc d’adresse CIDR client 172.16.0.0/16.

$ aws 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

Remarque : « SAMLProviderArn » est l'ARN de la nouvelle ressource fournisseur SAML dans IAM.

Associer un sous-réseau au VPN client

1.    Utilisez la commande suivante pour associer un sous-réseau au point de terminaison VPN client que vous avez créé lors des étapes précédentes.

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

Cette action modifie l'état du VPN client en « Disponible ». Les routes locales pour le VPC sont automatiquement ajoutées à la table de routage du point de terminaison VPN client. Le groupe de sécurité par défaut du VPC est automatiquement appliqué à l'association de sous-réseau. Vous pouvez modifier le groupe de sécurité après avoir associé le sous-réseau.

Ajouter une règle d'autorisation pour accorder aux clients l'accès au VPC cible

1.    En fonction de votre cas d'utilisation, utilisez l'une des commandes suivantes pour ajouter une règle d'autorisation.

Pour l'authentification mutuelle :

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

Pour l'authentification basée sur Active Directory (AD) :

$ aws 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

Pour l'authentification fédérée (à l'aide de SAML 2.0 où le groupe de fournisseurs d'identité est « Engineering ») :

$ aws ec2 authorize-client-vpn-ingress --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --target-network-cidr 10.0.0.0/16 --access-group-id Engineering

(Facultatif) Ajoutez des routes supplémentaires au réseau de destination sur le point de terminaison VPN client, selon les besoins

1.    Utilisez la commande suivante pour ajouter des routes supplémentaires au réseau de destination sur le point de terminaison VPN client.

$ aws 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

Téléchargez le fichier de configuration du point de terminaison VPN client à distribuer à vos clients

1.    Téléchargez le fichier de configuration du point de terminaison VPN client à distribuer à vos clients.

Pour l'authentification mutuelle, ajoutez le certificat du client et la clé du client au fichier de configuration :

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

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?