我有一个 vm 实例在 Go 中创建我们的服务,我们希望我们的用户在访问 vm 实例之前通过 API 网关(用于监控、身份验证和其他原因......)。
我们已经在谷歌购买了注册的
private-acme.com
DNS,Go 服务可以通过这个 URL 访问:http://private-acme.com:1234/service
API 网关有一个重定向到该服务的 Open API yaml,一切正常。 API url 由控制台给出:https://acme-api-abcdefg123.ew.gateway.dev
所以
https://acme-api-abcdefg123.ew.gateway.dev/service
重定向到http://private-acme.com:1234/service
,一切正常。但是http://private-acme.com:1234/service
仍然可以访问并且不需要我们在网关上设置的API密钥
所以我想在虚拟机实例上设置防火墙规则。目前,我有一个名为
gw-apps
的防火墙规则,带有 gw
标签,允许 0.0.0.0/0
范围和端口 1234
.
不幸的是,在我看来,不可能创建一个防火墙规则,只允许 Api 网关 IP 访问 vm 实例。无法为 API 网关分配 IP 或 IP 范围。
网关 IP 当前是
216.239.XXX.YYY
,但是如果我将 216.0.0.0/8
放在防火墙中而不是 0.0.0.0/0
,它会失败。无论如何,我们不确定地址是否以216
开头
用
gw
标记API网关也不行,我不知道为什么。它将允许为防火墙创建源过滤器
建议使用连接器(50 美元/月...)来做我们想做的事,但它仅适用于 CloudRun、Cloud Function 或 App Engine,不适用于 API 网关
关于如何保护我的虚拟机实例有什么想法吗?