1

我有一个在 Google 计算引擎上运行的 SFTP 服务器。防火墙设置为允许来自身份感知代理的流量。

gcloud ssh我可以使用本地连接到服务,但无法从 App Engine 或 Cloud Run 连接。Cloud Run 和 App Engine 的服务帐号已经拥有 IAP 隧道和 Https 权限。

后端使用ssh2-sftp-client在 Node 中编写。

如何保护 Compute Engine 并允许来自 Cloud Run 和 App Engine 端口 22 的 tcp 流量仍然通过?

4

1 回答 1

0

请看下面的更新。

有两种可能的解决方法:

Serverless VPC Access 使您能够从 App Engine 应用直接连接到 Compute Engine VM 实例、Memorystore 实例、Cloud SQL 实例以及任何其他具有内部 IP 地址的资源。

遗憾的是,目前 Cloud Run 无法使用无服务器 VPC 访问(更多信息请参见文档尚未支持的服务 ),但您可以在 Google Public Issue Tracker 上提出功能请求,加入、评论和跟踪进度。此外,App Engine Flex 也不提供此类服务。

  • 如果您使用 App Engine Flex 或 Cloud Run,请按照以下步骤操作:
  1. 保留外部静态 IP
  2. f1-micro使用保留的外部 IP 地址创建VM 实例(这可能适合 Compute Engine免费层
  3. 创建防火墙规则以允许从保留的外部 IP 连接到 SFTP 服务器
  4. 通过运行 ssh 客户端创建 SOCKS 代理,该客户端通过创建的 VM 路由流量,如本例所示
  5. 配置ssh2-sftp-client 以使用 SOCKS 代理
  6. 连接到 SFTP

更新:

无需使用任何变通方法。无服务器 VPC 访问现在可用于 Cloud Run。查看文档以获取更多详细信息。

于 2020-04-07T13:11:49.083 回答