Usa Secret Manager para controlar secretos en AlloyDB para PostgreSQL

En esta página, se describe cómo usar AlloyDB para PostgreSQL con Secret Manager para almacenar información de acceso sensible.

Manejar de forma segura tu información sensible es una parte esencial de la creación de un flujo de trabajo de desarrollo seguro. En AlloyDB, te recomendamos que almacenes la información sensible como secretos que crees en Secret Manager. Los secretos incluyen claves de API, contraseñas, información sensible y credenciales que puedes usar para acceder a un sistema confidencial.

Descripción general

Secret Manager proporciona conveniencia y mejora la seguridad. También puedes aplicar el control de versiones a tus secretos y compartirlos con tu equipo. Para obtener más información sobre cómo compartir secretos con tu equipo, consulta Control de acceso con IAM.

Nombres de usuarios y contraseñas

Usar Secret Manager para almacenar los nombres de usuario y las contraseñas de tus cuentas de usuario de AlloyDB como secretos es una forma segura y confiable de administrar tu información sensible.

Primero, crea un usuario en AlloyDB. Para ello, debes proporcionar un nombre de usuario y una contraseña. Para obtener más información sobre cómo crear un usuario en AlloyDB, consulta Administra usuarios de PostgreSQL con autenticación integrada.

Después de crear el usuario, crea un secreto en Secret Manager para almacenar el nombre de usuario y la contraseña, lo que evita la pérdida de tu información sensible. Para obtener más información sobre cómo crear secretos y acceder a ellos en Secret Manager, consulta Crea un secreto.

Situaciones de réplicas entre regiones

Si falla un clúster principal de AlloyDB, puedes promover un clúster secundario. Después de que el clúster secundario se convierta en el clúster principal, debes actualizar el nombre de la conexión de la instancia para reflejar esta promoción. Si el nombre de la instancia se almacena en un secreto, debes actualizar el secreto con el nombre del clúster principal nuevo. Para obtener más información, consulta Edita un secreto.

Una forma de usar Secret Manager para las conmutaciones por error es almacenar el nombre de tu clúster principal en un secreto y, luego, encapsular la invocación del proxy de autorización de AlloyDB en una secuencia de comandos que sondea Secret Manager.

Para detectar cuándo se actualiza el valor del nombre de la conexión de la instancia, usa el proxy de autenticación de AlloyDB y, luego, reinícialo con el valor nuevo, de la siguiente manera:

#!/bin/bash

SECRET_ID="my-secret-id" # TODO(developer): replace this value
REFRESH_INTERVAL=5
PORT=5432                # TODO(developer): change this port as needed

# Get the latest version of the secret and start the proxy
INSTANCE=$(gcloud secrets versions access "latest" --secret="$SECRET_ID")
alloydb-auth-proxy $INSTANCE --port=$PORT &
PID=$!

# Every 5s, get the latest version of the secret. If it's changed, restart the
# proxy with the new value.
while true; do
    sleep $REFRESH_INTERVAL
    NEW=$(gcloud secrets versions access "latest" --secret="$SECRET_ID")
    if [ "$INSTANCE" != "$NEW" ]; then
        INSTANCE=$NEW
        kill $PID
        wait $PID
        alloydb-auth-proxy $INSTANCE --port=$PORT &
        PID=$!
    fi
done

Para obtener más información sobre cómo crear y acceder a un secreto que contiene el nombre de conexión de la instancia de la réplica principal, consulta Crea y accede a un secreto con Secret Manager. Para obtener más información sobre el uso del proxy de autenticación de AlloyDB, consulta Conéctate con el proxy de autenticación de AlloyDB.

¿Qué sigue?