<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: nao1515</title>
    <description>The latest articles on DEV Community by nao1515 (@1515_1c22035d85e1ae3d).</description>
    <link>https://dev.to/1515_1c22035d85e1ae3d</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3910241%2F4095cc76-9846-43b8-ba05-eefd2084cc60.jpg</url>
      <title>DEV Community: nao1515</title>
      <link>https://dev.to/1515_1c22035d85e1ae3d</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/1515_1c22035d85e1ae3d"/>
    <language>en</language>
    <item>
      <title>Connect to RDS (PostgreSQL) in a Private Subnet via AWS Client VPN</title>
      <dc:creator>nao1515</dc:creator>
      <pubDate>Sun, 03 May 2026 17:09:53 +0000</pubDate>
      <link>https://dev.to/1515_1c22035d85e1ae3d/connect-to-rds-postgresql-in-a-private-subnet-via-aws-client-vpn-346o</link>
      <guid>https://dev.to/1515_1c22035d85e1ae3d/connect-to-rds-postgresql-in-a-private-subnet-via-aws-client-vpn-346o</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Placing RDS in a &lt;strong&gt;private subnet&lt;/strong&gt; protects it from unauthorized external access — but it also means you can no longer connect directly from your developer machine.&lt;/p&gt;

&lt;p&gt;This article walks you through a step-by-step guide to securely connect to a private-subnet RDS (PostgreSQL) instance using &lt;strong&gt;AWS Client VPN&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Architecture Overview
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Developer PC
  │
  │  UDP 443 (TLS / Mutual Certificate Authentication)
  ▼
Client VPN Endpoint (Public Subnet)
  │
  │  Authorization Rule + Route Table
  ▼
Private Subnet
  │
  │  SG: Port 5432 allowed from Client CIDR
  ▼
Amazon RDS (PostgreSQL)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;VPC CIDR&lt;/td&gt;
&lt;td&gt;&lt;code&gt;10.0.0.0/16&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Public Subnet&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;10.0.0.0/24&lt;/code&gt; (for VPN association)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Private Subnet&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;10.0.1.0/24&lt;/code&gt; (for RDS)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Client CIDR&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;10.100.0.0/22&lt;/code&gt; (IP range assigned to VPN clients)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DB Engine&lt;/td&gt;
&lt;td&gt;PostgreSQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Port&lt;/td&gt;
&lt;td&gt;5432&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Step 1: Create Certificates and Import to ACM
&lt;/h2&gt;

&lt;p&gt;Generate server and client certificates using Easy-RSA.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/OpenVPN/easy-rsa.git
&lt;span class="nb"&gt;cd &lt;/span&gt;easy-rsa/easyrsa3

./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa build-server-full server nopass
./easyrsa build-client-full client1 nopass
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Import the generated certificates into ACM.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Server certificate&lt;/span&gt;
aws acm import-certificate &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--certificate&lt;/span&gt; fileb://pki/issued/server.crt &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--private-key&lt;/span&gt; fileb://pki/private/server.key &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--certificate-chain&lt;/span&gt; fileb://pki/ca.crt &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--region&lt;/span&gt; ap-northeast-1

&lt;span class="c"&gt;# Client certificate&lt;/span&gt;
aws acm import-certificate &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--certificate&lt;/span&gt; fileb://pki/issued/client1.crt &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--private-key&lt;/span&gt; fileb://pki/private/client1.key &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--certificate-chain&lt;/span&gt; fileb://pki/ca.crt &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--region&lt;/span&gt; ap-northeast-1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Important&lt;/strong&gt;: The ACM region must match the region where you create the Client VPN endpoint.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Step 2: Create the Client VPN Endpoint
&lt;/h2&gt;

