docs(google-cloud-platform): fix org-level role grant and add gcloud commands - #460
Draft
leet-c1 wants to merge 3 commits into
Draft
docs(google-cloud-platform): fix org-level role grant and add gcloud commands#460leet-c1 wants to merge 3 commits into
leet-c1 wants to merge 3 commits into
Conversation
The service account creation step told users to "assign the service account a role at the organization level" from the wizard's "Grant this service account access to a project" panel. That panel can only grant project-level roles, so users granted Editor on the project and the first sync failed with a 403 on resourcemanager.organizations.get. - Split the grant into its own "Grant organization-level access" section performed after the service account exists, with the resource picker set to the organization - Note that granting at the organization requires Organization Administrator, not project Owner - Add gcloud equivalents for creating the custom role, binding it at the organization, and verifying the binding - Add a troubleshooting entry for the IAM_PERMISSION_DENIED error, including the case where the configured organization ID is wrong Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Contributor
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
Mirror the Google Cloud project setup guide used by the MCP server docs, which pairs each console procedure with its gcloud equivalent. - Add gcloud commands for project creation, API enablement, service account creation, key creation, key listing, and retrieving the numeric unique ID used for domain-wide delegation - Add service ID tables for the required APIs and for the optional secrets and buckets APIs - Add the gcloud binding for roles/cloudasset.viewer at the organization - Document the service account key creation prerequisites: the iam.serviceAccountKeys.create permission, the Service Account Key Admin role, and the iam.disableServiceAccountKeyCreation policy that is enforced by default for organizations created on or after May 3, 2024 - Reformat the organization-level role commands to multi-line style - Note that domain-wide delegation, the customer ID, and the primary domain have no gcloud equivalent and must be done in the Admin console Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
mindymo
approved these changes
Aug 14, 2026
mindymo
left a comment
Collaborator
There was a problem hiding this comment.
Pushed a few style fixes, good to go on the docs end. Reminder that we'll need to push this upstream to the baton- repo.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The service account setup step read:
That's self-contradictory. The service-account-creation wizard can only grant project-level roles — there's no way to reach the organization from it. Users follow the instruction, pick Editor, and get Editor on the project, which confers nothing at the organization node.
The connector's first call is
Organizations.Get, so the sync fails immediately:with
"reason": "IAM_PERMISSION_DENIED". This has hit at least one customer.Note that
resourcemanager.organizations.getwas already correctly listed in the required-permissions block — the permission list was never wrong. Only the instruction about where to grant it was.This PR also brings the page up to the standard set by the Google Cloud project setup guide for the MCP servers, which pairs every console procedure with its
gcloudequivalent.Commit 1: Fix the org-level role grant
Grant organization-level accesssection performed after the account exists: select the organization in the resource picker, create the custom role under IAM & Admin > Roles, then grant it under IAM & Admin > IAM.roles/resourcemanager.organizationAdmin); project Owner is not sufficient.IAM_PERMISSION_DENIEDerror, including the case where the configured organization ID is simply wrong — Google returns an identical error for a nonexistent organization, sogcloud organizations listis suggested to rule that out.The permission lists themselves are unchanged.
Commit 2: Add gcloud commands throughout
Every Google Cloud setup section now has both console steps and
gcloud:projects create,config set,organizations listservices enable,services list --enabledservices enable,cloudasset.viewerorg bindingservice-accounts createroles create,add-iam-policy-binding,get-iam-policyverificationkeys create,describe --format='value(uniqueId)',keys listAlso documents the service account key creation prerequisites, which the page never mentioned: the
iam.serviceAccountKeys.createpermission via the Service Account Key Admin role, and theconstraints/iam.disableServiceAccountKeyCreationorganization policy that Google enforces by default for organizations created on or after May 3, 2024. This connector requires a JSON key, so affected customers hit a hard stop withFAILED_PRECONDITIONat that step.Domain-wide delegation, the customer ID, and the primary domain live in Google Workspace and have no
gcloudequivalent. Rather than leaving a silent gap, the page now says so explicitly.Notes for review
storage.googleapis.comis the one that matches the console's "Cloud Storage API", as distinct from the similarly namedstorage-api.googleapis.comandstorage-component.googleapis.com.YOUR_PROJECT_ID,YOUR_ORG_ID, andYOUR_SERVICE_ACCOUNT_EMAIL, matching the convention in the MCP setup guide. The example error uses a zeroed organization ID; no customer data appears anywhere in the diff.gcloudcoverage or an explicit note that none exists.Out of scope
Separately, a customer looking for a Google Workspace directory connector can land on this page because of the "with Google Workspace" name adjacency. That's a catalog naming question rather than a docs fix, and no disambiguating guidance exists in the docs today. Not addressed here.
🤖 Generated with Claude Code