claude-platform-on-aws-iam-actions changedapi/claude-platform-on-aws-iam-actions
Nearest release: v2.1.318, published 4 hours before this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Recorded here
Lines+29added
Lines−24removed
From line
81
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits12to this page, all time
The whole hunk
from line 81, old and new numbered
/
from line 81
8181</Note>
8282
8383<Note>
84 Creating or deleting an individual skill version maps to `UpdateSkill`, not `CreateSkill` or `DeleteSkill`. A policy that denies `aws-external-anthropic:Delete*` still allows version deletion, and a policy that denies `aws-external-anthropic:Create*` still allows version creation. Deny `UpdateSkill` and `CreateSkill` as well if you need to prevent any skill mutation.
84 Creating or deleting an individual skill version maps to `UpdateSkill`, not `CreateSkill` or `DeleteSkill`. A policy that denies `aws-external-anthropic:Delete*` still allows version deletion, and a policy that denies `aws-external-anthropic:Create*` still allows version creation. To block every write route under `/v1/skills`, deny `CreateSkill`, `UpdateSkill`, and `DeleteSkill`.
8585</Note>
8686
8787### Agents
from line 95
9595| `ArchiveAgent` | `POST /v1/agents/{id}/archive` |
9696
9797<Note>
98 Agents support only archive, not hard delete. A policy that denies `aws-external-anthropic:Delete*` does not block `ArchiveAgent`. Deny `ArchiveAgent`, `UpdateAgent`, and `CreateAgent` if you need to prevent any agent mutation.
98 Agents support only archive, not hard delete. A policy that denies `aws-external-anthropic:Delete*` does not block `ArchiveAgent`. To block every write route under `/v1/agents`, deny `CreateAgent`, `UpdateAgent`, and `ArchiveAgent`.
9999</Note>
100100
101101### Sessions
102102
103| Action | Routes authorized |
104| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
105| `CreateSession` | `POST /v1/sessions` |
106| `GetSession` | `GET /v1/sessions/{id}`<br />`GET /v1/sessions/{id}/events`<br />`GET /v1/sessions/{id}/events/stream`<br />`GET /v1/sessions/{id}/resources`<br />`GET /v1/sessions/{id}/resources/{id}` |
107| `ListSessions` | `GET /v1/sessions` |
108| `UpdateSession` | `POST /v1/sessions/{id}`<br />`POST /v1/sessions/{id}/events`<br />`POST /v1/sessions/{id}/resources`<br />`POST /v1/sessions/{id}/resources/{id}`<br />`DELETE /v1/sessions/{id}/resources/{id}` |
109| `ArchiveSession` | `POST /v1/sessions/{id}/archive` |
110| `DeleteSession` | `DELETE /v1/sessions/{id}` |
103| Action | Routes authorized |
104| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
105| `CreateSession` | `POST /v1/sessions` |
106| `GetSession` | `GET /v1/sessions/{id}`<br />`GET /v1/sessions/{id}/events`<br />`GET /v1/sessions/{id}/events/stream`<br />`GET /v1/sessions/{id}/resources`<br />`GET /v1/sessions/{id}/resources/{id}`<br />`GET /v1/sessions/{id}/threads`<br />`GET /v1/sessions/{id}/threads/{id}`<br />`GET /v1/sessions/{id}/threads/{id}/events`<br />`GET /v1/sessions/{id}/threads/{id}/stream` |
107| `ListSessions` | `GET /v1/sessions` |
108| `UpdateSession` | `POST /v1/sessions/{id}`<br />`POST /v1/sessions/{id}/events`<br />`POST /v1/sessions/{id}/resources`<br />`POST /v1/sessions/{id}/resources/{id}`<br />`DELETE /v1/sessions/{id}/resources/{id}`<br />`POST /v1/sessions/{id}/threads/{id}/archive` |
109| `ArchiveSession` | `POST /v1/sessions/{id}/archive` |
110| `DeleteSession` | `DELETE /v1/sessions/{id}` |
111111
112112<Note>
113 `GetSession` authorizes reading session metadata, the full event stream (conversation history), and session resources. The `AnthropicReadOnlyAccess`, `AnthropicInferenceAccess`, and `AnthropicLimitedAccess` policies’ `Get*` wildcards include this action.
113 `GetSession` authorizes reading session metadata, the event stream (conversation history), session resources, and [session threads](https://platform.claude.com/docs/en/managed-agents/session-threads), including each thread’s events. The `AnthropicReadOnlyAccess`, `AnthropicInferenceAccess`, and `AnthropicLimitedAccess` policies’ `Get*` wildcards include this action, and the `AnthropicSelfHostedEnvironmentAccess` policy grants it explicitly.
114114</Note>
115115
116116<Note>
117 Creating, updating, or deleting an individual session sub-resource (events or session resources) maps to `UpdateSession`, not `CreateSession` or `DeleteSession`. A policy that denies `aws-external-anthropic:Delete*` still allows sub-resource deletion, and a policy that denies `aws-external-anthropic:Create*` still allows sub-resource creation. Deny `UpdateSession`, `CreateSession`, and `ArchiveSession` as well if you need to prevent any session mutation.
117 Every route that writes to an existing session’s events, resources, or threads maps to `UpdateSession`, not `CreateSession`, `DeleteSession`, or `ArchiveSession`. A policy that denies `aws-external-anthropic:Create*`, `Delete*`, or `Archive*` still allows sending events, adding or deleting session resources, and archiving session threads. To block every write route under `/v1/sessions`, deny `CreateSession`, `UpdateSession`, `ArchiveSession`, and `DeleteSession`. A principal with `ProcessEnvironmentWork` can still [stop a session](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes-operations#stop-a-session-gracefully) that runs in a self-hosted environment.
118118</Note>
119119
120120### Environments
from line 130
130130| `ProcessEnvironmentWork` | `GET /v1/environments/{id}/work/poll`<br />`POST /v1/environments/{id}/work/{work_id}`<br />`POST /v1/environments/{id}/work/{work_id}/ack`<br />`POST /v1/environments/{id}/work/{work_id}/heartbeat`<br />`POST /v1/environments/{id}/work/{work_id}/stop` |
131131
132132<Note>
133 A policy that denies `aws-external-anthropic:Delete*` does not block `ArchiveEnvironment`. `ProcessEnvironmentWork` is not matched by `Create*`, `Update*`, `Delete*`, or `Archive*` wildcards. Deny `ArchiveEnvironment`, `UpdateEnvironment`, `CreateEnvironment`, and `ProcessEnvironmentWork` as well if you need to prevent any environment mutation.
133 A policy that denies `aws-external-anthropic:Delete*` does not block `ArchiveEnvironment`. `ProcessEnvironmentWork` is not matched by `Create*`, `Update*`, `Delete*`, or `Archive*` wildcards. To block every write route under `/v1/environments`, deny `CreateEnvironment`, `UpdateEnvironment`, `ArchiveEnvironment`, `DeleteEnvironment`, and `ProcessEnvironmentWork`.
134134</Note>
135135
136136<Note>
from line 149
149149| `DeleteVault` | `DELETE /v1/vaults/{id}` |
150150
151151<Note>
152 Creating, updating, archiving, or deleting an individual vault credential maps to `UpdateVault`. Reading a credential maps to `GetVault`. Vault credential secrets are not exposed: secret fields are write-only and are never returned by `GetVault` (see [Authenticate with vaults](https://platform.claude.com/docs/en/managed-agents/vaults)). A policy that denies `aws-external-anthropic:Delete*` still allows credential deletion, and a policy that denies `aws-external-anthropic:Create*` still allows credential creation. Deny `UpdateVault`, `CreateVault`, and `ArchiveVault` as well if you need to prevent any vault mutation.
152 Creating, updating, archiving, or deleting an individual vault credential maps to `UpdateVault`. Reading a credential maps to `GetVault`. Vault credential secrets are not exposed: secret fields are write-only and are never returned by `GetVault` (see [Authenticate with vaults](https://platform.claude.com/docs/en/managed-agents/vaults)). A policy that denies `aws-external-anthropic:Create*`, `Delete*`, or `Archive*` still allows creating, deleting, and archiving credentials. To block every write route under `/v1/vaults`, deny `CreateVault`, `UpdateVault`, `ArchiveVault`, and `DeleteVault`.
153153</Note>
154154
155155### Memory stores
from line 168
168168</Note>
169169
170170<Note>
171 Creating, updating, or deleting an individual memory and redacting a memory version both map to `UpdateMemoryStore`, not `CreateMemoryStore` or `DeleteMemoryStore`. A policy that denies `aws-external-anthropic:Delete*` still allows individual-memory deletion and memory-version redaction, and a policy that denies `aws-external-anthropic:Create*` still allows individual-memory creation. Deny `UpdateMemoryStore`, `CreateMemoryStore`, and `ArchiveMemoryStore` as well if you need to prevent any memory-store mutation.
171 Creating, updating, or deleting an individual memory and redacting a memory version both map to `UpdateMemoryStore`, not `CreateMemoryStore` or `DeleteMemoryStore`. A policy that denies `aws-external-anthropic:Delete*` still allows individual-memory deletion and memory-version redaction, and a policy that denies `aws-external-anthropic:Create*` still allows individual-memory creation. To block every write route under `/v1/memory_stores`, deny `CreateMemoryStore`, `UpdateMemoryStore`, `ArchiveMemoryStore`, and `DeleteMemoryStore`. A principal with `CreateSession` can still [attach a store to a session](https://platform.claude.com/docs/en/managed-agents/memory#attach-a-memory-store-to-a-session) with `read_write` access, the default. That session’s agent can then write to the store.
172172</Note>
173173
174174### Webhooks
from line 187
187187</Note>
188188
189189<Note>
190 `RotateWebhookSecret` is not matched by `aws-external-anthropic:Create*`, `Update*`, or `Delete*` wildcards. A policy that denies those patterns still allows secret rotation. Deny `RotateWebhookSecret`, `UpdateWebhook`, `CreateWebhook`, and `DeleteWebhook` if you need to prevent any webhook mutation.
190 `RotateWebhookSecret` is not matched by `aws-external-anthropic:Create*`, `Update*`, or `Delete*` wildcards. A policy that denies those patterns still allows secret rotation. To block every write route under `/v1/webhooks`, deny `CreateWebhook`, `UpdateWebhook`, `DeleteWebhook`, and `RotateWebhookSecret`.
191191</Note>
192192
193193### User profiles
from line 220
220220| `ArchiveWorkspace` | `POST /v1/organizations/workspaces/{id}/archive` |
221221
222222<Note>
223 Workspaces support only archive, not hard delete. A policy that denies `aws-external-anthropic:Delete*` does not block `ArchiveWorkspace`. Deny `ArchiveWorkspace`, `UpdateWorkspace`, and `CreateWorkspace` if you need to prevent any workspace mutation.
223 Workspaces support only archive, not hard delete. A policy that denies `aws-external-anthropic:Delete*` does not block `ArchiveWorkspace`. To block every write route under `/v1/organizations/workspaces`, deny `CreateWorkspace`, `UpdateWorkspace`, and `ArchiveWorkspace`.
224224</Note>
225225
226226### Encryption keys
from line 234
234234| `DisableKey` | `DELETE /v1/organizations/external_keys/{id}` |
235235
236236<Note>
237 These actions manage your organization’s [customer-managed encryption key (CMEK)](https://platform.claude.com/docs/en/manage-claude/cmek-claude-platform-on-aws) registrations, the record of which AWS KMS key ARNs are registered. They do not create, change, or disable the keys in AWS KMS. `DisableKey` removes a registration and is rejected while any workspace still uses the key. `RegisterKey` and `DisableKey` are not matched by `Create*`, `Update*`, or `Delete*` wildcards; deny `RegisterKey`, `UpdateKey`, and `DisableKey` if you need to prevent any change to key registrations. In these routes, `{id}` is the URL-encoded KMS key ARN. Attaching a registered key to a workspace is a workspace operation, authorized by `CreateWorkspace` or `UpdateWorkspace`; the principal that attaches a key also needs `kms:DescribeKey`, `kms:Encrypt`, and `kms:Decrypt` on that key (see the [prerequisites](https://platform.claude.com/docs/en/manage-claude/cmek-claude-platform-on-aws#prerequisites)). External key actions are account-scoped: specifying a workspace ARN on them has no effect; use `Resource: "*"`.
237 These actions manage your organization’s [customer-managed encryption key (CMEK)](https://platform.claude.com/docs/en/manage-claude/cmek-claude-platform-on-aws) registrations, the record of which AWS KMS key ARNs are registered. They do not create, change, or disable the keys in AWS KMS. `DisableKey` removes a registration and is rejected while any workspace still uses the key. `RegisterKey` and `DisableKey` are not matched by `Create*`, `Update*`, or `Delete*` wildcards. To block every write route under `/v1/organizations/external_keys`, deny `RegisterKey`, `UpdateKey`, and `DisableKey`. In these routes, `{id}` is the URL-encoded KMS key ARN. Attaching a registered key to a workspace is a workspace operation, authorized by `CreateWorkspace` or `UpdateWorkspace`; the principal that attaches a key also needs `kms:DescribeKey`, `kms:Encrypt`, and `kms:Decrypt` on that key (see the [prerequisites](https://platform.claude.com/docs/en/manage-claude/cmek-claude-platform-on-aws#prerequisites)). External key actions are account-scoped: specifying a workspace ARN on them has no effect; use `Resource: "*"`.
238238</Note>
239239
240240### Compliance
from line 270
270270</Note>
271271
272272<Note>
273 `AddTelemetryDestinationWorkspace` and `RemoveTelemetryDestinationWorkspace` apply to the workspace in the route, and only on a destination whose **Workspaces** option is **Selected**. To change an **All except** list, use `UpdateAccountTelemetryDestination`. A policy that denies `aws-external-anthropic:Create*`, `Update*`, or `Delete*` still allows adding and removing workspaces. To block every change to destinations, also deny `AddTelemetryDestinationWorkspace` and `RemoveTelemetryDestinationWorkspace`.
273 `AddTelemetryDestinationWorkspace` and `RemoveTelemetryDestinationWorkspace` apply to the workspace in the route, and only on a destination whose **Workspaces** option is **Selected**. To change an **All except** list, use `UpdateAccountTelemetryDestination`. A policy that denies `aws-external-anthropic:Create*`, `Update*`, or `Delete*` still allows adding and removing workspaces. To block every write route under `/v1/organizations/telemetry_destinations`, deny `CreateAccountTelemetryDestination`, `UpdateAccountTelemetryDestination`, `DeleteAccountTelemetryDestination`, `TestAccountTelemetryDestination`, `AddTelemetryDestinationWorkspace`, and `RemoveTelemetryDestinationWorkspace`.
274274</Note>
275275
276276### Usage and cost
from line 376
376376| `POST` | `/v1/sessions/{id}/resources` | `UpdateSession` | Data |
377377| `POST` | `/v1/sessions/{id}/resources/{id}` | `UpdateSession` | Data |
378378| `DELETE` | `/v1/sessions/{id}/resources/{id}` | `UpdateSession` | Data |
379| `GET` | `/v1/sessions/{id}/threads` | `GetSession` | Data |
380| `GET` | `/v1/sessions/{id}/threads/{id}` | `GetSession` | Data |
381| `GET` | `/v1/sessions/{id}/threads/{id}/events` | `GetSession` | Data |
382| `GET` | `/v1/sessions/{id}/threads/{id}/stream` | `GetSession` | Data |
383| `POST` | `/v1/sessions/{id}/threads/{id}/archive` | `UpdateSession` | Data |
379384| `POST` | `/v1/environments` | `CreateEnvironment` | Data |
380385| `GET` | `/v1/environments` | `ListEnvironments` | Data |
381386| `GET` | `/v1/environments/{id}` | `GetEnvironment` | Data |
No line in this hunk matches that.