如何为他人授权Google Cloud项目文件夹及解决转移后Cloud Shell文件可见问题
问题解答:GCP项目转移后Cloud Shell文件不可见及文件夹权限授予
一、为什么对方作为项目所有者看不到Cloud Shell里的文件?
这是个很容易踩的误区——Cloud Shell的持久化存储是每个用户独立私有的,和项目权限完全无关!你在自己Cloud Shell里创建的文件、文件夹只存在于你个人的Shell专属环境中,哪怕对方是项目的所有者,也没法访问你的Shell存储。
打个比方:你和对方登录同一个项目的Cloud Shell,就像你们各自打开了一台完全独立的虚拟机,各自的$HOME目录是完全隔离的,互相看不到对方的文件内容。
如果需要共享文件给对方,推荐用GCP的官方存储方案:
- 把文件上传到项目的Cloud Storage存储桶里,给对方授予该桶或特定文件夹的访问权限(后面会讲具体操作),对方就能通过
gcloud storage cp命令下载,或者直接在Cloud Console里查看。 - 如果是代码类文件,也可以托管在Cloud Source Repositories里,对方克隆仓库就能获取最新内容。
二、如何为其他用户授予GCP项目相关文件夹的权限?
这里分两种常见的「文件夹」场景,分别说明操作方式:
1. Cloud Storage存储桶内的文件夹权限
如果是指Cloud Storage桶里的文件夹(本质是对象前缀),可以通过前缀级IAM权限精准授予:
- 在Cloud Console操作:
- 打开Cloud Storage页面,找到目标存储桶,进入对应的文件夹。
- 点击顶部的「权限」标签,再点击「添加」按钮。
- 输入对方的邮箱地址,选择合适的角色:比如
Storage Object Viewer(只读访问文件)、Storage Object Admin(读写管理文件)。 - 可选:点击「添加条件」,设置资源名称前缀为你的文件夹路径(比如
gs://your-bucket/your-folder/),确保权限只作用于该文件夹,不会影响桶内其他内容。
- 用gcloud命令快速设置:
gcloud storage buckets add-iam-policy-binding gs://your-bucket-name \ --member=user:target-user@example.com \ --role=roles/storage.objectViewer \ --condition="expression=resource.name.startsWith('gs://your-bucket-name/your-folder-path/'),title=RestrictAccessToTargetFolder"
2. GCP资源层级的Folder(组织架构中的文件夹)
如果是指用来管理多个项目的GCP Folder(在Organization层级下的文件夹),需要在Folder级别的IAM中配置权限:
- 操作路径:
- 打开IAM & Admin > IAM页面。
- 在页面顶部的「资源选择器」中,切换到你要设置的Folder(注意不是单个项目)。
- 点击「添加」,输入对方邮箱,选择对应的Folder角色:
Folder Viewer:只能查看文件夹内的项目和资源。Folder Editor:可以管理文件夹内的项目(比如创建、删除项目,修改项目配置)。Folder Owner:拥有文件夹的完全控制权,包括管理权限本身。
补充:彻底转移GCP项目所有权的小提示
如果你是想把项目完全移交对方,除了授予Owner角色,还可以考虑:
- 确认对方账号属于同一个GCP组织(如果有组织的话),否则可能需要先把项目移出组织再完成转移。
- 如果你不再需要访问该项目,可以在IAM页面移除自己的
Owner角色,让对方成为唯一的项目所有者。
内容的提问来源于stack exchange,提问作者unixdebian11
相关产品推荐
相关产品推荐

