Claude Platform Docs
API referenceSupport & configuration

IAM actions for Claude Platform on AWS

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.

Service details

AttributeValue
IAM service prefixaws-external-anthropic
Resource typesworkspace

Workspace ARN format:

arn:aws:aws-external-anthropic:{region}:{account-id}:workspace/{workspace-id}

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

The service defines 71 actions. Actions follow the AWS VerbNoun convention and use verb discipline so that Get* and List* wildcards produce a clean read-only boundary.

Inference

ActionRoutes authorized
CreateInferencePOST /v1/messages
CountTokensPOST /v1/messages/count_tokens

Batch processing

ActionRoutes authorized
CreateBatchInferencePOST /v1/messages/batches
GetBatchInferenceGET /v1/messages/batches/{id}
GET /v1/messages/batches/{id}/results
ListBatchInferencesGET /v1/messages/batches
CancelBatchInferencePOST /v1/messages/batches/{id}/cancel
DeleteBatchInferenceDELETE /v1/messages/batches/{id}

Models

ActionRoutes authorized
GetModelGET /v1/models/{id}
ListModelsGET /v1/models

Files

ActionRoutes authorized
CreateFilePOST /v1/files
GetFileGET /v1/files/{id}
GET /v1/files/{id}/content
ListFilesGET /v1/files
DeleteFileDELETE /v1/files/{id}

Skills

ActionRoutes authorized
CreateSkillPOST /v1/skills
GetSkillGET /v1/skills/{id}
GET /v1/skills/{id}/versions
GET /v1/skills/{id}/versions/{version}
GET /v1/skills/{id}/versions/{version}/content
ListSkillsGET /v1/skills
UpdateSkillPOST /v1/skills/{id}/versions
DELETE /v1/skills/{id}/versions/{version}
DeleteSkillDELETE /v1/skills/{id}

Agents

ActionRoutes authorized
CreateAgentPOST /v1/agents
GetAgentGET /v1/agents/{id}
GET /v1/agents/{id}/versions
ListAgentsGET /v1/agents
UpdateAgentPOST /v1/agents/{id}
ArchiveAgentPOST /v1/agents/{id}/archive

Sessions

ActionRoutes authorized
CreateSessionPOST /v1/sessions
GetSessionGET /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}
ListSessionsGET /v1/sessions
UpdateSessionPOST /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}
ArchiveSessionPOST /v1/sessions/{id}/archive
DeleteSessionDELETE /v1/sessions/{id}

Environments

ActionRoutes authorized
CreateEnvironmentPOST /v1/environments
GetEnvironmentGET /v1/environments/{id}
GET /v1/environments/{id}/work
GET /v1/environments/{id}/work/{work_id}
GET /v1/environments/{id}/work/stats
ListEnvironmentsGET /v1/environments
UpdateEnvironmentPOST /v1/environments/{id}
ArchiveEnvironmentPOST /v1/environments/{id}/archive
DeleteEnvironmentDELETE /v1/environments/{id}
ProcessEnvironmentWorkGET /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

ActionRoutes authorized
CreateVaultPOST /v1/vaults
GetVaultGET /v1/vaults/{id}
GET /v1/vaults/{id}/credentials
GET /v1/vaults/{id}/credentials/{id}
ListVaultsGET /v1/vaults
UpdateVaultPOST /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}
ArchiveVaultPOST /v1/vaults/{id}/archive
DeleteVaultDELETE /v1/vaults/{id}

Memory stores

ActionRoutes authorized
CreateMemoryStorePOST /v1/memory_stores
GetMemoryStoreGET /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}
ListMemoryStoresGET /v1/memory_stores
UpdateMemoryStorePOST /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
ArchiveMemoryStorePOST /v1/memory_stores/{id}/archive
DeleteMemoryStoreDELETE /v1/memory_stores/{id}

Webhooks

ActionRoutes authorized
CreateWebhookPOST /v1/webhooks
GetWebhookGET /v1/webhooks/{id}
ListWebhooksGET /v1/webhooks
UpdateWebhookPOST /v1/webhooks/{id}
DeleteWebhookDELETE /v1/webhooks/{id}
RotateWebhookSecretPOST /v1/webhooks/{id}/regenerate_signing_secret

User profiles

ActionRoutes authorized
CreateUserProfilePOST /v1/user_profiles
GetUserProfileGET /v1/user_profiles/{id}
ListUserProfilesGET /v1/user_profiles
UpdateUserProfilePOST /v1/user_profiles/{id}

Workspaces

ActionRoutes authorized
CreateWorkspacePOST /v1/organizations/workspaces
GetWorkspaceGET /v1/organizations/workspaces/{id}
ListWorkspacesGET /v1/organizations/workspaces
UpdateWorkspacePOST /v1/organizations/workspaces/{id}
ArchiveWorkspacePOST /v1/organizations/workspaces/{id}/archive

Encryption keys

