apps/docs/content/guides/platform/privatelink.mdx
PrivateLink is available only to Team and Enterprise customers. Contact support if you would like to create a PrivateLink connection for a read-only replica.
</Admonition>PrivateLink provides enterprise-grade private network connectivity between your AWS VPC and your Supabase database using AWS VPC Lattice. This eliminates exposure to the public internet by creating a secure, private connection that keeps your database traffic within the AWS network backbone.
By enabling PrivateLink, database connections never traverse the public internet, enabling the disablement of public facing connectivity and providing an additional layer of security and compliance for sensitive workloads. This infrastructure-level security feature helps organizations meet strict data governance requirements and reduces potential attack vectors.
Supabase PrivateLink is an organisation level configuration. It works by sharing a VPC Lattice Resource Configuration to any number of AWS Accounts for each of your Supabase projects. Connectivity can be achieved by either associating the Resource Configuration to a PrivateLink endpoint, or a VPC Lattice Service Network. This means:
The connection architecture changes from public internet routing to a dedicated private path through AWS's secure network backbone.
Supabase PrivateLink supports direct database connections on port 5432 and PgBouncer connections on port 6543. It does not support other Supabase services like API, Storage, Auth, or Realtime. These services will continue to operate over public internet connections.
To use PrivateLink with your Supabase project:
Navigate to your project's Integrations section to set up PrivateLink:
After submission, Supabase creates a VPC Lattice Resource Configuration for your project and sends an AWS Resource Share to the specified AWS Account ID. This process may take a few moments. Once complete, the account will show a "Ready" status, indicating that the resource share has been sent to your AWS account and is ready to be accepted.
Supabase will send you an AWS Resource Share containing the VPC Lattice Resource Configurations for your projects. To accept this share:
sspl-[project_ref]-[random alphanumeric string]Ensure your security groups allow traffic on the appropriate ports:
5432)6543)In your AWS account, you have two options to establish connectivity:
supabase-privatelink-[project name])[organisation]-[project-ref]-rcVerify the private connection is working correctly from your VPC:
psql)# Direct connection (Postgres)
psql "postgresql://[username]:[password]@[private-endpoint]:5432/postgres"
# PgBouncer connection
psql "postgresql://[username]:[password]@[private-endpoint]:6543/postgres"
You should see a successful connection without any public internet traffic.
Configure your applications to use the private connection details:
Example connection string updates:
# Direct connection (Postgres)
# Before (public)
postgresql://user:pass@db.[project-ref].supabase.co:5432/postgres
# After (private)
postgresql://user:[email protected]:5432/postgres
# PgBouncer connection
# Before (public)
postgresql://user:pass@db.[project-ref].supabase.co:6543/postgres
# After (private)
postgresql://user:[email protected]:6543/postgres
For maximum security, you can restrict public database access in your project settings:
The PrivateLink endpoint is a layer 3 solution so behaves like a standard Postgres endpoint, allowing you to connect using:
Ready to enhance your database security with PrivateLink? Contact our Enterprise team to discuss your requirements and begin the setup process.
Our support team will guide you through the configuration and ensure your private database connectivity meets your security and performance requirements.