使用 AlloyDB Auth Proxy 的最佳实践

本页面列出了一些使用 AlloyDB Auth Proxy 的最佳实践。

确保 Auth Proxy 客户端为最新版本

Google 每月都会发布新版 Auth Proxy。您可以通过查看 AlloyDB Auth Proxy GitHub 发布版本页面来找到当前版本。

可以使用自动化功能更新 Auth Proxy 版本,建议先在非生产环境中测试新版本,之后再将相关变更推行到生产环境。

将 Auth Proxy 客户端作为永久性服务或边车运行

在生产环境中,应将 Auth Proxy 客户端作为永久性服务或边车运行。

如果 Auth Proxy 客户端进程停止,则通过该进程实现的所有现有连接都会中断,且您的应用无法再使用 AlloyDB Auth Proxy 创建与 AlloyDB 实例的任何连接。为避免出现这种情况,请以永久性服务的形式运行 Auth Proxy 客户端,使其能在因任何原因退出时自动重启。

根据您运行该客户端的位置,使用以下选项:

  • 对于在 Linux 虚拟机上运行的 Auth Proxy 客户端,请使用 systemdupstartsupervisor 等服务。
  • 对于 Windows 工作负载,请将 Auth Proxy 客户端作为 Windows 服务运行。如需了解详情,请参阅 Windows 服务指南
  • 对于 Kubernetes 设置,请将 Auth Proxy 客户端作为边车运行。

在与工作负载相同的机器上运行 Auth Proxy 客户端

Auth Proxy 客户端假定自己与工作负载在同一台机器上运行。发送到 Auth Proxy 的所有客户端流量都将处于未加密状态。从 Auth Proxy 发送到 AlloyDB 的流量会使用 mTLS 进行加密。

确保 Auth Proxy 的所有客户端都位于同一台机器上,这样就不会有未经加密的流量离开该机器。AlloyDB Auth Proxy 应与要访问 AlloyDB 实例的客户端位于同一位置。

为每个工作负载使用不同的服务账号

AlloyDB Auth Proxy 使用相应环境的 IAM 主账号来创建连接到 AlloyDB 实例的安全隧道。为遵循最小权限原则,每个工作负载(例如 Web 应用或后端数据处理应用)都必须使用不同的服务账号。使用不同的服务账号可确保每个工作负载的权限都可以单独进行管理(或撤消)。

请勿让 AlloyDB Auth Proxy 部署成为制约因素

您可能想要在共享虚拟机上部署 AlloyDB Auth Proxy,并使用它将多个工作负载的所有流量路由到 AlloyDB 实例。不过,这种方法不安全,并且会造成单点故障。

由于多个客户端最终会使用 Auth Proxy 所用的同一 IAM 主账号,导致难以确定实际访问 AlloyDB 实例的工作负载,因此这种方法并不安全。

此外,这种方法会造成单点故障,因为如果 AlloyDB Auth Proxy 因流量激增而过载,所有客户端连接都会受到不利影响。

因此,请改为在需要安全连接的每台机器上将 Auth Proxy 客户端作为永久性服务的边车进行部署。

减少生产部署的 AlloyDB Auth Proxy 日志输出

如果您需要限制 AlloyDB Auth Proxy 日志的大小,请在启动 AlloyDB Auth Proxy 时设置 --verbose=false 选项。请注意,如果使用此选项,会降低 AlloyDB Auth Proxy 输出在诊断连接问题时起到的作用。

查看 AlloyDB Auth Proxy 帮助消息

AlloyDB Auth Proxy 还包含许多其他功能,并且提供了全面的帮助消息及相关详细信息。运行 ./alloydb-auth-proxy --help 命令可以查看其他配置选项。

在 GitHub 上与开发团队互动

如果您认为自己发现了 bug 或有功能请求,可以在 AlloyDB Auth Proxy 的 GitHub 代码库页面中与开发团队互动。