Skip to content

Commit 00351e2

Browse files
Fix condition to fetch id token from API (#8195) (#5825)
Signed-off-by: Modular Magician <[email protected]>
1 parent 699167d commit 00351e2

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

.changelog/8195.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resourcemanager: fixed handling of `google_service_account_id_token` when authenticated with GCE metadata credentials
3+
```

google-beta/services/resourcemanager/data_source_google_service_account_id_token.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,13 @@ func dataSourceGoogleServiceAccountIdTokenRead(d *schema.ResourceData, meta inte
7979
return fmt.Errorf("error calling getCredentials(): %v", err)
8080
}
8181

82-
// If the source credential is not a service account key, use the API to generate the idToken
83-
if creds.JSON == nil {
82+
targetServiceAccount := d.Get("target_service_account").(string)
83+
// If a target service account is provided, use the API to generate the idToken
84+
if targetServiceAccount != "" {
8485
// Use
8586
// https://cloud.google.com/iam/docs/reference/credentials/rest/v1/projects.serviceAccounts/generateIdToken
8687
service := config.NewIamCredentialsClient(userAgent)
87-
name := fmt.Sprintf("projects/-/serviceAccounts/%s", d.Get("target_service_account").(string))
88+
name := fmt.Sprintf("projects/-/serviceAccounts/%s", targetServiceAccount)
8889
tokenRequest := &iamcredentials.GenerateIdTokenRequest{
8990
Audience: targetAudience,
9091
IncludeEmail: d.Get("include_email").(bool),
@@ -95,7 +96,7 @@ func dataSourceGoogleServiceAccountIdTokenRead(d *schema.ResourceData, meta inte
9596
return fmt.Errorf("error calling iamcredentials.GenerateIdToken: %v", err)
9697
}
9798

98-
d.SetId(d.Get("target_service_account").(string))
99+
d.SetId(targetServiceAccount)
99100
if err := d.Set("id_token", at.Token); err != nil {
100101
return fmt.Errorf("Error setting id_token: %s", err)
101102
}

0 commit comments

Comments
 (0)