只是想检查这是否在已经可用的路线图中,我刚刚错过了这些 . 在为一个重要项目构建我的函数时,我想应用一些防火墙规则来限制我的一些Google Cloud Functions(HTTP endpoints 触发器)的网络访问,原因是多方面的原因(安全性,如果由于垃圾邮件导致突然收费,请避免高价)请求等)
这是可用还是在管道中?如果没有,您如何限制对特定功能的访问权限,只允许使用一些Google Compute Engines,其他GCF和其他Google Cloud 端服务(Firestore,Storage,PubSub . )
1 回答
您应该关注的不仅仅是防火墙规则,而是使用 Access Tokens 验证您对Cloud功能的请求 .
Here there is a good example on how to do this .
基本上,您将创建一个HTTP触发的 Cloud 功能 .
首先创建一个存储桶,我的称为auth-123 . 然后放入 Cloud 端shell并将项目名称和存储桶定义为环境变量:
创建几个服务帐户
现在来创建功能!在 Cloud 外壳上的文件夹上首先创建一个包含依赖项的package.json:
现在功能本身:
在这种情况下,我们检查启动请求的帐户是否具有storage.buckets.get权限,但只需更改变量权限即可将其更改为任何其他权限 .
然后部署该功能:
现在,您有一个 Cloud 功能,只有在收到来自授权帐户的请求时才触发其内容 . 让我们为之前创建的帐户制作令牌:
我们现在在json上有auth令牌,并且还将它们作为env var导出以便于测试 . 让我们向ALPHA用户授予权限,而不是将其提供给BETA用户:
现在要测试:
您可以将此逻辑应用于任何 Cloud 功能,除非请求在其标头上附带有效标记,否则用于拒绝它的资源量最小 .