本页面介绍了如何将 AlloyDB for PostgreSQL 与 Secret Manager 搭配使用,以存储敏感的访问信息。
安全处理敏感信息是构建安全开发工作流的重要环节。对于 AlloyDB,我们建议您将敏感信息存储在您在 Secret Manager 中创建的 Secret 中。Secret 可存储 API 密钥、密码、敏感信息和您用来访问机密系统的凭据。
概览
借助 Secret Manager,您可以方便地提升安全性。您还可以对 Secret 进行版本控制,并在您的团队中共享 Secret。如需详细了解如何与您的团队共享 Secret,请参阅使用 IAM 进行访问权限控制。
用户名和密码
您可以使用 Secret Manager 将 AlloyDB 用户账号的用户名和密码存储在 Secret 中,这是一种用来管理敏感信息的安全可靠的方法。
首先,在 AlloyDB 中创建用户。这需要您提供用户名和密码。如需详细了解如何在 AlloyDB 中创建用户,请参阅使用内置身份验证管理 PostgreSQL 用户。
创建用户后,在 Secret Manager 中创建 Secret 来存储用户名和密码,以防敏感信息丢失。如需详细了解如何在 Secret Manager 中创建和访问 Secret,请参阅创建 Secret。
跨区域副本应用场景
如果主 AlloyDB 集群发生故障,您可能需要提升次要集群。在次要集群成为主集群后,您必须更新实例连接名称才能反映此提升。如果实例名称存储在 Secret 中,则您必须用新的主集群的名称更新该 Secret。如需了解详情,请参阅修改 Secret。
如需使用 Secret Manager 进行故障切换,一种方法是将主集群的名称存储在 Secret 中,然后将 AlloyDB Auth Proxy 调用封装在轮询 Secret Manager 的脚本中。
如需检测实例连接名称的值何时更新,请使用 AlloyDB Auth Proxy,然后使用新值重启该代理,如下所示:
#!/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
如需详细了解如何创建和访问包含主要实例副本的实例连接名称的 Secret,请参阅使用 Secret Manager 创建和访问 Secret。 如需详细了解如何使用 AlloyDB Auth 代理,请参阅使用 AlloyDB Auth Proxy 连接。
后续步骤
- 如需了解如何将 Secret Manager 与开发环境集成,请参阅所有 Secret Manager 代码示例页面中提供的各种示例。