配置公共 IP 连接

本页面将介绍如何为 Cloud SQL 实例配置公共 IP 连接。

简介

您可以将 Cloud SQL 实例配置为具有一个公共 IPv4 地址,并通过向该实例添加已获授权的 IP 地址,接受来自特定 IP 地址或地址范围的连接。

有关通过 IP 连接将管理客户端连接到实例的帮助信息,请参阅使用 IP 地址连接 psql 客户端

如果您将实例配置为使用其公共 IP 地址接受连接,请同时将其配置为使用 SSL 来保护数据安全。如需了解详情,请参阅为实例配置 SSL

如要为实例配置未向公共互联网公开的 IP 地址,请参阅配置专用 IP 连接

启用公共 IP 并添加已获授权的地址或地址范围

要启用公共 IP 并添加一个已获授权的地址,请执行以下操作:

为实例启用公共 IP 时,系统将为实例配置一个公共静态 IPv4 地址。

控制台

  1. 转到 Google Cloud Console 中的“Cloud SQL 实例”页面。

    转到“Cloud SQL 实例”页面

  2. 点击相应实例名称,打开其实例详情页面。
  3. 选择连接标签页。
  4. 选择公共 IP 复选框。
  5. 点击添加网络
  6. 网络字段中,输入要允许连接的 IP 地址或地址范围。

    使用 CIDR 表示法

  7. 输入此条目的名称(可选)。
  8. 点击完成
  9. 点击保存以更新实例。

gcloud

  1. 如果您还没有为实例添加一个 IPv4 地址,请先添加:
    gcloud sql instances patch [INSTANCE_NAME] --assign-ip
    
  2. 描述实例以显示所有已获授权的现有地址:
    gcloud sql instances describe [INSTANCE_NAME]
    

    ipConfiguration 下查找 authorizedNetwork 条目,并记下您要保留的所有已获授权的地址。

  3. 更新已获授权的网络列表,以加入您想要的所有地址。
    gcloud sql instances patch [INSTANCE_NAME] --authorized-networks=[IP_ADDR1],[IP_ADDR2]...
    

    使用 CIDR 表示法

  4. 确认所做的更改:
    gcloud sql instances describe [INSTANCE_NAME]
    

REST

  1. 描述实例以显示所有已获授权的现有地址:

    在使用下面的任何请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID
    • machine-type:实例机器类型
    • zone:实例区域

    HTTP 方法和网址:

    GET  https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  2. 更新实例,以加入您要为实例设置的所有地址:

    在使用下面的任何请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID
    • network_range_1:已获授权的 IP 地址或范围
    • network_range_2:另一个已获授权的 IP 地址或范围

    HTTP 方法和网址:

    PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    请求 JSON 正文:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks":
            [{"value": "network_range_1"}, {"value": network_range_2"}]
        }
      }
    }
    

    如需发送您的请求,请展开以下选项之一:

    您应该会收到类似以下内容的 JSON 响应:

    使用 CIDR 表示法

  3. 确认您所做的更改:

    在使用下面的任何请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID
    • ip-address1:第一个 IP 地址(CIDR 形式)
    • ip-address-name1:第一个 IP 地址的名称
    • ip-address2:第二个 IP 地址(CIDR 形式)
    • ip-address-name2:第二个 IP 地址的名称
    • machine-type:实例机器类型
    • zone:实例区域

    HTTP 方法和网址:

    GET  https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

移除已获授权的地址或地址范围

要移除某个授权地址,请按如下所述操作:

控制台

  1. 转到 Google Cloud Console 中的“Cloud SQL 实例”页面。

    转到“Cloud SQL 实例”页面

  2. 点击相应实例名称,打开其实例详情页面。
  3. 选择连接标签页。
  4. 点击要删除的地址对应的删除图标 删除。
  5. 点击保存以更新实例。

gcloud

  1. 描述实例以显示所有现有授权地址:
    gcloud sql instances describe [INSTANCE_NAME]
    

    ipConfiguration 下查找 authorizedNetwork 条目,并记下您要保留的所有已获授权的地址。

  2. 更新已获授权的网络列表,以舍弃您要移除的所有地址。
    gcloud sql instances patch [INSTANCE_NAME] --authorized-networks=[IP_ADDR1],[IP_ADDR2]...
    
  3. 确认您所做的更改:
    gcloud sql instances describe [INSTANCE_NAME]
    

