ModulesPhase 4: Enterprise

14. Enterprise rollout

/setup-bedrock/setup-vertex/install-github-app
The 30-second answer

"Rolling out Claude Code is five decisions in order: which API provider, how settings reach devices, what to enforce, how you'll see usage, and how data is handled. The provider sets billing, sign-in and which features people get: Teams or Enterprise is the default, Console is pay as you go, and Bedrock, Google Cloud's Agent Platform and Foundry inherit your cloud's controls. Policy goes out as managed settings, which sit above everything a developer can set. If you want one control point for keys, budgets and audit logs, put an LLM gateway in front and point ANTHROPIC_BASE_URL at it. Then verify on one machine with /status before you touch the fleet."

The last sentence is the one that sounds like someone who has actually done a rollout.

Say it yourself first, then compare.
See it

8 pictures, in order.

Use the arrow keys or the dots. Tap a picture to see it full size.

Five decisions and the provider comparison1 of 8
Know it

The facts someone can check.

The provider decision
Teams / Enterprise Console Bedrock Agent Platform (formerly Vertex AI) Foundry
Billing Per seat Pay as you go Through AWS Through GCP Through Azure
Sign-in claude.ai SSO or email API key, or Console sign-in API key or AWS credentials GCP credentials API key or Entra ID
Cost tracking Usage dashboard Usage dashboard AWS Cost Explorer GCP Billing Azure Cost Management
Turn it on /login /login CLAUDE_CODE_USE_BEDROCK=1 CLAUDE_CODE_USE_VERTEX=1 CLAUDE_CODE_USE_FOUNDRY=1

Cloud sessions, cloud scheduled tasks, Code Review, Remote Control and the Chrome extension need a claude.ai account. A Bedrock-only shop doesn't get them unless people also hold Teams or Enterprise seats. Say that early; it changes the budget.

The four commands
  • /setup-bedrock and /setup-vertex are interactive wizards: credentials, region (and project for Google Cloud), a check of which Claude models the account can actually call, and model pins. They write the result into the env block of ~/.claude/settings.json. Both are hidden from the command menu until CLAUDE_CODE_USE_BEDROCK=1 or CLAUDE_CODE_USE_VERTEX=1 is set, so you type the full name. First-time users also reach them from the login screen under 3rd-party platform.
  • Wizards are for one person. For a fleet or CI, set the same values as environment variables and distribute them, and pin model versions: an unpinned alias resolves to Claude Code's built-in default, which can lag what your account has enabled.
  • /install-github-app installs the Claude GitHub App on one repo and can set up GitHub Actions: it saves a secret (ANTHROPIC_API_KEY or CLAUDE_CODE_OAUTH_TOKEN), pushes the workflow files and opens the PR. github.com only, needs gh auth login and repo admin, and is hidden on Bedrock, Agent Platform and Foundry. The app's 13 permissions come as one set.
  • /install-slack-app opens a browser to install the Claude Slack app. The earlier Claude Code in Slack answers channel mentions only for Pro and Max accounts in workspaces not connected to Claude Tag; Team and Enterprise organizations set up Claude Tag. Slack runs as cloud sessions, so it is never part of a gateway deployment.
Settings precedence, highest first
Level File Who it affects
1. Managed managed-settings.json, MDM policy, or server-managed Everyone the org deploys it to
2. Command line --settings <file-or-json> One session
3. Project local .claude/settings.local.json You, this project
4. Shared project .claude/settings.json The team, through git
5. User ~/.claude/settings.json You, every project
  • Lists merge. permissions.allow and permissions.deny combine across files, so developers can add to a managed list but can't remove from it.
  • Environment variables aren't a level. Each variable and setting pair has its own rule: ANTHROPIC_MODEL in the shell beats the model key; ANTHROPIC_DEFAULT_MODEL applies only when no file sets model.
  • 11 keys honor a stricter value from a lower level, even against managed: for example disableClaudeAiConnectors, maxEffortLevel, permissions.blockReadsOutsideWorkingDirectories.
  • A managed model is a default, not a lock. --model still wins. Lock with availableModels.
How managed settings reach a machine
Mechanism Read Notes
Server-managed (claude.ai console or a Claude apps gateway) Startup, then hourly Only source that reaches Anthropic-hosted cloud sessions
MDM or OS policy (com.anthropic.claudecode plist, HKLM\SOFTWARE\Policies\ClaudeCode) Startup, then every 30 min Needs admin rights to write
File (managed-settings.json plus managed-settings.d/*.json) Startup, reloads on change macOS /Library/Application Support/ClaudeCode/, Linux /etc/claude-code/, Windows C:\Program Files\ClaudeCode\
Windows HKCU registry Startup, then every 30 min User-writable, so a convenience default, not enforcement

When more than one is present, the default is first-wins: Claude Code uses the highest one and ignores the rest. managedSourcesBehavior: "merge" composes them (v2.1.242 or later). Verify with /status: the Setting sources line reads Enterprise managed settings (file) or whichever source won.

Which credential wins

Claude Code takes the first credential it finds: cloud provider credentials, then ANTHROPIC_AUTH_TOKEN (sent as Authorization: Bearer), ANTHROPIC_API_KEY (sent as X-Api-Key), apiKeyHelper, CLAUDE_CODE_OAUTH_TOKEN, Anthropic profile or federation credentials, and finally the /login subscription. A signed-in Claude apps gateway session outranks all of them. Claude Desktop and cloud sessions don't use this list at all.

LLM gateways
  • A gateway holds the one provider credential; developers hold gateway credentials. You get usage per person, budgets, audit logs and provider switching in one place.
  • Rollout: deploy it with your provider credential, issue each developer their own credential, distribute ANTHROPIC_BASE_URL plus the credential through managed settings, then have each developer check /status and send a test prompt.
  • Lock it: allowedProviders: ["customEndpoint"] with the gateway's base URL in the same managed env block refuses any other destination (v2.1.285 or later).
  • ANTHROPIC_BASE_URL alone is not a credential. A saved claude.ai login stays active, so subscription billing still applies until a gateway credential is set.
  • Claude Desktop reads its own third-party inference configuration, not ANTHROPIC_BASE_URL.
  • If the gateway rejects new request fields with a 400, set CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1.
Network, retention and telemetry
  • Proxy: HTTPS_PROXY, HTTP_PROXY, NO_PROXY. No SOCKS. For NTLM or Kerberos, put a gateway in front.
  • TLS inspection: Claude Code trusts its bundled CA set plus the OS store by default; add a custom CA with NODE_EXTRA_CA_CERTS. mTLS uses CLAUDE_CODE_CLIENT_CERT and CLAUDE_CODE_CLIENT_KEY.
  • Retention: 30 days standard on Team, Enterprise and API; zero data retention for qualified Enterprise orgs, enabled per org; transcripts sent with /feedback kept 5 years. Locally, transcripts sit in ~/.claude/projects/ for 30 days (cleanupPeriodDays).
  • Training: on commercial terms, Anthropic doesn't train on your code or prompts.
  • Telemetry to Anthropic is on for the Claude API and off by default on Bedrock, Agent Platform and Foundry. DISABLE_TELEMETRY=1 stops metrics; CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 stops metrics, error reports and surveys at once.

The architect's point

Managed settings are the only layer a developer can't override, so every "must" belongs there: permission denies, the sandbox, login method, allowed providers and models. Everything else is a default people can change. Design the rollout as one managed policy plus sensible defaults, and test it with /status on one machine before it reaches a thousand.

Quiz

Answer out loud, then flip the card.

Mark each one honestly. Cards you miss stay flagged for review, in this browser.

0 of 8 right
Question 1

A CISO asks: "If we buy Teams seats, can a developer point Claude Code at their personal API key instead?" What do you configure?

Managed settings with forceLoginMethod: "claudeai" and forceLoginOrgUUID set to your organization. With those set, sessions authenticated by ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN or apiKeyHelper are blocked at startup. Add allowedProviders (v2.1.285 or later) to refuse any provider you haven't approved. Deliver it through MDM or the file path so it can't be edited without admin rights.

Question 2

An AWS-only customer wants Claude Code on Bedrock. What do they give up, and what's the setup?

They lose cloud sessions, cloud scheduled tasks, Code Review, Remote Control and the Chrome extension unless developers also have Teams or Enterprise seats. Setup: enable the models in the Bedrock console, then either run /setup-bedrock per person (hidden until CLAUDE_CODE_USE_BEDROCK=1) or, for a fleet, distribute CLAUDE_CODE_USE_BEDROCK=1, the region and pinned model IDs. Pin versions so aliases don't drift to a model the account doesn't have.

Question 3

IT deployed a managed-settings.json, but a developer's personal settings still seem to win. How do you debug it?

Run /status on that machine. If the Setting sources line doesn't mention Enterprise managed settings, the policy didn't land: wrong path, or the file only contains control keys. If it names a different source, a higher-priority source (MDM, server-managed) won under the default first-wins rule, and Skipped sources shows yours. Run claude doctor to see any entries dropped for failing validation. Also check whether the key is one of the eleven where a stricter lower value wins.

Question 4

We set ANTHROPIC_BASE_URL to our gateway, but finance says usage still lands on people's subscriptions. Why?

A base URL alone isn't a credential. With no ANTHROPIC_AUTH_TOKEN, ANTHROPIC_API_KEY or apiKeyHelper set, a saved claude.ai login stays the active credential, so requests route through the gateway but bill to the subscription. Distribute a per-developer gateway credential too, and check /status for the Auth token or API key line.

Question 5

The network team only allows egress to the gateway. What breaks, and what do you set?

Model requests are fine. Version checks, telemetry and release notes go out on their own and fail. Set CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1, knowing it also turns off auto-updates, so plan another update path. The WebFetch hostname check still calls api.anthropic.com; allowlist it or set skipWebFetchPreflight: true.

Question 6

Security asks how long Anthropic keeps their code. What's the accurate answer?

On Team, Enterprise and API: 30 days standard retention, and no training on code or prompts under commercial terms. Qualified Enterprise orgs can get zero data retention, enabled per organization by the account team. Two caveats: transcripts someone sends with /feedback are kept 5 years, and local transcripts sit in plaintext on the laptop for 30 days by default (cleanupPeriodDays). On Bedrock, Agent Platform or Foundry, retention and encryption follow that cloud provider.

Question 7

A developer says "I set model to opus in managed settings and people still use sonnet." Is that a bug?

No. A managed model is a starting default; --model and ANTHROPIC_MODEL still pick the session's model. To restrict choice, deploy availableModels (and enforceAvailableModels to constrain the default too), or deniedModels.

Question 8

A company has Jamf on Macs and wants different policies for two teams. What do you recommend?

Deploy a different configuration profile (or managed-settings.json) to each group from Jamf; MDM targets device groups and Claude Code applies whatever policy reaches the machine. The claude.ai console can't target a group yet. For teams that share parts, the file route supports managed-settings.d/ drop-ins merged alphabetically, such as 10-telemetry.json and 20-security.json.

Traps

Wrong answers that sound right.

Before you tap, say why each one is wrong.

Try it

Three moves in a fresh project.

Facts checked against code.claude.com/docs/en/ pages commands, admin-setup, third-party-integrations, settings, managed-settings, authentication, settings-reference, amazon-bedrock, google-vertex-ai, microsoft-foundry, github-actions, slack, gateways, llm-gateway, llm-gateway-connect, network-config, data-usage and costs on 2026-10-25. Claude Code ships fast: confirm anything that matters against the official docs.