GCP-控制对谷歌云存储服务帐户的访问



我正试图使用@google cloud/storage客户端从Node.js上传一个文件。我已经成功创建了一个服务帐户,该角色赋予我在云存储上创建(上传(、删除(重新加载同名对象(和下载对象的权利。这是由于存储对象管理员的角色而实现的。

当我分配存储对象创建者角色时,我无法将具有相同名称的图像上载到存储。

我实际需要的是,我需要给Node.js客户端上传和删除权限,而不是下载权限。

如果有一种方法只允许上传.jpg文件,那也太好了。我试图添加凭据的条件,但无济于事。

您必须创建一个具有以下权限的自定义角色:

resourcemanager.projects.get
resourcemanager.projects.list
storage.objects.create
storage.objects.delete

请记住,权限storage.objects.create使您有机会向bucket添加新对象,也有机会下载您创建的对象。根据我的测试,有了这个自定义角色,你将无法下载你创建的文件。如果您尝试,您将收到以下错误消息:

403 service account does not have storage.objects.list permission

我不认为你可以禁止客户下载他创建的对象。

关于条件部分,您可以在下载时创建条件(resource.name.endsWith(".jpg"(,但我不认为您在上传时创建条件。

最新更新