Skip to content

docs(google-cloud-platform): fix org-level role grant and add gcloud commands - #460

Draft
leet-c1 wants to merge 3 commits into
mainfrom
claude/gcp-connector-org-level-role
Draft

docs(google-cloud-platform): fix org-level role grant and add gcloud commands#460
leet-c1 wants to merge 3 commits into
mainfrom
claude/gcp-connector-org-level-role

Conversation

@leet-c1

@leet-c1 leet-c1 commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Problem

The service account setup step read:

Under Grant this service account access to a project, assign the service account a role at the organization level.

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:

c1z-sync: failed getting metadata: google-cloud-platform: Organizations.Get('organizations/...')
failed: googleapi: Error 403: Permission 'resourcemanager.organizations.get' denied

with "reason": "IAM_PERMISSION_DENIED". This has hit at least one customer.

Note that resourcemanager.organizations.get was 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 gcloud equivalent.

Commit 1: Fix the org-level role grant

  • Service account creation now says to continue without selecting a role, with a warning explaining that project-level roles don't cover what the connector needs.
  • New Grant organization-level access section 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.
  • Calls out that this requires Organization Administrator (roles/resourcemanager.organizationAdmin); project Owner is not sufficient.
  • New troubleshooting section for the IAM_PERMISSION_DENIED error, including the case where the configured organization ID is simply wrong — Google returns an identical error for a nonexistent organization, so gcloud organizations list is 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:

Section Added
Create a new project projects create, config set, organizations list
Enable the APIs service ID table, services enable, services list --enabled
Optional: Sync secrets and buckets service ID table, services enable, cloudasset.viewer org binding
Create a service account service-accounts create
Grant organization-level access roles create, add-iam-policy-binding, get-iam-policy verification
Get credentials keys create, describe --format='value(uniqueId)', keys list

Also documents the service account key creation prerequisites, which the page never mentioned: the iam.serviceAccountKeys.create permission via the Service Account Key Admin role, and the constraints/iam.disableServiceAccountKeyCreation organization 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 with FAILED_PRECONDITION at that step.

Domain-wide delegation, the customer ID, and the primary domain live in Google Workspace and have no gcloud equivalent. Rather than leaving a silent gap, the page now says so explicitly.

Notes for review

  • The Editor suggestion is removed rather than relocated. Editor at the organization would work but grants far more than the connector needs, and the custom role built from the documented permission list is already right there.
  • API service IDs were verified against official Google documentation. storage.googleapis.com is the one that matches the console's "Cloud Storage API", as distinct from the similarly named storage-api.googleapis.com and storage-component.googleapis.com.
  • Placeholders use YOUR_PROJECT_ID, YOUR_ORG_ID, and YOUR_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.
  • Verified: MDX component tags balanced, code fences even, all internal anchors resolve, and every Google Cloud setup section has either gcloud coverage or an explicit note that none exists.
  • Not run: a Mintlify build, so rendering is unverified beyond the structural checks.

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

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>
@mintlify

mintlify Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
conductorone 🟢 Ready View Preview Aug 14, 2026, 6:02 PM

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>
@leet-c1 leet-c1 changed the title docs(google-cloud-platform): fix org-level role grant instructions docs(google-cloud-platform): fix org-level role grant and add gcloud commands Aug 14, 2026
@leet-c1
leet-c1 requested a review from mindymo August 14, 2026 18:10
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

@mindymo mindymo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants