Google cloud platform 有没有办法在GCP云存储中托管一个公共静态网站,并使用用户名和密码对其进行保护?

Google cloud platform 有没有办法在GCP云存储中托管一个公共静态网站,并使用用户名和密码对其进行保护?,google-cloud-platform,google-cloud-storage,web-hosting,Google Cloud Platform,Google Cloud Storage,Web Hosting,GCP似乎允许您通过IAM授权云存储身份验证,这很好,但使用这种方法,您一次只能获得一个文件 我的意思是,如果我授予用户对bucket中的文件夹具有“Storage Object Viewer”角色的权限,那么用户将能够使用并显示该文件浏览到单个文件(比如.html文件),但如果该.html文件包含.css或需要用户下载的其他文件,那么这些文件都将返回404 not found错误 似乎在身份验证时获得的任何令牌仅对在创建令牌之前请求的单个文件的检索有效 如何在GCP云存储中托管具有某种形式的身

GCP似乎允许您通过IAM授权云存储身份验证,这很好,但使用这种方法,您一次只能获得一个文件

我的意思是,如果我授予用户对bucket中的文件夹具有“Storage Object Viewer”角色的权限,那么用户将能够使用并显示该文件浏览到单个文件(比如.html文件),但如果该.html文件包含.css或需要用户下载的其他文件,那么这些文件都将返回404 not found错误

似乎在身份验证时获得的任何令牌仅对在创建令牌之前请求的单个文件的检索有效

如何在GCP云存储中托管具有某种形式的身份验证的静态网站

我确实在5年前看到过一个类似的问题,我认为GCP从那时起已经发生了很大的变化,这就是为什么我要问这个问题

编辑:好的,让我们假设我对bucket内容的公共只读访问没有意见,相反,我将集中精力保护进行更改的GCP云函数

现在,我已经在GCP函数上启用了身份验证,并使用了OAuth ID令牌。现在的问题是CORS。对GCP函数的任何调用都需要一个CORS访问控制允许源报头,但该报头在身份验证之后才会返回

在进行任何身份验证之前,有人知道如何在GCP云功能上启用CORS吗

谢谢

你可以。内容是免费的

在应用程序引擎前面,您可以


最后,授予您的用户(或组,或谷歌工作区域)角色
IAP Secured Web App user

您的用户有谷歌帐户吗?我想是的,因为你在GCS上授予他们。他们有gmail账户仅供参考。。我终于在GCP网站上找到了一些文档,其中强调您不应该对云功能应用基于IAM的权限,因为飞行前选项请求将获得403-禁止。这就是它的工作方式,即使CORS规范声明选项请求不需要授权头,并且必须允许没有授权头的响应。在相同的文档中,他们声明使用云端点作为代理。谢谢Guillaume。我不知道AppEngine可以免费提供内容。不管怎样,我决定创建一个云端点来代理请求并提供基于IAM的安全性。如果您有问题,请回到这里,如果您需要,我将能够在APp Engine上为您提供更多帮助。您是正确的,因为它是针对API的,这就是我试图做的-保护API调用不受未授权调用的影响。根据GCP文档()的规定,允许CORS对函数进行身份验证的一个选项是使用云端点代理。不幸的是,如果我向端点代理添加身份验证,飞行前调用将失败。它变得比我想要的太复杂了(需要云运行来运行端点代理容器映像)。我将探讨你提出的解决方案。你指的是应用程序引擎基础吗?还是灵活?标准,免费!灵活是昂贵的(总是至少有一个实例了!)嗨,纪尧姆,我得到了它在应用程序引擎托管,谢谢。如何保护GCP功能不被非授权用户执行?我的问题似乎仍然是,由于CORS,飞行前选项请求被阻止。