REST

  1. 描述实例以显示所有已获授权的现有地址:

    在使用下面的任何请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID
    • ip-address1:第一个 IP 地址(CIDR 形式)
    • ip-address-name1:第一个 IP 地址的名称
    • ip-address2:第二个 IP 地址(CIDR 形式)
    • ip-address-name2:第二个 IP 地址的名称
    • machine-type:实例机器类型
    • zone:实例区域

    HTTP 方法和网址:

    GET  https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  2. 更新实例,以加入您要保留的所有地址并舍弃您要移除的所有地址:

    在使用下面的任何请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID
    • network_range_1:要移除的已获授权的 IP 地址或网络范围

    HTTP 方法和网址:

    PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    请求 JSON 正文:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks":
            [{"value": "network_range_1"}]
        }
      }
    }
    
    

    如需发送您的请求,请展开以下选项之一:

    您应该会收到类似以下内容的 JSON 响应:

  3. 确认您所做的更改:

    在使用下面的任何请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID
    • ip-address:IP 地址(CIDR 形式)
    • ip-address-name:IP 地址的名称
    • machine-type:实例机器类型
    • zone:实例区域

    HTTP 方法和网址:

    GET  https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

将实例配置为拒绝所有公共 IP 连接

要将实例配置为拒绝所有公共 IP 连接,请执行以下操作:

控制台

  1. 转到 Google Cloud Console 中的“Cloud SQL 实例”页面。

    转到“Cloud SQL 实例”页面

  2. 点击相应实例名称,打开其实例详情页面。
  3. 选择连接标签页。
  4. 点击所有已获授权的地址对应的删除图标 删除。
  5. 点击保存以更新实例。

gcloud

  1. 清除授权地址列表:
    gcloud sql instances patch [INSTANCE_NAME] --clear-authorized-networks
    
  2. 确认您所做的更改:
    gcloud sql instances describe [INSTANCE_NAME]
    

REST

  1. 描述实例以显示所有已获授权的现有地址:

    在使用下面的任何请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID
    • ip-address1:第一个 IP 地址(CIDR 形式)
    • ip-address-name1:第一个 IP 地址的名称
    • ip-address2:第二个 IP 地址(CIDR 形式)
    • ip-address-name2:第二个 IP 地址的名称
    • machine-type:实例机器类型
    • zone:实例区域

    HTTP 方法和网址:

    GET  https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  2. 更新实例,以清空地址列表:

    在使用下面的任何请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID

    HTTP 方法和网址:

    PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    请求 JSON 正文:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks": []
        }
      }
    }
    

    如需发送您的请求,请展开以下选项之一:

    您应该会收到类似以下内容的 JSON 响应:

  3. 确认您所做的更改:

    在使用下面的任何请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID
    • machine-type:实例机器类型
    • zone:实例区域

    HTTP 方法和网址:

    GET  https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

停用公共 IP

您可以停用公共 IP,但前提是您的实例也配置为使用专用 IP。 如需启用专用 IP,请参阅将现有实例配置为使用专用 IP

如需停用公共 IP,请按如下所述操作:

控制台

  1. 转到 Google Cloud Console 中的“Cloud SQL 实例”页面。

    转到“Cloud SQL 实例”页面

  2. 点击相应实例名称,打开其实例详情页面。
  3. 选择连接标签页。
  4. 取消选中公共 IP 复选框。
  5. 点击保存以更新实例。

gcloud

  1. 更新实例:
    gcloud sql instances patch [INSTANCE_NAME] --no-assign-ip
    
  2. 确认您所做的更改:
    gcloud sql instances describe [INSTANCE_NAME]
    

REST

  1. 描述实例以显示所有已获授权的现有地址:

    在使用下面的任何请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID
    • ip-address1:第一个 IP 地址(CIDR 形式)
    • ip-address-name1:第一个 IP 地址的名称
    • ip-address2:第二个 IP 地址(CIDR 形式)
    • ip-address-name2:第二个 IP 地址的名称
    • machine-type:实例机器类型
    • zone:实例区域

    HTTP 方法和网址:

    GET  https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

  2. 更新实例:

    在使用下面的任何请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID

    HTTP 方法和网址:

    PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    请求 JSON 正文:

    {
      "settings":
      {
        "ipConfiguration": {"ipv4Enabled": false}
      }
    }
    

    如需发送您的请求,请展开以下选项之一:

    您应该会收到类似以下内容的 JSON 响应:

  3. 确认您所做的更改:

    在使用下面的任何请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID
    • machine-type:实例机器类型
    • zone:实例区域

    HTTP 方法和网址:

    GET  https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    如需发送您的请求,请展开以下选项之一:

    您应该收到类似以下内容的 JSON 响应:

后续步骤