AWS Client VPN provides a fully managed, scalable VPN service that enables your remote team to securely connect to AWS resources. The solution is designed to be highly elastic, automatically scaling up or down in response to user demand, providing a reliable and efficient remote access experience.
By the end of this blog post, you will be able to establish secure communication channels between multiple VPCs using AWS Client VPN integrated with AWS SSO. AWS has provided a whitepaper that covers the high-level details of creating an AWS Client VPN architecture titled "Building a Scalable and Secure Multi-VPC" and outlines best practices. According to the AWS Whitepaper, Building a Scalable and Secure Multi-VPC AWS Network Infrastructure, network-related services should be located in a separate networking account.
https://d1.awsstatic.com/whitepapers/building-a-scalable-and-secure-multi-vpc-aws-network-infrastructure.pdf
Following the practices outlined in the whitepaper, this blog post will show you how to set up AWS Client VPN and integrate it with AWS SSO to access your resources running in a private subnet.
Overview of the Process:AWS Transit Gateway offers a central hub to connect your Amazon VPCs and on-premises networks, simplifying your network architecture and removing the complexities of peering. Acting as a scalable cloud router, Transit Gateway ensures that each new connection is established just once.
After this brief, let's take a deeper look at the architecture. The critical points of this architecture are properly configuring authorisation rules, route table routes for Client VPN, and route tables of subnets.
Before a demo, let’s discuss three essential parts of creating a Client VPN. Diagrams will help us understand what we will do in the demo part.
To summarise, we demonstrated how to configure an AWS Client VPN and a Transit Gateway in the Network account and transit gateway attachment with diagrams.
DEMOCreating SAML (Security Assertion Markup Language) providers for Amazon Client VPN is a crucial step in enabling federated authentication and single sign-on (SSO) capabilities. Two types of SAML providers are needed: one for the Client VPN and another for the Client VPN Self-Service Portal. The SAML provider for the Client VPN is used to authenticate and authorise VPN connections, while the SAML provider for the Self-Service Portal allows users to manage their own VPN connections and settings. You need the AWS Single Sign-On (AWS SSO) metadata document to set up these providers. You can download this document by navigating to the AWS SSO console, going to the "Applications" section, and selecting the relevant application. By setting up these SAML providers, you enhance security through centralised authentication and simplify user access management across your organisation.
Authentication information is the key to filling in the blanks on the Client VPN Endpoints page in the VPC section. This section will specify our authentication option for integrating AWS SSO and Client VPN. We will choose Federated authentication for user-based authentication and provide SAML provider ARN and Self-service SAML provider ARN.
We’ll add the private subnets in the VPC used by our Client VPN.
As mentioned above, we used Authorisation Rules to specify which user group can access a specific network destination. As shown below, different Group IDs were attached to different Destination VPCs.
We have three private subnets attached to the VPC used by our Client VPN. As mentioned above, we will add a route between each private subnet and the destination VPCs.
In this test, we used the AWS Client VPN application to connect the VPN. You need a configuration file that you can download from the AWS Client VPN page in the VPC section. This file ends with ovpn. Once you have this file, you can create a profile and connect it to your AWS Client VPN.
https://aws.amazon.com/vpn/client-vpn-download/
In this test, we’re trying to connect to VPC in 172.19.0.0/16 CIDR block.
In this test, we’re trying to connect to VPC in 172.20.0.0/16 CIDR block.
The Client VPN configuration with route tables, authorisation rules, and SSO integration is in place, and the connection between your private network and AWS VPC is ready. We hope this blog post helps you set up secure access to private resources in your AWS environment using AWS Client VPN and AWS SSO.