You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit a635fdf
Browse filesBrowse the repository at this point in the historyBrowse files
fix(credentials): close wave 4 review findings on keyless Google Cloud credentials
- Drop the tokeninfo check: a token from generateAccessToken already proves
the provider accepted Sim's token and the impersonation binding, and
tokeninfo puts a live token in a query string.
- Test that saving fails closed when the stray-subject pin probe hits an STS
outage or an unreachable IAM endpoint.
- Pass --project=<project number> on all three gcloud setup commands, drop
the unused Resource Manager API from the docs, and raise the shared
validation error for an empty scope list.
Copy file name to clipboardExpand all lines: apps/docs/content/docs/integrations/google-service-account.mdx
+6-3Lines changed: 6 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -185,7 +185,7 @@ Keyless credentials work with Google Cloud APIs that the service account calls a
185
185
186
186
<Steps>
187
187
<Step>
188
-
In the [Google Cloud Console](https://console.cloud.google.com/), enable the IAM, Resource Manager, Service Account Credentials, and Security Token Service APIs in the project that will hold the workload identity pool, and note its **project number** (on the project's Dashboard; it's numeric, not the project ID).
188
+
In the [Google Cloud Console](https://console.cloud.google.com/), enable the IAM, Service Account Credentials, and Security Token Service APIs in the project that will hold the workload identity pool, and note its **project number** (on the project's Dashboard; it's numeric, not the project ID).
189
189
</Step>
190
190
<Step>
191
191
Create or pick a service account, and grant it the roles your workflows need (for example, BigQuery Data Viewer and BigQuery Job User, or Vertex AI User). No key is needed.
@@ -194,29 +194,32 @@ Keyless credentials work with Google Cloud APIs that the service account calls a
194
194
In Sim, open the **Google BigQuery** integration, choose **Add service account**, and set **Authentication** to **Workload Identity Federation (keyless, via Sim OIDC)**. Enter the project number, a pool ID and provider ID (4 to 32 lowercase letters, digits, or hyphens, not starting with `gcp-`), and the service account email (`name@project-id.iam.gserviceaccount.com`).
195
195
</Step>
196
196
<Step>
197
-
The dialog shows the **Issuer**, **Audience**, and **Subject**, and three `gcloud` commands with your values filled in. Run them in that project. They create the pool, an OIDC provider for Sim's issuer with the attribute mapping `google.subject=assertion.sub` and an attribute condition that accepts only this credential's subject, and grant that subject `roles/iam.workloadIdentityUser` on the service account:
197
+
The dialog shows the **Issuer**, **Audience**, and **Subject**, and three `gcloud` commands with your values filled in. Run them in that project. They run against the project number you entered and create the pool, an OIDC provider for Sim's issuer with the attribute mapping `google.subject=assertion.sub` and an attribute condition that accepts only this credential's subject, and grant that subject `roles/iam.workloadIdentityUser` on the service account:
198
198
199
199
```bash
200
200
gcloud iam workload-identity-pools create POOL_ID \
201
+
--project="PROJECT_NUMBER" \
201
202
--location="global" \
202
203
--display-name="Sim"
203
204
204
205
gcloud iam workload-identity-pools providers create-oidc PROVIDER_ID \
The provider sets no allowed audiences, so it accepts its own resource name, which is the **Audience** the dialog shows.
217
220
</Step>
218
221
<Step>
219
-
Save in Sim. Sim exchanges a token at STS, impersonates the service account, and confirms Google accepts the resulting token. It also checks that a subject no credential holds can't impersonate the service account, so only this credential can use it. New IAM bindings can take a few minutes to apply; if saving fails right after you run the commands, wait and try again.
222
+
Save in Sim. Sim exchanges a token at STS and impersonates the service account; a token from that step proves the setup works. It also checks that a subject no credential holds can't impersonate the service account, so only this credential can use it. New IAM bindings can take a few minutes to apply; if saving fails right after you run the commands, wait and try again.
Copy file name to clipboardExpand all lines: apps/sim/app/workspace/[workspaceId]/integrations/components/connect-service-account-modal/google-keyless-fields.tsx
hint='Run in the project above. They create the pool and an OIDC provider that accepts only this credential’s subject, then let that subject impersonate the service account.'
128
+
hint='They run in the project above and create the pool and an OIDC provider that accepts only this credential’s subject, then let that subject impersonate the service account.'
0 commit comments