我在这里读了很多关于云功能(HTTP触发的)安全性的问题,我也读过google的官方文档,但是我找不到一些问题的明确答案,所以我需要帮助。
请注意,这个问题是关于谷歌的云功能的谷歌云控制台,与防火墙无关。
cors策略,但我清楚地知道,cors与安全无关,因此我有点担心如何才能将云功能“可调用”从我的域。CASE:我正在为我的网站创建一个日志,所以我创建了一个云功能,每当有人访问我的站点时我都会调用它:(我正在使用Google服务器端)。
const sendHttpRequest = require("sendHttpRequest");
const postBody = {
testing : true
}
//Calls cloud function
sendHttpRequest(
"<CLOUD FUNTION TRIGGER ADDRESS>",
(statusCode, headers, body) => {
setResponseStatus(200);
setResponseBody("done");
},
{
headers: { "content-type": "application/json; charset=utf-8", "Origin" : "https://example.com" },
method: "POST",
},
postBody
);
}我想知道如何确保这个云功能只能由我的服务器调用。
提前感谢!
发布于 2021-08-12 16:38:40
是的,有可能。
见为调用进行验证。
第二段很好地概述了为什么这有一些复杂性。
您使用服务帐户是正确的。服务帐户由软件使用。用户帐户是人类使用的。
您的网站在哪里运行尚不清楚,但它需要生成身份令牌(也称为JWT),以便安全地调用远程云功能。
参见开发人员测试示例,其中Cloud (gcloud)使用gcloud auth print-identity-token提供身份令牌,然后使用curl作为Authorization标头值。
这就是你的网站需要复制的东西。
该页面建议(正确地)考虑将Google中的一种应用于以编程方式生成令牌,因为替代方案非常粗糙,容易出错。
除非您的网站也运行在GCP上,否则您不能使用元数据服务。
https://stackoverflow.com/questions/68760568
复制相似问题