我有兩個(gè)不同的 GCP 項(xiàng)目,正在嘗試將永久磁盤從一個(gè)項(xiàng)目克隆到另一個(gè)項(xiàng)目。我在每個(gè)項(xiàng)目中都有一個(gè)服務(wù)帳戶,我需要創(chuàng)建一個(gè)模擬令牌,允許我從一個(gè)項(xiàng)目中讀取永久磁盤,并在另一個(gè)項(xiàng)目中創(chuàng)建一個(gè)新的永久磁盤資源。項(xiàng)目 A -> 服務(wù)帳戶 A項(xiàng)目 B -> 服務(wù)帳戶 B問題是模擬一個(gè)或其他服務(wù)帳戶來創(chuàng)建永久磁盤是行不通的,因?yàn)閱蝹€(gè) API 調(diào)用需要從項(xiàng)目 A 讀取磁盤并在項(xiàng)目 B 中創(chuàng)建一個(gè)新磁盤。換句話說,我需要做一個(gè)API 調(diào)用使用對兩者都具有權(quán)限的單個(gè)模擬令牌。我如何使用 Go API 客戶端執(zhí)行此操作?這是我今天的模擬代碼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()}
Go GCP 同時(shí)模擬兩個(gè)服務(wù)賬戶
慕蓋茨4494581
2022-12-26 10:34:38