繁体   English   中英

使用私有 IP 连接到 Postgres

[英]Connecting to Postgres using private IP

在创建我的 Postgres Cloud SQL 实例时,我指定要使用私有 IP连接到它并选择我的default网络。

我的虚拟机位于同一个default网络中。

现在,我按照此处描述的说明进行操作https://cloud.google.com/sql/docs/postgres/connect-compute-engine并尝试执行

psql -h [CLOUD_SQL_PRIVATE_IP_ADDR] -U postgres

从我的虚拟机,但得到这个错误:

psql:无法连接到服务器:连接超时服务器是否在主机“CLOUD_SQL_PRIVATE_IP_ADDR”上运行并在端口 5432 上接受 TCP/IP 连接?

我在看什么?

PS 我的服务网络 API (无论是什么)已启用。

如果您通过 ssh 连接到同一网络中的虚拟机,则可以使用云 SQL 代理连接到 Cloud SQL:

  1. 打开 ssh 窗口(计算机引擎中的 VM 实例并单击 ssh),然后使用以下命令下载代理文件:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
  1. 执行,在ssh shell中
chmod +x cloud_sql_proxy 
  1. 创建一个具有 Cloud SQL Client 角色的服务帐号并创建一个 API 密钥。 在本地计算机中下载 json 密钥。

  2. 在 ssh vm shell 中点击滚轮和“上传”,上传密钥文件

  3. 5.
./cloud_sql_proxy -instances=<Instance connection name>=tcp:5432 -credential_file=<name of the json file>

在 SQL-Overview -> Connect to this instance 中可以找到“Instance connection name”

  1. 最后
psql "host=127.0.0.1 port=5432 sslmode=disable user=<your-user-name> dbname=<your-db-name>"

另一方面,如果您想从本地计算机连接到云 sql,而云 sql 实例没有公共 ip,则必须通过堡垒主机配置进行连接。

https://cloud.google.com/solutions/connecting-securely

根据此文档通过私有 ip 连接,您需要设置以下项目:

  • 您必须为您的项目启用服务网络 API。 如果您使用的是共享 VPC ,您还需要为宿主项目启用此 API。
  • 启用 API 需要 servicemanagement.services.bind IAM 权限。
  • 建立私有服务访问需要网络管理员 IAM 角色。
  • 为您的网络建立专用服务访问权限后,您无需网络管理员角色即可将实例配置为使用专用 IP。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM