This section provides an overview, highlights pre-requisites, and walks through detailed step-by-step instructions to help you establish a site-to-site VPN connection between your on-premises network and the VPCs in your AWS environment.
Review Note: Provide a diagram that is the overview of the solution.
If you didn’t use a non-overlapping range from the start, you will need to either replace your initial set of development VPCs with VPCs that use non-overlapping IP addresses or implement Network Address Translation (NAT).
In your on-premises environment, you will need to identify a static public IP address that will be associated with your Customer Gateway that will act as the on-premises side of the VPN site-to-site connection. You’ll use this IP address in the subsequent steps when you register your Customer Gateway in your AWS environment.
You will begin by making changes in the network-prod account you set up earlier.
network-prod AWS accountManagement console associated with the AWSAdministratorAccess role.VPC and click on Customer Gateways in the left navigationCreate Customer Gateway| Field | Recommendation |
|---|---|
Name |
example-network-on-prem-01 |
Routing |
Dynamic Routing |
BGP ASN |
6500 |
IP Address |
Enter the value of the public IP Address of your on-premises gateway address for your VPN |
Certificate ARN |
Leave empty |
Device |
Leave empty |
Customer Gateway ID: Note the Customer Gateway ID for the newly created Customer Gateway. You will use this in later steps.
VPN Console administration, click on Transit Gateways in the left navigationCreate Transit Gateway| Field | Recommendation |
|---|---|
Name tag |
acme-network-tgw-01 |
Description |
Transit Gateway in order to route traffic to/from On-Prem network as well as within VPCs |
Transit Gateway ID: Please note down the Transit Gateway ID for the recently created Transit Gateway. You will use this in later steps.
VPN Console administration, click on Transit Gateway Attachments in the left navigationCreate Transit Gateway Attachment| Field | Recommendation |
|---|---|
Transit Gateway ID |
Select value from dropdown that matched the ID of the Transit Gateway you just created. |
Attachment Type |
VPN |
Customer Gateway |
Existing |
Customer Gateway ID |
Select value from dropdown that matched the ID of the Customer Gateway you just created. |
Routing options |
Dynamic (requires BGP) |
Transit Gateway Attachment Name: Once created, it is recommended to provide a name to the Transit Gateway Attachment. To do this, select the checkbox of the row for the attachment you just created. Click the pencil icon under the Name column. Enter a name (i.e. acme-routing-tgw-vpn-01).
VPN: As a result of the VPN attachment being provisioned, you will notice that a Site-to-Site VPN Connection resource has been created for the attachment.
VPN Console administration, click on Site-to-Site VPN Connections in the left navigationActions button and select Modify VPN Connection Download ConfigurationVPN Configuration: Select your Vendor, Platform, and Software from the dropdowns. If you specific vendor is not available, select Generic. As a best practice, AWS provides your configuration file with a primary and secondary VPN configuration. This allows for redundancy of your VPN connection.
Once your VPN is configured on-premises, navigate back to the Site-to-Site VPN Connections within the VPC console. Select the row of your VPN connection. At the botton of the page, select the Tunnel Details tab. Verify that the Status has changed from “DOWN” to “UP” (this may take a few minutes).
VPN Console administration, click on Transit Gateway Attachments in the left navigationCreate Transit Gateway Attachment| Field | Recommendation |
|---|---|
Transit Gateway ID |
Select value from dropdown that matched the ID of the Transit Gateway you just created. |
Attachment Type |
VPC |
DNS support |
enable (checked) |
VPC ID |
Select the value form the dropdown for that matches thee ID of the dev VPC in your account. |
Subnet IDs |
Select a subnet from each availability zone - preferrably a private subnet |
VPN Console administration, click on Route Tables under Virtual Private Cloud in the left navigationRoutes tab at the bottom of the page and click Edit routes| Field | Recommendation |
|---|---|
Destination |
Fill in with your on-premises CIDR range (i.e. 172.31.0.0/16 |
Target |
Select value from dropdown that matched the ID of the Transit Gateway you just created. |
On-premises VPN Routes: You will need to make similar types of changes to the routing rules with your on-premises infrastructure in order to route to the reserved CIDR ranges you have allocated for your AWS environment(s).
You will need to enable sharing resources within your AWS Organizations from your master account. THis will allow you to access Transit Gateway from each of your accounts created and maintained within Control Tower.
master AWS accountManagement console associated with the AWSAdministratorAccess role.Resource Access ManagerSettings in the left navigation panelEnable sharing within your AWS Organizations checkbox, then click the Save settings buttonFind your Organization ID: Navigate to AWS Organizations and click on any of the accounts to open the information panel on the right. Within the ARN, after the word account, you will see your Organization ID (starts with o-). Note this down for the next set of steps.
You will use AWS Resource Access Manager (RAM) to share your Transit Gateway for VPC attachments across your accounts and/or your organizations in AWS Organizations.
Network AWS accountManagement console associated with the AWSAdministratorAccess role.Resource Access ManagerCreate a resource share button| Field | Recommendation |
|---|---|
Name |
acme-network-tgw-share-01 |
Select resource type |
Transit Gateways (and select your Transit Gateway) |
Allow external accounts |
(checked) |
Add AWS account number, OU or organization |
Enter the Organization ID from your master account (captured in the above steps) |
VPC: If you do not already have a VPC in your account, please create one.
Management console associated with the AWSAdministratorAccess role.VPC and click on Transit Gateway Attachments in the left navigationCreate Transit Gateway Attachment| Field | Recommendation |
|---|---|
Transit Gateway ID |
Select value from dropdown that matched the ID of the Transit Gateway you just created. |
Attachment Type |
VPC |
DNS support |
enable (checked) |
VPC ID |
Select the value form the dropdown for that matches thee ID of the dev VPC in your account. |
Subnet IDs |
Select a subnet from each availability zone - preferrably a private subnet |

Transit Gateway Attachment - Pending Acceptance: If your account is not setup as Auto accept shared attachments: enable, after you create the Transit Gateway Attachment, the status will show as pending acceptance. You will need to log into your Network account and accept the Transit Gateway Attachment by selecting it in the VPC console and going to Actions|Accept. Once this is done, the VPC will show up under the Transit Gateway Route Table - Associations.
Transit Gateway Route Tables - Propagations: If your Transit Gateway is configured for Default propagation route table: enable. If not, you will need to log into your Network account, navigate to the Transit Gateway Route Tables, select your route table, go to the Propagations tab, and create a new propagation to the VPC in your attachment account.
Management console associated with the AWSAdministratorAccess role.VPC and click on Route Tables in the left navigationRoutes tab at the bottom of the page and click Edit routes| Field | Recommendation |
|---|---|
Destination |
Fill in with your on-premises CIDR range (i.e. 172.31.0.0/16 |
Target |
Select value from dropdown that matched the ID of the Transit Gateway you just created. |
Repeat for additional accounts: You will repeat steps 9 and 10 for each of the accounts within your organization that you want to be able to communicate with your on-premises network.