GoogleCloudPlatform / GoogleCloudPlatform/cloud-sql-proxy
Authentication Issue When Connecting Through Bastion Host and IAP
- Dominant language
- Go
- Stars
- 1.4k
- Forks
- 352
- Avg merge
- 14h 54m
- Merged PRs (30d)
- 5
Description
### Question
## Environment
- Google Cloud Platform (GCP)
- Cloud SQL PostgreSQL instance with private IP only
- Bastion host with private IP only
- Identity-Aware Proxy (IAP) for bastion host access
- DBeaver as SQL client
## Problem
I'm trying to connect to a PostgreSQL instance in Google Cloud SQL from my local machine. The database has only a private IP address, so I'm using a bastion host to access it.
Bastion has a systemd service that is using
```
/usr/local/bin/cloud-sql-proxy --auto-iam-authn --private-ip --address 0.0.0.0 --port 3307 [connection-string]
```
I've set up IAP TCP forwarding to the bastion host with this command:
```
gcloud compute start-iap-tunnel [bastion-name] 3307 --local-host-port=localhost:5432 --zone=[zone]
```
When I try to connect through DBeaver using:
- Host: localhost
- Port: 5432
- Database: db_name
- Username: myname@company.com
- Password: (empty)
I receive the following error:
```
FATAL: Cloud SQL IAM user authentication failed for user "myname@company.com"
```
This setup previously worked when I was using cloud-sql-proxy locally. However, now that cloud-sql-proxy is running on the bastion host, the authentication fails.
## What I've tried
I've confirmed that my user account has the necessary IAM permissions and has been added to Cloud SQL. The direct connection using cloud-sql-proxy from my local machine worked before, but I need to route through the bastion host now.
What might be causing this authentication failure, and how can I properly configure the connection to maintain IAM authentication while going through the bastion host?
### Code
```Go
```
### Additional Details
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.