Security clarification: custom PostgreSQL runtime credentials and hosted log exposure #51544
Replies: 1 comment 1 reply
|
Following this from the adjacent thread (#51499) since it's the same credential-lifecycle family — your questions here go deeper into the logging side, and the distinctions you're drawing (pre-storage vs. dashboard redaction) are the right ones to insist on for a compliance posture. Here's the mechanics as accurately as I can state them: 1. Supported procedure for creating/rotating a custom LOGIN role The platform-supported path is plain SQL as 2. Where the password/verifier can and cannot appear, per channel
3. Pre-storage vs. redaction — the honest map
4. The guaranteed-clean path If your requirement is "no plaintext and no verifier in any hosted log," the supported procedure that achieves it: rotate from a psql session using 5. Temporary database access (your Q5) The temporary-access flow issues short-lived credentials through the platform; the token itself and the exchange material are managed by Supabase's auth plane rather than appearing as role passwords in Postgres logs. The equivalent protections: short TTL (expiry is the rotation), no SCRAM verifier in the Postgres catalog to leak, and the auth exchange happening outside statement-logging surfaces. For staging workloads where a standing LOGIN role isn't strictly required, temporary access is arguably the better answer to your requirement — it removes the persistent-credential lifecycle your whole question set is about. One caveat on all of the above: channel behavior is configuration-dependent (pgAudit classes, log retention settings, plan tier). For an auditable statement of your project's actual configuration, the support ticket in Q6 is the right instrument — worth requesting with your specific pgAudit/retention settings attached so the statement is precise rather than generic. |
Uh oh!
There was an error while loading. Please reload this page.
Hello Supabase Support,
We are preparing a restricted application runtime login for our staging project and need clarification on the supported credential-provisioning procedure.
Our security requirement is to prevent both plaintext database passwords and their authentication verifiers, such as SCRAM verifiers, from being recorded in relevant hosted logs while retaining appropriate security and audit logging.
Could you please clarify:
What supported procedure do you recommend for creating and rotating a custom PostgreSQL LOGIN role on our hosted PostgreSQL version?
Does that procedure prevent plaintext passwords and authentication verifiers from being recorded in PostgreSQL statement logs, error logs, pgAudit, Supavisor diagnostics, and relevant Supabase-managed platform or internal logs?
Where applicable, is protection applied before log storage, or does it only redact information displayed in the dashboard?
Are there logging channels or diagnostic workflows for which this protection cannot be guaranteed?
If temporary database access is the recommended alternative, what equivalent protections apply to the access token and associated authentication material?
Can you provide the relevant documentation or a written security statement applicable to our project configuration?
We do not intend to share actual credentials, passwords, tokens, or authentication verifiers in this support request.
Our goal is to use a least-privilege staging runtime identity, keep migration privileges separate, and preserve TLS verification.
Thank you.
All reactions