AlloyDB for PostgreSQL 的安全性、隐私权、风险和合规性

本文档简要介绍了各种有助于确保 AlloyDB for PostgreSQL on Google Cloud 安全性的控制机制,并提供了有关如何配置这些控制机制的更多信息的链接。网络安全选项、政策和访问管理等安全控制机制还可以帮助您应对业务风险,并满足适用于您的业务的隐私权和监管要求。

AlloyDB for PostgreSQL 的安全性、隐私权、风险和合规性采用共担责任模式。例如,Google 会确保 AlloyDB for PostgreSQL 和其他 Google Cloud 服务运行的基础设施的安全,并为您提供相关功能,帮助您管理对服务和资源的访问权限。如需详细了解我们如何确保基础设施的安全,请参阅 Google 基础设施安全设计概览

AlloyDB 架构

下图展示了 AlloyDB 架构的组件。

AlloyDB 架构。

这些组件包括:

  • AlloyDB 实例跨多个可用区进行部署,以实现高可用性和弹性。
  • Google Cloud 中的应用或连接到 AlloyDB 主实例的其他环境中的应用。该图展示了在与 AlloyDB 相同的 Google Cloud 项目中运行的应用,不过您也可以在Google Cloud 组织的另一个项目中运行该应用。
  • 在混合环境中,Cloud VPNCloud Interconnect 可提供对公司网络中的资源的访问权限。
  • 使用 VPC Service Controls 创建的服务边界。借助 VPC Service Controls,您可以控制 Google 服务或资源之间的数据移动,并设置基于上下文的边界安全性。

如需了解 AlloyDB 端点,请参阅 AlloyDB API。默认情况下,此端点不是可公开路由的端点,无法接收来自公共网络的入站流量。如需使 AlloyDB 实例能够通过公共网络接收入站流量,请参阅使用公共 IP 进行连接

如需了解 AlloyDB 连接器,请参阅应用连接

已预配的服务

开始使用 AlloyDB 时,您需要启用以下 API:

如需了解详情,请参阅快速入门:创建并连接到数据库

Google Cloud 管理的身份验证

创建和管理 AlloyDB 实例的管理员和开发者必须向 Google Cloud 进行身份验证,以验证其身份和访问权限。您必须为每个用户设置一个由 Cloud Identity、Google Workspace 或者已与 Cloud Identity 或 Google Workspace 联合的身份提供方管理的用户账号。如需了解详情,请参阅身份和访问权限管理概览

创建用户账号后,请实施安全最佳实践,例如单点登录两步验证。如需了解更多身份验证最佳实践,请参阅管理身份和访问权限

Identity and Access Management

如需大规模管理管理员和开发者的 Identity and Access Management (IAM) 角色,请考虑为各种数据库用户角色和应用创建单独的功能组。向群组授予管理 AlloyDB 所需的 IAM 角色或权限。向群组分配角色时,请遵循最小权限原则和其他 IAM 安全最佳实践。如需了解详情,请参阅使用 Google 群组的最佳实践

如需详细了解如何设置 IAM,请参阅 IAM 概览

当客户端使用 IAM 数据库身份验证访问 AlloyDB 时,您还可以使用 IAM 来控制其对 AlloyDB 的访问权限。如需详细了解 AlloyDB 所需的 IAM 角色,请参阅 AlloyDB 的 IAM 角色和权限

如果您使用 Auth Proxy 或语言连接器(如应用连接中所述),则可以使用 IAM 来控制哪些应用工作负载可以连接到 AlloyDB。如需详细了解如何将 IAM 与 Auth Proxy 搭配使用,请参阅选择 IAM 主账号并为授权做好准备。如需将自动 IAM 身份验证与 AlloyDB 语言连接器搭配使用,请参阅管理 IAM 身份验证

默认服务账号和服务代理

服务账号是一种特殊类型的非交互式 Google 账号,用于表示需要验证身份并获得授权以访问 Google API 数据的非人类用户。由于 AlloyDB 是一项全托管式服务,因此 Google 会代表您管理 AlloyDB 服务账号。启用 AlloyDB 后,系统会为您的项目创建一个 AlloyDB 服务账号 (service-PROJECT_NUMBER-gcp-sa-alloydb-iam.gserviceaccount.com)。PostgreSQL 服务器等 AlloyDB 资源会使用此服务账号运行。

服务代理是某些 Google Cloud服务使用的 IAM 角色和权限,以便这些服务可以访问您的资源并代表您执行操作。托管式 AlloyDB 服务账号使用 AlloyDB 服务代理的 IAM 权限。

