Nesta página, descrevemos como usar o AlloyDB para PostgreSQL com o Secret Manager para armazenar informações de acesso sensíveis.
Gerenciar informações sensíveis com segurança é uma parte essencial da criação de um fluxo de trabalho de desenvolvimento seguro. Para o AlloyDB, recomendamos armazenar as informações sensíveis como secrets criados no Secret Manager. Os secrets incluem chaves de API, senhas, informações sensíveis e credenciais que você pode usar para acessar um sistema confidencial.
Visão geral
O Secret Manager oferece conveniência e melhora a segurança. Também é possível aplicar o controle de versões aos seus secrets e compartilhá-los com toda a equipe. Para saber mais sobre como compartilhar secrets com sua equipe, consulte Controle de acesso com o IAM.
Nomes de usuário e senhas
Usar o Secret Manager para armazenar os nomes de usuário e as senhas das contas de usuário do AlloyDB como secrets é uma maneira segura e confiável de gerenciar suas informações sensíveis.
Primeiro, crie um usuário no AlloyDB. Para isso, é necessário fornecer um nome de usuário e uma senha. Para mais informações sobre como criar um usuário no AlloyDB, consulte Gerenciar usuários do PostgreSQL com autenticação integrada.
Depois de criar o usuário, crie um secret no Secret Manager para armazenar o nome de usuário e a senha, o que evita a perda de informações sensíveis. Para mais informações sobre como criar e acessar secrets no Secret Manager, consulte Criar um secret.
Cenários de réplicas entre regiões
Se um cluster principal do AlloyDB falhar, é possível promover um cluster secundário. Depois que o cluster secundário se tornar o principal, você precisará atualizar o nome da conexão da instância para refletir essa promoção. Se o nome da instância estiver armazenado em um secret, atualize-o com o nome do novo cluster principal. Para mais informações, consulte Editar um secret.
Uma maneira de usar o Secret Manager para failovers é armazenar o nome do cluster principal em um secret e encapsular a invocação do AlloyDB Auth Proxy em um script que pesquisa o Secret Manager.
Para detectar quando o valor do nome da conexão da instância é atualizado, use o proxy de autenticação do AlloyDB e reinicie-o com o novo valor, como segue:
#!/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 mais informações sobre como criar e acessar um secret que contenha o nome da conexão da instância da réplica principal, consulte Criar e acessar um secret usando o Secret Manager. Para mais informações sobre como usar o proxy de autenticação do AlloyDB, consulte Conectar usando o proxy de autenticação do AlloyDB.
A seguir
- Para saber como integrar o Secret Manager ao ambiente de desenvolvimento, consulte as várias amostras disponíveis na página Todas as amostras de código do Secret Manager.