发送反馈
使用授权网络进行授权
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
本页面介绍了如何使用已获授权的网络设置连接到使用 IP 地址的 Cloud SQL 实例。
配置已获授权的网络
在以下情况下,您的客户端应用的 IP 地址或地址范围必须配置为 authorized networks
:
您的客户端应用通过其公共 IP 地址直接连接到 Cloud SQL 实例。
您的客户端应用通过其专用 IP 地址直接连接到 Cloud SQL 实例,并且您的客户端的 IP 地址是一个非 RFC 1918 地址
此 IP 地址可以是单一端点,也可以包含 CIDR 表示法 的范围。
控制台
在 Google Cloud 控制台中,转到 Cloud SQL 实例 页面。
转到“Cloud SQL 实例”
如需打开实例的概览 页面,请点击实例名称。
从 SQL 导航菜单中选择连接 。
点击网络 标签页。
选择公共 IP 复选框。
点击添加网络 。
在名称 字段中,为新网络 输入名称。 在网络* 字段中,输入要允许连接的 IPv4 地址或地址范围。对于地址范围,您必须使用有效的 CIDR 表示法 (例如 10.10.10.0/24)。
点击完成 。
点击保存 。
gcloud
配置授权网络会替换现有的授权网络列表。
gcloud sql instances patch INSTANCE_ID \
--authorized-networks=NETWORK_RANGE_1 ,NETWORK_RANGE_2 ...
如需配置授权网络,请使用 Terraform 资源 。
应用更改
如需在 Google Cloud 项目中应用 Terraform 配置,请完成以下部分中的步骤。
准备 Cloud Shell
启动 Cloud Shell 。
设置要在其中应用 Terraform 配置的默认 Google Cloud 项目。
您只需为每个项目运行一次以下命令,即可在任何目录中运行它。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
如果您在 Terraform 配置文件中设置显式值,则环境变量会被替换。
准备目录
每个 Terraform 配置文件都必须有自己的目录(也称为“根模块” )。
在 Cloud Shell 中,创建一个目录,并在该目录中创建一个新文件。文件名必须具有 .tf
扩展名,例如 main.tf
。在本教程中,该文件称为 main.tf
。 mkdir DIRECTORY && cd DIRECTORY && touch main.tf
如果您按照教程进行操作,可以在每个部分或步骤中复制示例代码。
将示例代码复制到新创建的 main.tf
中。
(可选)从 GitHub 中复制代码。如果端到端解决方案包含 Terraform 代码段,则建议这样做。
查看和修改要应用到您的环境的示例参数。
保存更改。
初始化 Terraform。您只需为每个目录执行一次此操作。
terraform init
(可选)如需使用最新的 Google 提供程序版本,请添加 -upgrade
选项:
terraform init -upgrade
应用更改
查看配置并验证 Terraform 将创建或更新的资源是否符合您的预期: terraform plan
根据需要更正配置。
通过运行以下命令并在提示符处输入 yes
来应用 Terraform 配置: terraform apply
等待 Terraform 显示“应用完成!”消息。
打开您的 Google Cloud 项目 以查看结果。在 Google Cloud 控制台的界面中找到资源,以确保 Terraform 已创建或更新它们。
注意 :Terraform 示例通常假定您的 Google Cloud 项目中启用了所需的 API。
删除更改
如需删除更改,请执行以下操作:
如需停用删除防护,请在 Terraform 配置文件中将 deletion_protection
参数设置为 false
。
deletion_protection = "false"
运行以下命令并在提示符处输入 yes
,以应用更新后的 Terraform 配置: terraform apply
通过运行以下命令并在提示符处输入 yes
,移除之前使用 Terraform 配置应用的资源:
terraform destroy
REST v1
配置授权网络会替换现有的授权网络列表。
在使用任何请求数据之前,请先进行以下替换:
project-id :项目 ID
instance-id :实例 ID
network_range_1 :已获授权的 IP 地址或范围
network_range_2 :另一个已获授权的 IP 地址或范围
HTTP 方法和网址:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id
请求 JSON 正文:
{
"settings":
{
"ipConfiguration":
{
"authorizedNetworks":
[{"value": "network_range_1 "}, {"value": "network_range_2 "}]
}
}
}
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id "
PowerShell (Windows)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id " | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
REST v1beta4
配置授权网络会替换现有的授权网络列表。
在使用任何请求数据之前,请先进行以下替换:
project-id :项目 ID
instance-id :实例 ID
network_range_1 :已获授权的 IP 地址或范围
network_range_2 :另一个已获授权的 IP 地址或范围
HTTP 方法和网址:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id
请求 JSON 正文:
{
"settings":
{
"ipConfiguration":
{
"authorizedNetworks":
[{"value": "network_range_1 "}, {"value": "network_range_2 "}]
}
}
}
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id "
PowerShell (Windows)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id " | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
限制
某些 IP 地址范围不能添加为已获授权的网络。
地址范围
备注
10.0.0.0/8
RFC 1918 地址范围。这些地址由 Cloud SQL 自动并隐式包含在已获授权的网络中
172.16.0.0/12
RFC 1918 地址范围。这些地址由 Cloud SQL 自动并隐式包含在已获授权的网络中
192.168.0.0/16
RFC 1918 地址范围。这些地址由 Cloud SQL 自动并隐式包含在已获授权的网络中
注意 :授权网络列表由本地防火墙在 Cloud SQL 实例虚拟机上实现。详细了解如何管理连接 。后续步骤
发送反馈
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可 获得了许可,并且代码示例已根据 Apache 2.0 许可 获得了许可。有关详情,请参阅 Google 开发者网站政策 。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-08-22。
[{
"type": "thumb-down",
"id": "hardToUnderstand",
"label":"Hard to understand"
},{
"type": "thumb-down",
"id": "incorrectInformationOrSampleCode",
"label":"Incorrect information or sample code"
},{
"type": "thumb-down",
"id": "missingTheInformationSamplesINeed",
"label":"Missing the information/samples I need"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
需要向我们提供更多信息?
{
"lastModified": "最后更新时间 (UTC):2024-08-22。",
"confidential": False
}