AlloyDB 政策

适用于 AlloyDB 的预定义组织政策会定义 AlloyDB 是否可以使用客户管理的加密密钥 (CMEK) 来加密您的数据。如果您的监管义务要求您更好地控制用于加密 AlloyDB 静态数据的密钥,请将 AlloyDB 配置为使用 CMEK。这些政策包括:

  • 限制哪些服务可以在没有 CMEK 的情况下创建资源 (constraints/gcp.restrictNonCmekServices)
  • 限制哪些项目可以为 CMEK 提供 Cloud KMS CryptoKey (constraints/gcp.restrictCmekCryptoKeyProjects)

如需了解详情,请参阅使用预定义的组织政策

您可以使用自定义组织政策在项目、文件夹或组织级层配置对 AlloyDB 的限制。如果您启用公共 IP 地址,建议您配置自定义政策限制条件,以强制规定哪些人可以使用公共 IP 地址。如需优化政策,您可以将 AlloyDB 实例字段(例如,启用公共 IP 地址或启用出站公共 IP 地址)添加到政策中。如需了解详情,请参阅使用自定义组织政策

网络安全

默认情况下,Google 会对所有Google Cloud 服务(包括在 Google Cloud上运行的 AlloyDB 实例)传输中的数据应用默认保护。如需详细了解默认网络保护,请参阅传输中加密

AlloyDB 支持使用 TLS 1.3 加密在数据库实例与客户端之间进行通信。AlloyDB 会自动为此连接生成服务器证书。如需使用客户端证书进行双向身份验证,您必须配置 AlloyDB 语言连接器(使用 mTLS 身份验证)或 AlloyDB Auth Proxy。

如果您的组织要求,则可以配置额外的安全控制机制,以进一步保护 Google Cloud 网络上的流量以及 Google Cloud 网络与公司网络之间的流量。请考虑以下事项:

  • AlloyDB 支持 VPC Service Controls。借助 VPC Service Controls,您可以控制 Google 服务中数据的移动,并设置基于上下文的边界安全性。如需详细了解如何设置 VPC Service Controls,请参阅配置 VPC Service Controls

    • 如果您启用公共 IP 地址,请使用 AlloyDB 语言连接器和自定义组织政策来控制哪些人有权访问 AlloyDB 实例。
  • 在 Google Cloud中,请考虑将共享 VPC 作为您的网络拓扑。共享 VPC 提供集中式网络配置管理,同时使环境保持分离。

  • 使用 Cloud VPN 或 Cloud Interconnect 可最大限度地提高公司网络与Google Cloud之间的连接的安全性和可靠性。如需了解详情,请参阅选择 Network Connectivity 产品

如需详细了解网络安全最佳实践,请参阅实现零信任确定 Google Cloud 着陆区的网络设计

应用连接

您可以使用以下方法来保护应用与 AlloyDB 之间的连接:

下图展示了连接选项。

AlloyDB 连接选项。

如需详细了解如何设置与没有外部 IP 地址的服务的连接的选项,请参阅服务的专用访问通道选项

数据库身份验证

AlloyDB 为数据库客户端提供以下身份验证方法:

  • 使用用户名和密码的内置数据库身份验证。授权使用 GRANTREVOKE 语句来确定。如需了解详情,请参阅管理 AlloyDB 用户角色
  • 使用 IAM 主账号(例如用户和服务账号)的 IAM 身份验证。AlloyDB 语言连接器可以自动执行 IAM 身份验证流程。如需了解详情,请参阅 AlloyDB 语言连接器概览。IAM 身份验证具有以下优势:
    • 统一的访问权限控制:IAM 可集中控制所有 Google Cloud 资源(包括数据库)的访问权限。统一的访问权限控制意味着政策一致,并且更便于用户和角色管理。
    • 减少凭证管理工作:用户无需单独的数据库密码。IAM 身份验证使用用户现有的 Google 账号凭据。
    • 短期有效的令牌:IAM 身份验证使用短期有效的访问令牌,从而降低密码泄露或凭证遭盗用的风险。

连接器

您可以使用 AlloyDB Auth ProxyAlloyDB 语言连接器来配置与数据库客户端的加密连接。AlloyDB Auth Proxy 是一种客户端代理,以透明方式将非 TLS 连接升级为 TLS 1.3 连接。语言连接器是连接到 AlloyDB 集群上的代理服务器的客户端库。这两个连接器都使用 IAM 来授权连接,并使用 mTLS 保护连接。您可以选择配置无密码身份验证,而不是 IAM 身份验证。

