如何使用单份共享服务账号凭证跨GCP项目访问资源?
能否使用项目A的服务账号密钥访问项目B的GCP服务?
可以。密钥中包含的project_id仅代表该服务账号创建自项目A,并不会限制它访问其他GCP项目,只要完成跨项目授权配置即可。
具体配置步骤:
- 在项目B的IAM管理页面中添加成员:输入项目A服务账号的
client_email(即密钥里的SERVICE_ACCOUNT_EMAIL字段值),为其分配对应所需的角色(比如Storage Object Viewer、BigQuery Data Editor等,根据你要访问的服务权限选择)。 - 使用该JSON密钥验证访问:通过GCP SDK或API发起请求,例如用gcloud命令测试:
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json" gcloud auth activate-service-account --key-file=$GOOGLE_APPLICATION_CREDENTIALS # 示例:列出项目B的Cloud Storage存储桶 gsutil ls gs://[项目B的存储桶名称]
补充说明:
GCP服务账号属于全局资源,并非绑定单个项目。只要目标项目(项目B)的IAM策略中给该服务账号授予了合法权限,就能通过其密钥访问对应项目的服务,密钥内的project_id仅为创建时的归属标识,不影响跨项目使用。
内容的提问来源于stack exchange,提问作者Thumilan
相关产品推荐
相关产品推荐