ActionRoutes authorized
RegisterKeyPOST /v1/organizations/external_keys
GetKeyGET /v1/organizations/external_keys/{id}
ListKeysGET /v1/organizations/external_keys
UpdateKeyPOST /v1/organizations/external_keys/{id}
DisableKeyDELETE /v1/organizations/external_keys/{id}

Compliance

ActionRoutes authorized
ListComplianceActivitiesGET /v1/compliance/activities

Authentication

ActionRoutes authorized
CallWithBearerToken(none)

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

ActionRoutes 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, 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.

MethodRouteIAM actionCloudTrail event type
POST/v1/messagesCreateInferenceData
POST/v1/messages/count_tokensCountTokensData
POST/v1/messages/batchesCreateBatchInferenceData
GET/v1/messages/batchesListBatchInferencesData
GET/v1/messages/batches/{id}GetBatchInferenceData
GET/v1/messages/batches/{id}/resultsGetBatchInferenceData
POST/v1/messages/batches/{id}/cancelCancelBatchInferenceData
DELETE/v1/messages/batches/{id}DeleteBatchInferenceData
GET/v1/modelsListModelsData
GET/v1/models/{id}GetModelData
POST/v1/filesCreateFileData
GET/v1/filesListFilesData
GET/v1/files/{id}GetFileData
GET/v1/files/{id}/contentGetFileData
DELETE/v1/files/{id}DeleteFileData
POST/v1/skillsCreateSkillData
GET/v1/skillsListSkillsData
GET/v1/skills/{id}GetSkillData
DELETE/v1/skills/{id}DeleteSkillData
POST/v1/skills/{id}/versionsUpdateSkillData
GET/v1/skills/{id}/versionsGetSkillData
GET/v1/skills/{id}/versions/{version}GetSkillData
GET/v1/skills/{id}/versions/{version}/contentGetSkillData
DELETE/v1/skills/{id}/versions/{version}UpdateSkillData
POST/v1/user_profilesCreateUserProfileData
GET/v1/user_profilesListUserProfilesData
GET/v1/user_profiles/{id}GetUserProfileData
POST/v1/user_profiles/{id}UpdateUserProfileData
POST/v1/organizations/workspacesCreateWorkspaceManagement
GET/v1/organizations/workspacesListWorkspacesManagement
GET/v1/organizations/workspaces/{id}GetWorkspaceManagement
POST/v1/organizations/workspaces/{id}UpdateWorkspaceManagement
POST/v1/organizations/workspaces/{id}/archiveArchiveWorkspaceManagement
POST/v1/organizations/external_keysRegisterKeyManagement
GET/v1/organizations/external_keysListKeysManagement
GET/v1/organizations/external_keys/{id}GetKeyManagement
POST/v1/organizations/external_keys/{id}UpdateKeyManagement
DELETE/v1/organizations/external_keys/{id}DisableKeyManagement
GET/v1/compliance/activitiesListComplianceActivitiesManagement
POST/v1/agentsCreateAgentData
GET/v1/agentsListAgentsData
GET/v1/agents/{id}GetAgentData
POST/v1/agents/{id}UpdateAgentData
POST/v1/agents/{id}/archiveArchiveAgentData
GET/v1/agents/{id}/versionsGetAgentData
POST/v1/sessionsCreateSessionData
GET/v1/sessionsListSessionsData
GET/v1/sessions/{id}GetSessionData
POST/v1/sessions/{id}UpdateSessionData
POST/v1/sessions/{id}/archiveArchiveSessionData
DELETE/v1/sessions/{id}DeleteSessionData
GET/v1/sessions/{id}/eventsGetSessionData
POST/v1/sessions/{id}/eventsUpdateSessionData
GET/v1/sessions/{id}/events/streamGetSessionData
GET/v1/sessions/{id}/resourcesGetSessionData
GET/v1/sessions/{id}/resources/{id}GetSessionData
POST/v1/sessions/{id}/resourcesUpdateSessionData
POST/v1/sessions/{id}/resources/{id}UpdateSessionData
DELETE/v1/sessions/{id}/resources/{id}UpdateSessionData
POST/v1/environmentsCreateEnvironmentData
GET/v1/environmentsListEnvironmentsData
GET/v1/environments/{id}GetEnvironmentData
POST/v1/environments/{id}UpdateEnvironmentData
POST/v1/environments/{id}/archiveArchiveEnvironmentData
DELETE/v1/environments/{id}DeleteEnvironmentData
GET/v1/environments/{id}/workGetEnvironmentData
GET/v1/environments/{id}/work/pollProcessEnvironmentWorkData
GET/v1/environments/{id}/work/{work_id}GetEnvironmentData
GET/v1/environments/{id}/work/statsGetEnvironmentData
POST/v1/environments/{id}/work/{work_id}ProcessEnvironmentWorkData
POST/v1/environments/{id}/work/{work_id}/ackProcessEnvironmentWorkData
POST/v1/environments/{id}/work/{work_id}/heartbeatProcessEnvironmentWorkData
POST/v1/environments/{id}/work/{work_id}/stopProcessEnvironmentWorkData
POST/v1/vaultsCreateVaultManagement
GET/v1/vaultsListVaultsManagement
GET/v1/vaults/{id}GetVaultManagement
POST/v1/vaults/{id}UpdateVaultManagement
POST/v1/vaults/{id}/archiveArchiveVaultManagement
DELETE/v1/vaults/{id}DeleteVaultManagement
GET/v1/vaults/{id}/credentialsGetVaultManagement
POST/v1/vaults/{id}/credentialsUpdateVaultManagement
GET/v1/vaults/{id}/credentials/{id}GetVaultManagement
POST/v1/vaults/{id}/credentials/{id}UpdateVaultManagement
POST/v1/vaults/{id}/credentials/{id}/archiveUpdateVaultManagement
DELETE/v1/vaults/{id}/credentials/{id}UpdateVaultManagement
POST/v1/memory_storesCreateMemoryStoreData
GET/v1/memory_storesListMemoryStoresData
GET/v1/memory_stores/{id}GetMemoryStoreData
POST/v1/memory_stores/{id}UpdateMemoryStoreData
POST/v1/memory_stores/{id}/archiveArchiveMemoryStoreData
DELETE/v1/memory_stores/{id}DeleteMemoryStoreData
POST/v1/memory_stores/{id}/memoriesUpdateMemoryStoreData
GET/v1/memory_stores/{id}/memoriesGetMemoryStoreData
GET/v1/memory_stores/{id}/memories/{id}GetMemoryStoreData
POST/v1/memory_stores/{id}/memories/{id}UpdateMemoryStoreData
DELETE/v1/memory_stores/{id}/memories/{id}UpdateMemoryStoreData
GET/v1/memory_stores/{id}/memory_versionsGetMemoryStoreData
GET/v1/memory_stores/{id}/memory_versions/{id}GetMemoryStoreData
POST/v1/memory_stores/{id}/memory_versions/{id}/redactUpdateMemoryStoreData
GET/v1/webhooksListWebhooksManagement
GET/v1/webhooks/{id}GetWebhookManagement
POST/v1/webhooksCreateWebhookManagement
POST/v1/webhooks/{id}UpdateWebhookManagement
DELETE/v1/webhooks/{id}DeleteWebhookManagement
POST/v1/webhooks/{id}/regenerate_signing_secretRotateWebhookSecretManagement

Routes not in this table are not available on Claude Platform on AWS. The gateway denies any route not listed here by default.

Managed policies

AWS provides five managed policies for Claude Platform on AWS. All managed policies apply to Resource: "*".

PolicyGrants
AnthropicFullAccessaws-external-anthropic:*
AnthropicReadOnlyAccessGet*, List*, CallWithBearerToken
AnthropicInferenceAccessGet*, List*, CreateInference, CreateBatchInference, CancelBatchInference, DeleteBatchInference, CountTokens, CallWithBearerToken
AnthropicLimitedAccessAll AnthropicInferenceAccess actions, plus all Claude Managed Agents actions (agents, sessions, environments, vaults, memory stores, webhooks, and self-hosted environment work)
AnthropicSelfHostedEnvironmentAccessGetEnvironment, ProcessEnvironmentWork, GetSession, UpdateSession, GetSkill, CallWithBearerToken

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, 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:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "aws-external-anthropic:CreateInference",
        "aws-external-anthropic:CountTokens",
        "aws-external-anthropic:GetModel",
        "aws-external-anthropic:ListModels",
        "aws-external-anthropic:GetWorkspace"
      ],
      "Resource": "arn:aws:aws-external-anthropic:us-west-2:123456789012:workspace/wrkspc_01AbCdEf23GhIj"
    }
  ]
}

Per-customer workspace isolation

Restricts a role to a single workspace:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "aws-external-anthropic:*",
      "Resource": "arn:aws:aws-external-anthropic:us-west-2:123456789012:workspace/wrkspc_01AbCdEf23GhIj"
    },
    {
      "Effect": "Allow",
      "Action": [
        "aws-external-anthropic:CallWithBearerToken",
        "aws-external-anthropic:AssumeConsole"
      ],
      "Resource": "*"
    }
  ]
}

Feature lockdown for a ZDR-sensitive 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:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "aws-external-anthropic:CreateBatchInference",
        "aws-external-anthropic:CreateFile"
      ],
      "Resource": "arn:aws:aws-external-anthropic:us-west-2:123456789012:workspace/wrkspc_01AbCdEf23GhIj"
    }
  ]
}

Provisioning automation

Grants a CI/CD role the actions needed to create and manage workspaces, without any inference permissions:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "aws-external-anthropic:CreateWorkspace",
        "aws-external-anthropic:GetWorkspace",
        "aws-external-anthropic:ListWorkspaces",
        "aws-external-anthropic:UpdateWorkspace",
        "aws-external-anthropic:ArchiveWorkspace"
      ],
      "Resource": "*"
    }
  ]
}

CreateWorkspace and ListWorkspaces are account-scoped operations. Specifying a workspace ARN on these actions has no effect; use Resource: "*".

See also

Was this page helpful?