IAM action reference for controlling access to Claude Platform on AWS through AWS policies.
Claude Platform on AWS uses AWS IAM for access control. Every API route maps to an IAM action in the aws-external-anthropic namespace. This page lists all actions, the routes each action authorizes, and the managed policies available for common access patterns. For platform setup and authentication, see Claude Platform on AWS.
The ARN region is always populated and matches the region the workspace is bound to. The resource segment is the tagged workspace ID (wrkspc_...), the same value you pass in the anthropic-workspace-id header.
Actions
Actions follow the AWS VerbNoun convention and use verb discipline so that Get* and List* wildcards produce a clean read-only boundary.
Inference
Action
Routes authorized
CreateInference
POST /v1/messages
CountTokens
POST /v1/messages/count_tokens
Batch processing
Action
Routes authorized
CreateBatchInference
POST /v1/messages/batches
GetBatchInference
GET /v1/messages/batches/{id} GET /v1/messages/batches/{id}/results
ListBatchInferences
GET /v1/messages/batches
CancelBatchInference
POST /v1/messages/batches/{id}/cancel
DeleteBatchInference
DELETE /v1/messages/batches/{id}
Models
Action
Routes authorized
GetModel
GET /v1/models/{id}
ListModels
GET /v1/models
Files
Action
Routes authorized
CreateFile
POST /v1/files
GetFile
GET /v1/files/{id} GET /v1/files/{id}/content
ListFiles
GET /v1/files
DeleteFile
DELETE /v1/files/{id}
Skills
Action
Routes authorized
CreateSkill
POST /v1/skills
GetSkill
GET /v1/skills/{id} GET /v1/skills/{id}/versions GET /v1/skills/{id}/versions/{version} GET /v1/skills/{id}/versions/{version}/content
ListSkills
GET /v1/skills
UpdateSkill
POST /v1/skills/{id}/versions DELETE /v1/skills/{id}/versions/{version}
DeleteSkill
DELETE /v1/skills/{id}
Agents
Action
Routes authorized
CreateAgent
POST /v1/agents
GetAgent
GET /v1/agents/{id} GET /v1/agents/{id}/versions
ListAgents
GET /v1/agents
UpdateAgent
POST /v1/agents/{id}
ArchiveAgent
POST /v1/agents/{id}/archive
Sessions
Action
Routes authorized
CreateSession
POST /v1/sessions
GetSession
GET /v1/sessions/{id} GET /v1/sessions/{id}/events GET /v1/sessions/{id}/events/stream GET /v1/sessions/{id}/resources GET /v1/sessions/{id}/resources/{id}
ListSessions
GET /v1/sessions
UpdateSession
POST /v1/sessions/{id} POST /v1/sessions/{id}/events POST /v1/sessions/{id}/resources POST /v1/sessions/{id}/resources/{id} DELETE /v1/sessions/{id}/resources/{id}
ArchiveSession
POST /v1/sessions/{id}/archive
DeleteSession
DELETE /v1/sessions/{id}
Environments
Action
Routes authorized
CreateEnvironment
POST /v1/environments
GetEnvironment
GET /v1/environments/{id} GET /v1/environments/{id}/work GET /v1/environments/{id}/work/{work_id} GET /v1/environments/{id}/work/stats
ListEnvironments
GET /v1/environments
UpdateEnvironment
POST /v1/environments/{id}
ArchiveEnvironment
POST /v1/environments/{id}/archive
DeleteEnvironment
DELETE /v1/environments/{id}
ProcessEnvironmentWork
GET /v1/environments/{id}/work/poll POST /v1/environments/{id}/work/{work_id} POST /v1/environments/{id}/work/{work_id}/ack POST /v1/environments/{id}/work/{work_id}/heartbeat POST /v1/environments/{id}/work/{work_id}/stop
Vaults
Action
Routes authorized
CreateVault
POST /v1/vaults
GetVault
GET /v1/vaults/{id} GET /v1/vaults/{id}/credentials GET /v1/vaults/{id}/credentials/{id}
ListVaults
GET /v1/vaults
UpdateVault
POST /v1/vaults/{id} POST /v1/vaults/{id}/credentials POST /v1/vaults/{id}/credentials/{id} POST /v1/vaults/{id}/credentials/{id}/archive DELETE /v1/vaults/{id}/credentials/{id}
ArchiveVault
POST /v1/vaults/{id}/archive
DeleteVault
DELETE /v1/vaults/{id}
Memory stores
Action
Routes authorized
CreateMemoryStore
POST /v1/memory_stores
GetMemoryStore
GET /v1/memory_stores/{id} GET /v1/memory_stores/{id}/memories GET /v1/memory_stores/{id}/memories/{id} GET /v1/memory_stores/{id}/memory_versions GET /v1/memory_stores/{id}/memory_versions/{id}
ListMemoryStores
GET /v1/memory_stores
UpdateMemoryStore
POST /v1/memory_stores/{id} POST /v1/memory_stores/{id}/memories POST /v1/memory_stores/{id}/memories/{id} DELETE /v1/memory_stores/{id}/memories/{id} POST /v1/memory_stores/{id}/memory_versions/{id}/redact
ArchiveMemoryStore
POST /v1/memory_stores/{id}/archive
DeleteMemoryStore
DELETE /v1/memory_stores/{id}
Webhooks
Action
Routes authorized
CreateWebhook
POST /v1/webhooks
GetWebhook
GET /v1/webhooks/{id}
ListWebhooks
GET /v1/webhooks
UpdateWebhook
POST /v1/webhooks/{id}
DeleteWebhook
DELETE /v1/webhooks/{id}
RotateWebhookSecret
POST /v1/webhooks/{id}/regenerate_signing_secret
User profiles
Action
Routes authorized
CreateUserProfile
POST /v1/user_profiles
GetUserProfile
GET /v1/user_profiles/{id}
ListUserProfiles
GET /v1/user_profiles
UpdateUserProfile
POST /v1/user_profiles/{id}
CreateUserProfileEnrollmentUrl
POST /v1/user_profiles/{id}/enrollment_url
Workspaces
Action
Routes authorized
CreateWorkspace
POST /v1/organizations/workspaces
GetWorkspace
GET /v1/organizations/workspaces/{id}
ListWorkspaces
GET /v1/organizations/workspaces
UpdateWorkspace
POST /v1/organizations/workspaces/{id}
ArchiveWorkspace
POST /v1/organizations/workspaces/{id}/archive
Encryption keys
Action
Routes authorized
RegisterKey
POST /v1/organizations/external_keys
GetKey
GET /v1/organizations/external_keys/{id}
ListKeys
GET /v1/organizations/external_keys
UpdateKey
POST /v1/organizations/external_keys/{id}
DisableKey
DELETE /v1/organizations/external_keys/{id}
Compliance
Action
Routes authorized
ListComplianceActivities
GET /v1/compliance/activities
Telemetry destinations
Action
Routes authorized
CreateAccountTelemetryDestination
POST /v1/organizations/telemetry_destinations
GetAccountTelemetryDestination
GET /v1/organizations/telemetry_destinations/{id}
ListAccountTelemetryDestinations
GET /v1/organizations/telemetry_destinations
UpdateAccountTelemetryDestination
POST /v1/organizations/telemetry_destinations/{id}
CallWithBearerToken is an authentication-layer permission that authorizes a principal to authenticate through an API key (bearer token) rather than AWS SigV4. It does not map to a route. Grant it alongside the route-mapped actions you want the API key holder to perform.
Console access
Action
Routes authorized
AssumeConsole
(none)
AssumeConsole authorizes a principal to open the Claude Console for a Claude Platform on AWS workspace through the AWS Console federation flow. It does not map to a route. Grant it to principals who should be able to click Open Claude Console on the Claude Platform on AWS service page in the AWS Console. The Claude Console role (Admin or Developer) is assigned separately by your Anthropic account representative; it is not derived from the principal's IAM permissions. See Using the Claude Console for the sign-in flow and role descriptions.
Route-to-action mapping
The following table lists every route on Claude Platform on AWS and the IAM action required to call it. Each IAM action also authorizes requests that use the anthropic-beta header; beta variants of a route do not require a separate IAM action. CloudTrail classifies each action as either a Data event (high-volume, data-plane operations) or a Management event (control-plane operations). Vault and webhook actions are classified as Management events because they hold secrets (vault credentials and webhook signing secrets) and benefit from default-on audit logging. Workspace, external key, telemetry destination, and compliance actions are also classified as Management events because they are organization-scoped control-plane operations. All other actions, including inference, batch, model, file, skill, user profile, and the remaining Claude Managed Agents actions, are classified as Data events.
All AnthropicInferenceAccess actions, plus all Claude Managed Agents actions (agents, sessions, environments, vaults, memory stores, webhooks, and self-hosted environment work)
AnthropicInferenceAccess is the narrowest managed policy sufficient to run inference. It covers both synchronous and batch inference and, through the Get* and List* wildcards, grants read access to every API resource in the namespace, including Claude Managed Agents (CMA) resources (agents, sessions, environments, vaults, memory stores, and webhooks). This includes file content download through GetFile (see the Files note), skill content download through GetSkill (see the Skills note), and memory contents through GetMemoryStore. Vault credential secrets and webhook signing secrets are not exposed: those fields are write-only and are never returned by GetVault or GetWebhook (see Authenticate with vaults). AnthropicInferenceAccess does not grant file creation or deletion, skill management, user profile management, workspace mutation, encryption key management, telemetry destination management, or any Claude Managed Agents write action (create, update, archive, delete, process, or rotate). To exclude CMA reads, replace AnthropicInferenceAccess with a custom policy that enumerates only the specific non-CMA actions you need.
AnthropicLimitedAccess includes all Claude Managed Agents actions in addition to inference actions.
AnthropicSelfHostedEnvironmentAccess is the narrowest managed policy sufficient to run a self-hosted sandbox worker. Attach it to the principal your environment worker authenticates as.
AssumeConsole is not included in AnthropicReadOnlyAccess, AnthropicInferenceAccess, AnthropicLimitedAccess, or AnthropicSelfHostedEnvironmentAccess. Principals who need Claude Console access require either AnthropicFullAccess or a custom policy that grants aws-external-anthropic:AssumeConsole. See Console access.
Example policies
Synchronous inference on a single workspace
Grants the minimal permissions for an IAM principal that runs inference against one production workspace:
Blocks batch processing and file upload on a specific workspace while leaving synchronous inference available. Useful when a workspace handles Zero Data Retention (ZDR) data that must not persist server-side. Attach this policy alongside an Allow policy such as AnthropicInferenceAccess or the single-workspace example; on its own, a Deny-only policy grants no permissions: