Python SQLAlchemy Helper for Authenticating to AlloyDB using Workload Identity Federation for GKE¶
The application is using the GCP Service Account (through the Workload Identity Federation for GKE).
How it works¶
The SQLAlchemy has an event hook "do_connect" which will be called each time
that a new connection is made. The hook can be installed on "Engine" objects
created by the create_engile method of SQLAlchemy.
The Helper installs a hook wich generates user and password information for
making new PostgreSQL connection from the GKE Metadata server. The user comes
from the email attribute of the Service Account and the password comes from
the access_token of the Service Account.
Installation¶
To install the helper, put the following into your requirements.txt or
pyproject.toml file.
git+https://github.com/GoogleCloudPlatform/cloud-solutions.git#subdirectory=projects/alloydb-auth-workload-identity/src/python
Usage¶
After creating the engine using create_engine, run setup_gcp_auth_hook to
register the hook to the engine.
For example: