ASCENDING Home
Jarvis AI
Cloud Services
Talent Solutions
Public Sector
About
Contact Us

Claude 3P and Codex 3P on Amazon Bedrock, Governed

3P means the client sends inference to a third-party platform: here, Amazon Bedrock in your own AWS account, with people signing in through AWS IAM Identity Center. Client settings choose the route. IAM policies and service control policies (SCPs) decide what is allowed.

Definition

What 3P means

A first-party (1P) deployment uses the vendor’s hosted accounts. A third-party (3P) deployment keeps familiar desktop and command-line clients but sends inference through your AWS account. 3P suits organizations that already govern identity, spend and audit in AWS.

First-party plans and third-party inference on Amazon Bedrock
ControlFirst-party plans3P on Amazon Bedrock
BillingVendor plan or enterprise agreementInference consumption billed by AWS; confirm separate licensing and implementation terms.
Sign-inVendor account, with SSO configured in the vendor organizationIAM Identity Center issues temporary AWS credentials and can federate with Microsoft Entra ID.
Data locationVendor-hosted serviceInference runs through Amazon Bedrock, subject to your chosen routing scope and AWS policies.
Admin controlsVendor admin consoleManaged client policy, IAM, SCPs and CloudTrail.
Architecture

How to govern AI chat apps and coding agents

Desktop chat apps and coding agents run on employee devices, so governance works in two places. On the device, configuration chooses the route. In your AWS account, policy decides what is allowed.

01 — On the device

Client configuration

Managed settings point each client at Bedrock, set the AWS profile and approved defaults, and renew sign-in when credentials expire. They choose the route but cannot enforce limits.

Chooses the routeDelivered by MDM
02 — In your AWS account

Account guardrails

IAM and SCPs authorize Bedrock requests. Configured CloudTrail events and application inference profile alarms provide visibility; client settings cannot override AWS authorization.

Decides what is allowedAudited
Client configuration routes requests through AWS sign-in to Bedrock, governed by IAM, SCPs and CloudTrail
Account guardrails

Request path and account controls

Calls reach the controls in your AWS account. IAM and the SCP define access boundaries; the trail, alarms and dashboard make usage visible.

01 — Request path

How a request reaches the model

A person signs in and the client calls an inference profile, which routes to the model. For Claude, the SCP requires application inference profiles and denies direct foundation-model calls.

Claude usage and cost attach to a named, tagged resource. ChatGPT and Codex use Runtime system profiles under the module’s temporary OpenAI exception, with usage attributed by role session.

Inference profile ARNDirect calls denied
Claude calls through application inference profiles; direct foundation-model calls are denied by the SCP
02 — Access boundary

IAM and the SCP decide what is allowed

The IAM permission set authorizes which models and profiles a person may invoke. The SCP limits direct foundation-model invocations across target accounts or OUs.

The module currently exempts Global OpenAI system profiles and the default project. This exception does not approve every model: scope IAM permissions to the models your organization allows. Neither control is a spending cap.

IAM permission setSCPAWS Organizations
ALLOW
Approved inference profiles

Only from role sessions authorized by IAM.

DENY
Direct foundation-model calls

Restricted by the SCP, subject to its documented OpenAI exception.

DENY
Models outside IAM permissions

Client settings cannot grant access.

03 — Attribution

One inference profile per model

Terraform creates an application inference profile for each approved Claude model. Usage and cost attach to that named resource, and per-team tags support cost allocation.

Profiles do not grant access on their own; IAM authorizes calls. ChatGPT and Codex use Runtime system profiles instead.

Application inference profilesTeam tags
TEAM
bedrock-governance-claude-sonnet

Example application inference profile

TEAM
bedrock-governance-claude-opus

Example application inference profile

TEAM
bedrock-governance-claude-haiku

Example application inference profile

04 — Audit and alerts

Record every call, alert on unusual usage

A multi-region CloudTrail trail captures configured Bedrock invocation events in encrypted, versioned S3. The module applies a 30-day S3 audit-log lifecycle. CloudWatch anomaly alarms watch input and output token usage per application inference profile.

The trail records calls rather than blocking them. Alarms are not a chargeback dashboard or a hard cap.

CloudTrailAnomaly alarms30-day S3 lifecycle

cloudtrail · InvokeModel

principal AWSReservedSSO_<permission-set>/<user>
resource <application inference profile ARN>
status OK

cloudwatch · InputTokenCount anomaly

profile approved-claude-profile
state ALARM · above baseline
05 — Cost visibility

See token usage by model and team

Use CloudWatch token metrics from application inference profiles to build reporting by model and team. Team tags support cost allocation; the module supplies metrics and alarms, not a ready-made dashboard.

Usage is shown per inference profile. ChatGPT Desktop and Codex calls are attributed by role session instead.

CloudWatch dashboardPer modelPer team
CloudWatch · Bedrock usageExample · team=platform
Input tokens412M
Output tokens96M
Tokens by profile

Sonnet68%

Opus24%

Haiku8%

Open source

Our open-source solution

Two repositories cover client configuration and AWS account guardrails. The code is free; ASCENDING delivers implementation, configuration and support as a paid engagement.

01 — Client configuration

coding-agent-3p

Fill in one config.json and it renders the managed configuration for every client and operating system, with an admin guide and a test plan to verify the rollout.

One configurationManaged deliveryAdmin guide + test plan
✓
Claude Desktop policy

A macOS .mobileconfig and a Windows .reg with built-in IAM Identity Center sign-in.

✓
Claude Code managed settings

awsAuthRefresh for sign-in and modelOverrides mapping aliases to Bedrock IDs.

✓
ChatGPT Desktop and Codex policy

requirements.toml pins the Bedrock provider and holds model defaults in [models.new_thread].

✓
AWS CLI profile

A named AWS profile for CLI sign-in; Claude Desktop can use native IAM Identity Center sign-in.

02 — Account guardrails

bedrock-governance

A Terraform module deploys account guardrails in two states: the management account holds the SCP, and each child account holds its profiles, trail and alarms. StackSets bootstrap deployment roles across an OU; Terraform deploys the resources into each child account.

Application inference profiles receive token anomaly alarms, and team tags support cost allocation. Runtime OpenAI usage is attributed by role session.

Two Terraform statesOU deployment rolesPer-model alarms
CHILD
Application inference profiles

One per approved model, tagged per team.

MGMT
SCP: DenyDirectFoundationModelInvocations

Attached to the target accounts or OUs.

CHILD
CloudTrail trail

Multi-region Bedrock events to encrypted, versioned S3 with a configured 30-day lifecycle.

CHILD
CloudWatch anomaly alarms

Input and output token usage per inference profile.

Coverage

Which clients are covered

Two client families, one config.json, a named AWS profile, and shared account guardrails.

Anthropic clients

Claude Desktop and Claude Code

Configuration
Desktop managed policy; Claude Code managed settings with modelOverrides
Sign-in
AWS IAM Identity Center; awsAuthRefresh renews Claude Code credentials
Models
Application inference profiles, so alarms and team tags apply per profile
Claude on Bedrock →
OpenAI clients

ChatGPT Desktop and Codex

Configuration
requirements.toml for enforced provider settings and [models.new_thread] defaults
Sign-in
AWS IAM Identity Center; auth_refresh re-runs aws sso login
Models
Runtime inference profiles; the module includes a temporary Global OpenAI SCP exception. IAM limits approved models; attribute usage by role session.
ChatGPT & Codex on Bedrock →
The boundary

What is enforced where

Claude Code availableModels limits picker aliases. Codex requirements.toml enforces the provider and connection policy. Neither is a model authorization boundary: use IAM and SCPs.

Client settings, AWS authorization and audit controls
ControlWhere it livesBoundary?What it does
Claude Code availableModelsClient managed settingsNoLimits the aliases in the model picker, not raw model IDs
requirements.tomlManaged client policyNoEnforces the Bedrock provider and AWS connection settings; model defaults are changeable, not a model allowlist
IAM permission setAWS IAM Identity CenterYesAuthorizes which Bedrock models and profiles a person may invoke
Service control policyAWS OrganizationsYesDenies direct foundation-model calls, with temporary exceptions for Global OpenAI system profiles and the default project; IAM still authorizes access
CloudTrail and anomaly alarmsAWS accountAuditRecords who called what and alerts on unusual token usage; does not block calls
Rollout

Rollout in four steps

Start with AWS access, deliver managed configuration, then verify both successful calls and denied requests.

Step 01

AWS prerequisites

Enable IAM Identity Center, create a Bedrock permission set and deploy bedrock-governance.

Step 02

Generate config

Fill in one config.json in coding-agent-3p and render the files for each client and OS.

Step 03

Distribute

Deliver macOS profiles through MDM. On Windows, deploy Claude policy and Codex requirements.toml to their managed locations.

Step 04

Verify

Run the test plan: sign-in, model calls, the SCP denial and the CloudTrail record.

How We Work

Up and Running in 3 Business Days

ASCENDING uses automation and Infrastructure as Code to spin up your entire Bedrock governance framework within 3 business days - no lengthy professional services engagement, no manual configuration, no disruption to your teams in the process.

Day 1

Foundation & Access

Our automated IaC templates deploy the complete governance framework into your AWS environment - wiring up your identity system, configuring team access policies, and activating cost attribution so every team's spend is visible from hour one.

  • Governance framework deployed via IaC
  • Team access and model policies configured
  • Cost attribution and budget alerts live
Day 2

Data, Security & Monitoring

We review your internal data sources and current application integrations, validate your security architecture to ensure all AI workloads stay inside your AWS boundary, and deploy the spending monitoring agent that watches your budget continuously.

  • Internal data sources reviewed & connected
  • Secure architecture validated
  • Spending monitoring agent deployed (free)
Day 3

Handoff & Ops Enablement

Your operations team receives everything needed to manage the environment independently - runbooks, escalation paths, and a clear understanding of how to adjust policies and budgets as your AI usage evolves over time.

  • Operations runbooks delivered
  • Team walkthrough of all governance controls
  • Expansion roadmap & next steps documented
Client guides

Choose your client setup

Use the guide for the client your team runs, with the same account-level governance foundation.

Anthropic clients

Claude Desktop and Claude Code on Bedrock

Enterprise sign-in, managed desktop policies, model access and optional Jarvis governance.

FAQ

Claude 3P and Codex 3P questions

Common questions about client configuration, account guardrails and attribution.

3P means the client sends inference to a third-party platform instead of the vendor’s hosted service. On Amazon Bedrock, Claude Desktop and Claude Code call models in your AWS account, and people sign in through AWS IAM Identity Center.

Yes. Managed configuration points them at the built-in amazon-bedrock-runtime provider and refreshes AWS SSO credentials; no translation gateway is needed.

No. Claude Code availableModels limits aliases, not raw model IDs, and requirements.toml enforces provider and connection settings, not a model allowlist. Use IAM permissions or an SCP as the model boundary.

For Claude, requiring application inference profiles keeps usage on named, tagged resources. The current module has a temporary exception for Global OpenAI system profiles and the default project; attribute ChatGPT and Codex usage by role session.

As two Terraform states: the management account holds the SCP, and each child account holds its profiles, trail and alarms. StackSets bootstrap deployment roles across an OU; Terraform deploys the resources into each child account.

No. Clients call Bedrock directly with their own AWS credentials. Jarvis is an optional layer for additional policy and attribution on traffic routed through it.

For Claude, application inference profiles tagged per team carry cost and token metrics. For ChatGPT Desktop and Codex, attribute usage through the person’s role session in CloudTrail or Bedrock invocation logs.

The coding-agent-3p and bedrock-governance repositories are open source and free. ASCENDING delivers implementation, configuration and support as a paid engagement.

Put Claude and Codex inside your AWS boundary

ASCENDING helps your team deploy managed configuration, AWS sign-in and account guardrails.

View on GitHub