&lt;p&gt;Go to &lt;strong&gt;AWS Management Console → VPC → Client VPN Endpoints → Create&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Client IPv4 CIDR&lt;/td&gt;
&lt;td&gt;&lt;code&gt;10.100.0.0/22&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server Certificate ARN&lt;/td&gt;
&lt;td&gt;Server certificate imported in ACM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Authentication Type&lt;/td&gt;
&lt;td&gt;Mutual Authentication (client certificate)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Client Certificate ARN&lt;/td&gt;
&lt;td&gt;Client certificate imported in ACM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DNS Server&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;10.0.0.2&lt;/code&gt; (VPC DNS)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Protocol&lt;/td&gt;
&lt;td&gt;UDP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Split Tunnel&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Enabled&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Why enable Split Tunnel?&lt;/strong&gt; Only traffic destined for the VPC is routed through the VPN. This avoids impacting regular internet traffic and improves performance.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Step 3: Associate a Target Network
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Client VPN Endpoint → Target Network Associations → Associate&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Subnet to associate: Public Subnet (10.0.0.0/24)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 4: Add Authorization Rules and Routes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Authorization Rule
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Client VPN Endpoint → Authorization Rules → Add Authorization Rule&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Destination CIDR&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;10.0.1.0/24&lt;/code&gt; (RDS subnet)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Grant access to&lt;/td&gt;
&lt;td&gt;All users&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Add Route
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Client VPN Endpoint → Route Table → Create Route&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Route Destination&lt;/td&gt;
&lt;td&gt;&lt;code&gt;10.0.1.0/24&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Target Subnet&lt;/td&gt;
&lt;td&gt;The subnet associated in Step 3&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Step 5: Configure Security Groups
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Client VPN Endpoint SG
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;No inbound rules needed for the Client VPN endpoint SG.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because Client VPN is a managed AWS service, you do &lt;strong&gt;not&lt;/strong&gt; need to add an inbound rule for UDP 443 to its security group. Only outbound rules are required.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Direction&lt;/th&gt;
&lt;th&gt;Protocol&lt;/th&gt;
&lt;th&gt;Port&lt;/th&gt;
&lt;th&gt;Target&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Outbound&lt;/td&gt;
&lt;td&gt;All&lt;/td&gt;
&lt;td&gt;All&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0.0.0.0/0&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  RDS Security Group (Critical)
&lt;/h3&gt;

&lt;p&gt;You &lt;strong&gt;must&lt;/strong&gt; allow inbound traffic from the Client CIDR to the RDS security group.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Direction&lt;/th&gt;
&lt;th&gt;Protocol&lt;/th&gt;
&lt;th&gt;Port&lt;/th&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Inbound&lt;/td&gt;
&lt;td&gt;TCP&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;5432&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;10.100.0.0/22&lt;/code&gt; (Client CIDR)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;This is the most important step.&lt;/strong&gt; Without allowing port 5432 from the Client CIDR in the RDS security group, the connection will never succeed — no matter how correctly the VPN is configured.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Step 6: Prepare the Client Configuration File
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Download the .ovpn File
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Client VPN Endpoint → Download Client Configuration&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Append Certificate Information
&lt;/h3&gt;

&lt;p&gt;Add the client certificate and private key to the end of the downloaded &lt;code&gt;.ovpn&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# View certificate contents&lt;/span&gt;
&lt;span class="nb"&gt;cat &lt;/span&gt;pki/issued/client1.crt
&lt;span class="nb"&gt;cat &lt;/span&gt;pki/private/client1.key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;# Append to the end of the .ovpn file
&lt;span class="nt"&gt;&amp;lt;cert&amp;gt;&lt;/span&gt;
-----BEGIN CERTIFICATE-----
(Paste the contents of client1.crt here)
-----END CERTIFICATE-----
&lt;span class="nt"&gt;&amp;lt;/cert&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;
-----BEGIN PRIVATE KEY-----
(Paste the contents of client1.key here)
-----END PRIVATE KEY-----
&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 7: Connect via VPN and Verify RDS Access
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Connect to the VPN
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Using CLI&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;openvpn &lt;span class="nt"&gt;--config&lt;/span&gt; downloaded-client-config.ovpn

&lt;span class="c"&gt;# Or use the AWS VPN Client (GUI)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Verify Connectivity
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Check port reachability&lt;/span&gt;
nc &lt;span class="nt"&gt;-zv&lt;/span&gt; mydb.xxxxxx.ap-northeast-1.rds.amazonaws.com 5432
&lt;span class="c"&gt;# Connection to mydb... 5432 port [tcp/postgresql] succeeded!&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Connect to PostgreSQL
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;psql &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-h&lt;/span&gt; mydb.xxxxxx.ap-northeast-1.rds.amazonaws.com &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-U&lt;/span&gt; postgres &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; mydb &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-p&lt;/span&gt; 5432
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the connection is successful, you'll see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;psql (15.x)
SSL connection (protocol: TLSv1.3, ...)
Type "help" for help.

&lt;/span&gt;&lt;span class="gp"&gt;mydb=#&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Verify VPC DNS Settings
&lt;/h2&gt;

&lt;p&gt;RDS endpoint hostname resolution requires proper VPC DNS configuration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VPC → Settings&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DNS Resolution&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Enabled&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DNS Hostnames&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Enabled&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Set the VPC DNS address (e.g., &lt;code&gt;10.0.0.2&lt;/code&gt;) as the DNS server in the Client VPN endpoint settings so that RDS endpoint names resolve correctly from the client.&lt;/p&gt;




&lt;h2&gt;
  
  
  Troubleshooting
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Symptom&lt;/th&gt;
&lt;th&gt;What to Check&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Connection times out&lt;/td&gt;
&lt;td&gt;Is port 5432 from the Client CIDR allowed in the RDS SG inbound rules?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DNS resolution fails&lt;/td&gt;
&lt;td&gt;Is the VPC DNS (subnet base + 2) set as the DNS server on the VPN endpoint?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VPN itself won't connect&lt;/td&gt;
&lt;td&gt;Does the ACM certificate region match the Client VPN endpoint region?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VPN connected but can't reach RDS&lt;/td&gt;
&lt;td&gt;With Split Tunnel enabled, is &lt;code&gt;10.0.1.0/24&lt;/code&gt; added to the route table?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Authorization rule error&lt;/td&gt;
&lt;td&gt;Is the Client CIDR &lt;code&gt;10.100.0.0/22&lt;/code&gt; included in routes and authorization rules?&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Configuration&lt;/th&gt;
&lt;th&gt;Key Point&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Client VPN Endpoint SG&lt;/td&gt;
&lt;td&gt;Outbound only&lt;/td&gt;
&lt;td&gt;No inbound rules needed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RDS SG&lt;/td&gt;
&lt;td&gt;Inbound port 5432&lt;/td&gt;
&lt;td&gt;Source = Client CIDR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Authorization Rule&lt;/td&gt;
&lt;td&gt;Allow private subnet CIDR&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Route Table&lt;/td&gt;
&lt;td&gt;Add private subnet CIDR&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Split Tunnel&lt;/td&gt;
&lt;td&gt;Enabled&lt;/td&gt;
&lt;td&gt;Only VPC traffic goes through VPN&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A common misconception is that you need to open inbound UDP 443 on the Client VPN endpoint's security group — &lt;strong&gt;you don't&lt;/strong&gt;. What matters is allowing the Client CIDR on the destination resource (RDS) security group.&lt;/p&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/what-is.html" rel="noopener noreferrer"&gt;AWS Docs: What is AWS Client VPN?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/client-authentication.html" rel="noopener noreferrer"&gt;AWS Docs: Client Authentication&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OpenVPN/easy-rsa" rel="noopener noreferrer"&gt;Easy-RSA GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
      <category>networking</category>
      <category>postgres</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>aws</title>
      <dc:creator>nao1515</dc:creator>
      <pubDate>Sun, 03 May 2026 11:41:56 +0000</pubDate>
      <link>https://dev.to/1515_1c22035d85e1ae3d/aws-21ao</link>
      <guid>https://dev.to/1515_1c22035d85e1ae3d/aws-21ao</guid>
      <description></description>
    </item>
  </channel>
</rss>
