为了账号安全,请及时绑定邮箱和手机立即绑定

Go GCP 同时模拟两个服务账户

Go GCP 同时模拟两个服务账户

Go
慕盖茨4494581 2022-12-26 10:34:38
我有两个不同的 GCP 项目,正在尝试将永久磁盘从一个项目克隆到另一个项目。我在每个项目中都有一个服务帐户,我需要创建一个模拟令牌,允许我从一个项目中读取永久磁盘,并在另一个项目中创建一个新的永久磁盘资源。项目 A -> 服务帐户 A项目 B -> 服务帐户 B问题是模拟一个或其他服务帐户来创建永久磁盘是行不通的,因为单个 API 调用需要从项目 A 读取磁盘并在项目 B 中创建一个新磁盘。换句话说,我需要做一个API 调用使用对两者都具有权限的单个模拟令牌。我如何使用 Go API 客户端执行此操作?这是我今天的模拟代码func Impersonate(ctx context.Context, principle string, credentials []byte) (*oauth2.Token, error) {   source, err := impersonate.CredentialsTokenSource(ctx, impersonate.CredentialsConfig{      TargetPrincipal: principle,      Scopes:          []string{"https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/cloud-platform"},   }, option.WithCredentialsJSON(credentials))   if err != nil {      return nil, fmt.Errorf("creating impersonated token source: %w", err)   }   return source.Token()}
查看完整描述

1 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

您一次只能模拟一个身份。正确的方法是使用在两个项目中都具有权限的服务帐户。



查看完整回答
反对 回复 2022-12-26
  • 1 回答
  • 0 关注
  • 78 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号