我有兩個不同的 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()}
Go GCP 同時模擬兩個服務賬戶
慕蓋茨4494581
2022-12-26 10:34:38