我有一个运行在Google Compute Engine上的SFTP服务器。防火墙已设置为允许来自身份识别代理的流量。
我可以在本地使用gcloud ssh
连接到服务,但是无法从App Engine或Cloud Run连接。 Cloud Run和App引擎的服务帐户已经具有IAP隧道和Https权限。
后端使用ssh2-sftp-client写入Node。
如何保护Compute Engine的安全,并允许来自Cloud Run和App Engine在端口22上的TCP通信仍然通过?
有两种可能的解决方法:
[如果使用App Engine Standard,则可以尝试Serverless VPC Access:
无服务器VPC访问使您可以通过App Engine应用进行连接直接到Compute Engine VM实例,Memorystore实例,云SQL实例和任何其他资源具有内部IP地址。
[很遗憾,目前无服务器无VPC访问不适用于Cloud Run(文档Services not yet supported中有更多信息,但是Google Public Issue Tracker中有一个Feature Request,您可以加入,评论和跟踪进度。此外,App Engine Flex也无法使用这种服务。
如果使用App Engine Flex或Cloud Run,请执行以下步骤: