配置 Cloud SQL 实例访问权限

本文档详细介绍了如何在不同的 Google Cloud 项目中设置虚拟私有云对等连接、安装 Cloud SQL 代理以及连接到内部 Cloud SQL IP 地址。此设置可确保 Cloud SQL 实例与以下连接器之间进行安全高效的通信:

本文档还介绍了如何在 BigQuery Data Transfer Service 连接器项目中创建网络附件。

准备工作

请确保您已备好以下内容:

  • 有权访问一个包含 BigQuery Data Transfer Service 连接器的 Google Cloud 项目,以及另一个包含 Cloud SQL 实例的 Google Cloud 项目。
  • Google Cloud 项目中现有的 MySQL 或 PostgreSQL 数据库。
  • 用于创建 VPC创建防火墙规则和安装软件的适当权限。

设置 VPC 对等互连

如需设置 VPC 对等互连,您必须从 BigQuery Data Transfer Service 连接器项目创建 VPC 对等互连,在 Cloud SQL 数据库项目中创建 VPC 对等互连到 BigQuery Data Transfer Service 项目,并配置路由和防火墙规则。

通过 BigQuery Data Transfer Service 连接器项目创建 VPC 对等互连

  1. 在 Google Cloud 控制台中,前往 BigQuery Data Transfer Service 连接器项目的 VPC 网络对等连接页面。

    前往 VPC 网络对等互连

  2. 点击 Create peering connection(创建对等连接)。

  3. 名称字段中,输入对等互连配置的名称。

  4. 对于您的 VPC 网络,选择您要在 BigQuery Data Transfer Service 连接器项目中建立对等互连的 VPC 网络。

  5. 对于对等互连 VPC 网络,请选择在其他项目中选项。

  6. 项目 ID 中,输入 Cloud SQL 项目的项目 ID。

  7. 对于 VPC 网络名称,请输入 Cloud SQL 项目中的 VPC 网络的名称。

  8. 点击创建

在 Cloud SQL 数据库项目中创建 VPC 对等互连

如需在 Cloud SQL 数据库项目中创建与 BigQuery Data Transfer Service 项目的 VPC 对等互连,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往 BigQuery Data Transfer Service 连接器项目的 VPC 网络对等连接页面。

    前往 VPC 网络对等互连

  2. 点击 Create peering connection(创建对等连接)。

  3. 名称字段中,输入对等互连配置的名称。

  4. 在 Cloud SQL 数据库项目中,选择要对等互连的 VPC 网络。

  5. 对于对等项目 ID,请输入 BigQuery Data Transfer Service 项目的项目 ID。

  6. 对于对等互连的 VPC 网络,请在 BigQuery Data Transfer Service 连接器项目中输入 VPC 网络的名称。

  7. 点击创建

配置路由和防火墙规则

如果您之前在配置对等互连连接时未选择导入-导出路由,请按照以下步骤操作:

  1. 前往 BigQuery Data Transfer Service 连接器项目的路线页面。

    进入“路由”

  2. 确保存在允许对等 VPC 环境之间流量的路由。

  3. 前往防火墙政策页面。

    转到“防火墙政策”

  4. 创建防火墙规则,以允许对等互连网络之间通过必要的端口(例如,MySQL 的端口 3306 和 PostgreSQL 的端口 5432)传输流量。

  5. 将 BigQuery Data Transfer Service 连接器项目所需的自定义防火墙规则添加到 Cloud SQL 数据库托管的项目。

  6. 使用 Cloud SQL 实例为您的项目配置路由和防火墙规则,就像您在前面的步骤中所做的那样。

设置 Cloud SQL 代理

  1. 使用 SSH 连接到 BigQuery Data Transfer Service 连接器项目中的虚拟机 (VM) 实例。

  2. 在终端中,下载 Cloud SQL 代理:

    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
    
  3. 更新下载的文件的权限:

    chmod +x cloud_sql_proxy
    
  4. 运行 Cloud SQL 代理:

    ./cloud_sql_proxy -instances=NAME=tcp:3306 or 5432 &
    

    NAME 替换为您的 Cloud SQL 实例连接的名称。

连接到内部 Cloud SQL IP 地址

  1. 使用 Cloud SQL 实例的内部 IP 地址进行连接。
  2. 配置您的应用或工具以连接到内部 IP 地址,并指定适当的凭据和数据库详细信息。

从其他 Google Cloud 项目连接时,请使用您之前部署的代理虚拟机的内部 IP 地址。此解决方案可解决传递性对等连接问题。

创建网络连接

如需在 BigQuery Data Transfer Service 连接器项目中创建网络附件,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往网络附件页面。

    前往“网络连接”页面

  2. 点击 Create network attachment(创建网络连接)。

  3. 为网络附件提供名称。

  4. 选择适当的 VPC 网络。

  5. 对于区域,请指定 BigQuery Data Transfer Service 连接器所在的区域。

  6. 对于子网,请选择与您的设置相符的适当选项。

  7. 点击创建网络连接

测试连接

  1. 验证安装了 Cloud SQL 代理的虚拟机是否可以连接到 Cloud SQL 实例:

    mysql -u USERNAME -p -h IP_ADDRESS
    

    替换以下内容:

    • USERNAME:数据库用户的用户名
    • IP_ADDRESS:Cloud SQL 实例的 IP 地址
  2. 确保 BigQuery Data Transfer Service 连接器项目中的应用可以使用内部 IP 连接到 Cloud SQL 实例。

问题排查

如果您在设置网络配置时遇到问题,请执行以下操作:

  • 确保已建立 VPC 对等互连,并且路由已正确配置。
  • 验证防火墙规则是否允许在所需端口上传输流量。
  • 检查 Cloud SQL 代理日志是否存在错误,并确保其正常运行。
  • 确保网络附件已正确配置并连接。