如果您使用 Auth Proxy,请查看使用 AlloyDB Auth Proxy 的最佳实践

数据保护和隐私权

本部分介绍了 AlloyDB 如何保护您的数据以及这些数据的隐私权。

AlloyDB 使用默认加密对存储在集群中的数据(例如实例名称、实例配置、表内容、行名称和自定义函数)进行加密。只有 AlloyDB 实例可以访问此类数据。

您可以启用客户管理的加密密钥 (CMEK) 来加密集群中的静态数据。借助 CMEK,密钥会以软件保护的密钥或硬件保护的密钥(通过 Cloud HSM)的形式存储在 Cloud KMS 中,但由您管理。如需自动预配加密密钥,您可以启用 Cloud KMS Autokey。启用 Autokey 后,开发者可以向 Cloud KMS 请求密钥,服务代理会预配符合开发者意图的密钥。借助 Cloud KMS Autokey,密钥可按需使用、一致且遵循行业标准实践。

此外,AlloyDB 还支持 Cloud External Key Manager (Cloud EKM),让您可以在 Google Cloud之外的外部密钥管理器中存储密钥。如果您使用的是 Cloud EKM,Key Access Justifications 会在 Cloud EKM 请求中添加一个字段,以便您查看每个请求的原因。借助特定的外部密钥管理合作伙伴,您可以根据理由自动批准或拒绝这些请求。

数据的处理地点

AlloyDB 支持对存储在集群中的数据进行数据驻留。借助数据驻留,您可以使用资源位置限制政策限制条件选择要存储数据的区域。您可以使用 Cloud Asset Inventory 验证 AlloyDB 资源的位置。

如果您需要对使用中的数据进行数据驻留,可以配置 Assured Workloads。如需了解详情,请参阅 Assured Workloads 和数据驻留

数据隐私

为了帮助保护数据隐私权,AlloyDB 遵循通用隐私权原则

AlloyDB 充当客户数据的数据处理方。Google 还充当数据控制方,负责处理结算、账号管理和滥用检测等信息。如需了解详情,请参阅Google Cloud 隐私权声明

审核日志记录

AlloyDB 会写入以下类型的审核日志:

  • 管理员活动审核日志:包括写入元数据或配置信息的 ADMIN WRITE 操作。
  • 数据访问审核日志:包括读取元数据或配置信息的 ADMIN READ 操作。此外,还包括读取或写入用户提供的数据的 DATA READDATA WRITE 操作。
  • 系统事件审核日志:标识修改资源配置的自动 Google Cloud 操作。

如需了解详情,请参阅 AlloyDB 审核日志记录

此外,为了满足监管要求,您可以使用 pgAudit 扩展程序来启用数据库命令的审核跟踪。pgAudit 扩展程序日志包含有关执行了哪些命令、何时执行了这些命令以及由谁执行了这些命令的详细信息。

Access Transparency

您可以使用 Access Approval 和 Access Transparency 来控制支持相应服务的 Google 人员对 AlloyDB 实例的访问权限。借助 Access Approval,您可以批准或拒绝 Google 员工的访问请求。Access Transparency 日志可让您近乎实时地了解Google Cloud 管理员何时访问了资源。

监控和突发事件响应

您可以使用各种工具来帮助您监控 AlloyDB 的性能和安全性。请考虑以下事项:

  • 使用 Logs Explorer 查看和分析事件日志,并创建自定义指标和提醒。
  • 使用 AlloyDB 系统数据分析信息中心或 Cloud Monitoring 信息中心监控 AlloyDB 实例的性能。如需了解详情,请参阅监控实例
  • 启用 pgAudit 扩展程序,以审核 AlloyDB 操作(例如对 AlloyDB 实例执行的命令和查询)。这些日志包括数据平面代理的 PostgreSQL 数据库日志和容器日志。
  • 配置 Security Command Center 以检测 AlloyDB 的 SQL 漏洞威胁(例如提升权限)。您可以为安全运维中心 (SOC) 分析师设置提醒和 playbook,以便他们能够响应发现结果。

认证和合规性

满足监管要求是您与 Google 共同承担的责任

AlloyDB 已获得多项认证,包括:

如需详细了解 Google Cloud 如何遵守不同的监管框架和认证,请访问合规性资源中心

AlloyDB 还支持 Assured Workloads,让您可以对 Google 组织中的特定文件夹应用控制措施,以满足监管、区域或主权要求。如需了解详情,请参阅按控制措施套餐支持的产品

后续步骤