---
title: Claude Platform on AWS 的 IAM 動作
url: https://platform.claude.com/docs/zh-TW/api/claude-platform-on-aws-iam-actions
description: 透過 AWS 政策控制 Claude Platform on AWS 存取權限的 IAM 動作參考。
---

Claude Platform on AWS 使用 AWS IAM 進行存取控制。每個 API 路由都對應到 `aws-external-anthropic` 命名空間中的一個 IAM 動作。本頁列出所有動作、每個動作所授權的路由，以及適用於常見存取模式的受管政策（managed policies）。如需平台設定與驗證的相關資訊，請參閱 [Claude Platform on AWS](https://platform.claude.com/docs/zh-TW/build-with-claude/claude-platform-on-aws)。

## 服務詳細資訊

| 屬性           | 值                        |
| ------------ | ------------------------ |
| **IAM 服務前綴** | `aws-external-anthropic` |
| **資源類型**     | `workspace`              |

Workspace ARN 格式：

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

ARN 的區域欄位一律會填入，且與該 workspace 所綁定的區域相符。資源區段為帶標籤的 workspace ID（`wrkspc_...`），與您在 `anthropic-workspace-id` 標頭中傳入的值相同。

## 動作

動作遵循 AWS 的 `VerbNoun` 慣例，並採用嚴謹的動詞規範，使 `Get*` 和 `List*` 萬用字元能產生清楚的唯讀邊界。

### 推論

| 動作                | 授權的路由                            |
| ----------------- | -------------------------------- |
| `CreateInference` | `POST /v1/messages`              |
| `CountTokens`     | `POST /v1/messages/count_tokens` |

### 批次處理

| 動作                     | 授權的路由                                                                        |
| ---------------------- | ---------------------------------------------------------------------------- |
| `CreateBatchInference` | `POST /v1/messages/batches`                                                  |
| `GetBatchInference`    | `GET /v1/messages/batches/{id}`<br />`GET /v1/messages/batches/{id}/results` |
| `ListBatchInferences`  | `GET /v1/messages/batches`                                                   |
| `CancelBatchInference` | `POST /v1/messages/batches/{id}/cancel`                                      |
| `DeleteBatchInference` | `DELETE /v1/messages/batches/{id}`                                           |

<Note>
  `GetBatchInference` 同時授權讀取批次中繼資料與下載批次結果。`AnthropicReadOnlyAccess`、`AnthropicInferenceAccess` 與 `AnthropicLimitedAccess` 政策的 `Get*` 萬用字元包含此動作。
</Note>

### 模型

| 動作           | 授權的路由                 |
| ------------ | --------------------- |
| `GetModel`   | `GET /v1/models/{id}` |
| `ListModels` | `GET /v1/models`      |

### 檔案

| 動作           | 授權的路由                                                  |
| ------------ | ------------------------------------------------------ |
| `CreateFile` | `POST /v1/files`                                       |
| `GetFile`    | `GET /v1/files/{id}`<br />`GET /v1/files/{id}/content` |
| `ListFiles`  | `GET /v1/files`                                        |
| `DeleteFile` | `DELETE /v1/files/{id}`                                |

<Note>
  `GetFile` 同時授權中繼資料與內容下載。具有唯讀存取權的主體可以下載檔案位元組，而不僅僅是列出檔案。
</Note>

### Skills

| 動作            | 授權的路由                                                                                                                                                         |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `CreateSkill` | `POST /v1/skills`                                                                                                                                             |
| `GetSkill`    | `GET /v1/skills/{id}`<br />`GET /v1/skills/{id}/versions`<br />`GET /v1/skills/{id}/versions/{version}`<br />`GET /v1/skills/{id}/versions/{version}/content` |
| `ListSkills`  | `GET /v1/skills`                                                                                                                                              |
| `UpdateSkill` | `POST /v1/skills/{id}/versions`<br />`DELETE /v1/skills/{id}/versions/{version}`                                                                              |
| `DeleteSkill` | `DELETE /v1/skills/{id}`                                                                                                                                      |

<Note>
  `GetSkill` 同時授權 skill 中繼資料與 skill 內容下載。具有唯讀存取權的主體可以下載 skill 位元組，而不僅僅是列出 skills。
</Note>

<Note>
  建立或刪除個別 skill 版本對應到 `UpdateSkill`，而非 `CreateSkill` 或 `DeleteSkill`。拒絕 `aws-external-anthropic:Delete*` 的政策仍允許刪除版本，而拒絕 `aws-external-anthropic:Create*` 的政策仍允許建立版本。若您需要防止任何 skill 變動，請一併拒絕 `UpdateSkill` 與 `CreateSkill`。
</Note>

### Agents

| 動作             | 授權的路由                                                     |
| -------------- | --------------------------------------------------------- |
| `CreateAgent`  | `POST /v1/agents`                                         |
| `GetAgent`     | `GET /v1/agents/{id}`<br />`GET /v1/agents/{id}/versions` |
| `ListAgents`   | `GET /v1/agents`                                          |
| `UpdateAgent`  | `POST /v1/agents/{id}`                                    |
| `ArchiveAgent` | `POST /v1/agents/{id}/archive`                            |

<Note>
  Agents 僅支援封存，不支援永久刪除。拒絕 `aws-external-anthropic:Delete*` 的政策不會封鎖 `ArchiveAgent`。若您需要防止任何 agent 變動，請拒絕 `ArchiveAgent`、`UpdateAgent` 與 `CreateAgent`。
</Note>

### Sessions

| 動作               | 授權的路由                                                                                                                                                                                             |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `CreateSession`  | `POST /v1/sessions`                                                                                                                                                                               |
| `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}`         |
| `ListSessions`   | `GET /v1/sessions`                                                                                                                                                                                |
| `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}` |
| `ArchiveSession` | `POST /v1/sessions/{id}/archive`                                                                                                                                                                  |
| `DeleteSession`  | `DELETE /v1/sessions/{id}`                                                                                                                                                                        |

<Note>
  `GetSession` 授權讀取 session 中繼資料、完整事件串流（對話歷史）以及 session 資源。`AnthropicReadOnlyAccess`、`AnthropicInferenceAccess` 與 `AnthropicLimitedAccess` 政策的 `Get*` 萬用字元包含此動作。
</Note>

<Note>
  建立、更新或刪除個別 session 子資源（事件或 session 資源）對應到 `UpdateSession`，而非 `CreateSession` 或 `DeleteSession`。拒絕 `aws-external-anthropic:Delete*` 的政策仍允許刪除子資源，而拒絕 `aws-external-anthropic:Create*` 的政策仍允許建立子資源。若您需要防止任何 session 變動，請一併拒絕 `UpdateSession`、`CreateSession` 與 `ArchiveSession`。
</Note>

### Environments

| 動作                       | 授權的路由                                                                                                                                                                                                                                                        |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `CreateEnvironment`      | `POST /v1/environments`                                                                                                                                                                                                                                      |
| `GetEnvironment`         | `GET /v1/environments/{id}`<br />`GET /v1/environments/{id}/work`<br />`GET /v1/environments/{id}/work/{work_id}`<br />`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`<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` |

<Note>
  拒絕 `aws-external-anthropic:Delete*` 的政策不會封鎖 `ArchiveEnvironment`。`ProcessEnvironmentWork` 不會被 `Create*`、`Update*`、`Delete*` 或 `Archive*` 萬用字元比對到。若您需要防止任何 environment 變動，請一併拒絕 `ArchiveEnvironment`、`UpdateEnvironment`、`CreateEnvironment` 與 `ProcessEnvironmentWork`。
</Note>

<Note>
  `ProcessEnvironmentWork` 授權[自行託管沙箱](https://platform.claude.com/docs/zh-TW/managed-agents/self-hosted-sandboxes)工作程式對 environment 工作項目進行輪詢、確認、心跳、停止以及回傳結果。請僅將其授予執行自行託管 environment 工作程式的主體。`AnthropicSelfHostedEnvironmentAccess` 受管政策包含此動作。
</Note>

### Vaults

| 動作             | 授權的路由                                                                                                                                                                                                           |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `CreateVault`  | `POST /v1/vaults`                                                                                                                                                                                               |
| `GetVault`     | `GET /v1/vaults/{id}`<br />`GET /v1/vaults/{id}/credentials`<br />`GET /v1/vaults/{id}/credentials/{id}`                                                                                                        |
| `ListVaults`   | `GET /v1/vaults`                                                                                                                                                                                                |
| `UpdateVault`  | `POST /v1/vaults/{id}`<br />`POST /v1/vaults/{id}/credentials`<br />`POST /v1/vaults/{id}/credentials/{id}`<br />`POST /v1/vaults/{id}/credentials/{id}/archive`<br />`DELETE /v1/vaults/{id}/credentials/{id}` |
| `ArchiveVault` | `POST /v1/vaults/{id}/archive`                                                                                                                                                                                  |
| `DeleteVault`  | `DELETE /v1/vaults/{id}`                                                                                                                                                                                        |

<Note>
  建立、更新、封存或刪除個別 vault 憑證對應到 `UpdateVault`。讀取憑證對應到 `GetVault`。Vault 憑證密鑰不會外洩：密鑰欄位為唯寫，且 `GetVault` 永遠不會回傳這些欄位（請參閱[使用 vaults 進行驗證](https://platform.claude.com/docs/zh-TW/managed-agents/vaults)）。拒絕 `aws-external-anthropic:Delete*` 的政策仍允許刪除憑證，而拒絕 `aws-external-anthropic:Create*` 的政策仍允許建立憑證。若您需要防止任何 vault 變動，請一併拒絕 `UpdateVault`、`CreateVault` 與 `ArchiveVault`。
</Note>

### Memory stores

| 動作                   | 授權的路由                                                                                                                                                                                                                                        |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `CreateMemoryStore`  | `POST /v1/memory_stores`                                                                                                                                                                                                                     |
| `GetMemoryStore`     | `GET /v1/memory_stores/{id}`<br />`GET /v1/memory_stores/{id}/memories`<br />`GET /v1/memory_stores/{id}/memories/{id}`<br />`GET /v1/memory_stores/{id}/memory_versions`<br />`GET /v1/memory_stores/{id}/memory_versions/{id}`             |
| `ListMemoryStores`   | `GET /v1/memory_stores`                                                                                                                                                                                                                      |
| `UpdateMemoryStore`  | `POST /v1/memory_stores/{id}`<br />`POST /v1/memory_stores/{id}/memories`<br />`POST /v1/memory_stores/{id}/memories/{id}`<br />`DELETE /v1/memory_stores/{id}/memories/{id}`<br />`POST /v1/memory_stores/{id}/memory_versions/{id}/redact` |
| `ArchiveMemoryStore` | `POST /v1/memory_stores/{id}/archive`                                                                                                                                                                                                        |
| `DeleteMemoryStore`  | `DELETE /v1/memory_stores/{id}`                                                                                                                                                                                                              |

<Note>
  `GetMemoryStore` 授權讀取 store 中繼資料、所有記憶以及記憶版本歷史。`AnthropicReadOnlyAccess`、`AnthropicInferenceAccess` 與 `AnthropicLimitedAccess` 政策的 `Get*` 萬用字元包含此動作。
</Note>

<Note>
  建立、更新或刪除個別記憶，以及遮蔽（redact）記憶版本，皆對應到 `UpdateMemoryStore`，而非 `CreateMemoryStore` 或 `DeleteMemoryStore`。拒絕 `aws-external-anthropic:Delete*` 的政策仍允許刪除個別記憶與遮蔽記憶版本，而拒絕 `aws-external-anthropic:Create*` 的政策仍允許建立個別記憶。若您需要防止任何 memory store 變動，請一併拒絕 `UpdateMemoryStore`、`CreateMemoryStore` 與 `ArchiveMemoryStore`。
</Note>

### Webhooks

| 動作                    | 授權的路由                                              |
| --------------------- | -------------------------------------------------- |
| `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` |

<Note>
  Webhook 簽署密鑰為唯寫。`GetWebhook` 僅回傳 webhook 中繼資料；不會回傳簽署密鑰。
</Note>

<Note>
  `RotateWebhookSecret` 不會被 `aws-external-anthropic:Create*`、`Update*` 或 `Delete*` 萬用字元比對到。拒絕這些模式的政策仍允許輪替密鑰。若您需要防止任何 webhook 變動，請拒絕 `RotateWebhookSecret`、`UpdateWebhook`、`CreateWebhook` 與 `DeleteWebhook`。
</Note>

### 使用者設定檔

| 動作                               | 授權的路由                                        |
| -------------------------------- | -------------------------------------------- |
| `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` |

<Note>
  使用者設定檔動作與 `ListWorkspaces` 一樣為帳戶範圍。`Resource` 為 workspace ARN 的陳述式不會授予這些動作；請使用 `Resource: "*"`。
</Note>

<Warning>
  IAM 動作比對不區分大小寫。萬用字元 `aws-external-anthropic:*File` 會比對到 `CreateFile`、`GetFile` 與 `DeleteFile`，但不會比對到 `ListFiles`（其結尾為「files」而非「file」）。它也會過度比對到 `CreateUserProfile`、`GetUserProfile` 與 `UpdateUserProfile`，因為「Profile」的結尾是「file」。若您只想授予或拒絕 Files API 動作，請明確列舉它們（`CreateFile`、`GetFile`、`ListFiles`、`DeleteFile`），而非使用 `*File` 後綴模式。
</Warning>

### Workspaces

| 動作                 | 授權的路由                                            |
| ------------------ | ------------------------------------------------ |
| `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` |

<Note>
  Workspaces 僅支援封存，不支援永久刪除。拒絕 `aws-external-anthropic:Delete*` 的政策不會封鎖 `ArchiveWorkspace`。若您需要防止任何 workspace 變動，請拒絕 `ArchiveWorkspace`、`UpdateWorkspace` 與 `CreateWorkspace`。
</Note>

### 加密金鑰

| 動作            | 授權的路由                                         |
| ------------- | --------------------------------------------- |
| `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}` |

<Note>
  這些動作管理您組織的[客戶管理加密金鑰（CMEK）](https://platform.claude.com/docs/zh-TW/manage-claude/cmek-aws-kms#claude-platform-on-aws)註冊，也就是記錄哪些 AWS KMS 金鑰 ARN 已註冊。它們不會在 AWS KMS 中建立、變更或停用金鑰。`DisableKey` 會移除註冊，且在仍有任何 workspace 使用該金鑰時會被拒絕。`RegisterKey` 與 `DisableKey` 不會被 `Create*`、`Update*` 或 `Delete*` 萬用字元比對到；若您需要防止對金鑰註冊的任何變更，請拒絕 `RegisterKey`、`UpdateKey` 與 `DisableKey`。在這些路由中，`{id}` 是經 URL 編碼的 KMS 金鑰 ARN。將已註冊的金鑰附加到 workspace 屬於 workspace 操作，由 `CreateWorkspace` 或 `UpdateWorkspace` 授權；附加金鑰的主體還需要對該金鑰具有 `kms:DescribeKey`、`kms:Encrypt` 與 `kms:Decrypt` 權限（請參閱[先決條件](https://platform.claude.com/docs/zh-TW/manage-claude/cmek-aws-kms#claude-platform-on-aws)）。外部金鑰動作為帳戶範圍：對其指定 workspace ARN 不會產生任何效果；請使用 `Resource: "*"`。
</Note>

### 合規

| 動作                         | 授權的路由                           |
| -------------------------- | ------------------------------- |
| `ListComplianceActivities` | `GET /v1/compliance/activities` |

<Note>
  `ListComplianceActivities` 授權讀取 [Compliance API](https://platform.claude.com/docs/zh-TW/manage-claude/compliance-api) 的[活動摘要（Activity Feed）](https://platform.claude.com/docs/zh-TW/manage-claude/compliance-activity-feed)，即包含存取透明度事件的全組織稽核日誌。在 Compliance API [為您的組織啟用](https://platform.claude.com/docs/zh-TW/manage-claude/compliance-api-access)之前，此路由會回傳錯誤；啟用需透過您的 Anthropic 帳戶團隊提出申請。`AnthropicReadOnlyAccess`、`AnthropicInferenceAccess` 與 `AnthropicLimitedAccess` 政策的 `List*` 萬用字元包含此動作。
</Note>

<Note>
  `ListComplianceActivities` 與 `ListWorkspaces` 一樣為帳戶範圍。對此動作指定 workspace ARN 不會產生任何效果；請使用 `Resource: "*"`。
</Note>

### 遙測目的地

| 動作                                          | 授權的路由                                                                            |
| ------------------------------------------- | -------------------------------------------------------------------------------- |
| `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}`                             |
| `DeleteAccountTelemetryDestination`         | `DELETE /v1/organizations/telemetry_destinations/{id}`                           |
| `TestAccountTelemetryDestination`           | `POST /v1/organizations/telemetry_destinations/{id}/test`                        |
| `ListAccountTelemetryDestinationWorkspaces` | `GET /v1/organizations/telemetry_destinations/{id}/workspaces`                   |
| `AddTelemetryDestinationWorkspace`          | `POST /v1/organizations/telemetry_destinations/{id}/workspaces/{workspace_id}`   |
| `RemoveTelemetryDestinationWorkspace`       | `DELETE /v1/organizations/telemetry_destinations/{id}/workspaces/{workspace_id}` |

<Note>
  除了 `AddTelemetryDestinationWorkspace` 和 `RemoveTelemetryDestinationWorkspace` 之外，其餘動作的範圍皆為帳戶層級，因此在這些動作上指定 workspace ARN 沒有作用。請使用 `Resource: "*"`。一個目的地可以匯出組織中每個 workspace、每個區域的遙測資料。請僅將 `CreateAccountTelemetryDestination` 和 `UpdateAccountTelemetryDestination` 授予您信任可存取所有這些遙測資料的主體。
</Note>

<Note>
  `AddTelemetryDestinationWorkspace` 和 `RemoveTelemetryDestinationWorkspace` 適用於路由中的 workspace，且僅適用於 **Workspaces** 選項為 **Selected** 的目的地。若要變更 **All except** 清單，請使用 `UpdateAccountTelemetryDestination`。拒絕 `aws-external-anthropic:Create*`、`Update*` 或 `Delete*` 的政策仍允許新增和移除 workspaces。若要封鎖對目的地的任何變更，請一併拒絕 `AddTelemetryDestinationWorkspace` 和 `RemoveTelemetryDestinationWorkspace`。
</Note>

### 驗證

| 動作                    | 授權的路由 |
| --------------------- | ----- |
| `CallWithBearerToken` | （無）   |

`CallWithBearerToken` 是驗證層的權限，授權主體透過 API 金鑰（bearer token）而非 AWS SigV4 進行驗證。它不對應到任何路由。請將其與您希望 API 金鑰持有者能執行的路由對應動作一併授予。

### Console 存取

| 動作              | 授權的路由 |
| --------------- | ----- |
| `AssumeConsole` | （無）   |

`AssumeConsole` 授權主體透過 AWS Console 聯合流程，為 Claude Platform on AWS workspace 開啟 Claude Console。它不對應到任何路由。請將其授予應能在 AWS Console 的 Claude Platform on AWS 服務頁面上點擊 **Open Claude Console** 的主體。Claude Console 角色（Admin 或 Developer）由您的 Anthropic 帳戶代表另行指派；並非由主體的 IAM 權限推導而來。如需登入流程與角色說明，請參閱[使用 Claude Console](https://platform.claude.com/docs/zh-TW/build-with-claude/claude-platform-on-aws#using-the-claude-console)。

## 路由對動作對應

下表列出 Claude Platform on AWS 上的每個路由，以及呼叫該路由所需的 IAM 動作。每個 IAM 動作也授權使用 `anthropic-beta` 標頭的請求；路由的 beta 變體不需要另外的 IAM 動作。CloudTrail 將每個動作分類為 Data 事件（高流量的資料平面操作）或 Management 事件（控制平面操作）。Vault 與 webhook 動作被分類為 Management 事件，因為它們持有密鑰（vault 憑證與 webhook 簽署密鑰），並受益於預設開啟的稽核記錄。Workspace、外部金鑰、遙測目的地與合規動作也被分類為 Management 事件，因為它們是組織範圍的控制平面操作。所有其他動作，包括推論、批次、模型、檔案、skill、使用者設定檔以及其餘的 Claude Managed Agents 動作，皆被分類為 Data 事件。

| 方法       | 路由                                                                        | IAM 動作                                      | CloudTrail 事件類型 |
| -------- | ------------------------------------------------------------------------- | ------------------------------------------- | --------------- |
| `POST`   | `/v1/messages`                                                            | `CreateInference`                           | Data            |
| `POST`   | `/v1/messages/count_tokens`                                               | `CountTokens`                               | Data            |
| `POST`   | `/v1/messages/batches`                                                    | `CreateBatchInference`                      | Data            |
| `GET`    | `/v1/messages/batches`                                                    | `ListBatchInferences`                       | Data            |
| `GET`    | `/v1/messages/batches/{id}`                                               | `GetBatchInference`                         | Data            |
| `GET`    | `/v1/messages/batches/{id}/results`                                       | `GetBatchInference`                         | Data            |
| `POST`   | `/v1/messages/batches/{id}/cancel`                                        | `CancelBatchInference`                      | Data            |
| `DELETE` | `/v1/messages/batches/{id}`                                               | `DeleteBatchInference`                      | Data            |
| `GET`    | `/v1/models`                                                              | `ListModels`                                | Data            |
| `GET`    | `/v1/models/{id}`                                                         | `GetModel`                                  | Data            |
| `POST`   | `/v1/files`                                                               | `CreateFile`                                | Data            |
| `GET`    | `/v1/files`                                                               | `ListFiles`                                 | Data            |
| `GET`    | `/v1/files/{id}`                                                          | `GetFile`                                   | Data            |
| `GET`    | `/v1/files/{id}/content`                                                  | `GetFile`                                   | Data            |
| `DELETE` | `/v1/files/{id}`                                                          | `DeleteFile`                                | Data            |
| `POST`   | `/v1/skills`                                                              | `CreateSkill`                               | Data            |
| `GET`    | `/v1/skills`                                                              | `ListSkills`                                | Data            |
| `GET`    | `/v1/skills/{id}`                                                         | `GetSkill`                                  | Data            |
| `DELETE` | `/v1/skills/{id}`                                                         | `DeleteSkill`                               | Data            |
| `POST`   | `/v1/skills/{id}/versions`                                                | `UpdateSkill`                               | Data            |
| `GET`    | `/v1/skills/{id}/versions`                                                | `GetSkill`                                  | Data            |
| `GET`    | `/v1/skills/{id}/versions/{version}`                                      | `GetSkill`                                  | Data            |
| `GET`    | `/v1/skills/{id}/versions/{version}/content`                              | `GetSkill`                                  | Data            |
| `DELETE` | `/v1/skills/{id}/versions/{version}`                                      | `UpdateSkill`                               | Data            |
| `POST`   | `/v1/user_profiles`                                                       | `CreateUserProfile`                         | Data            |
| `GET`    | `/v1/user_profiles`                                                       | `ListUserProfiles`                          | Data            |
| `GET`    | `/v1/user_profiles/{id}`                                                  | `GetUserProfile`                            | Data            |
| `POST`   | `/v1/user_profiles/{id}`                                                  | `UpdateUserProfile`                         | Data            |
| `POST`   | `/v1/user_profiles/{id}/enrollment_url`                                   | `CreateUserProfileEnrollmentUrl`            | Data            |
| `POST`   | `/v1/organizations/workspaces`                                            | `CreateWorkspace`                           | Management      |
| `GET`    | `/v1/organizations/workspaces`                                            | `ListWorkspaces`                            | Management      |
| `GET`    | `/v1/organizations/workspaces/{id}`                                       | `GetWorkspace`                              | Management      |
| `POST`   | `/v1/organizations/workspaces/{id}`                                       | `UpdateWorkspace`                           | Management      |
| `POST`   | `/v1/organizations/workspaces/{id}/archive`                               | `ArchiveWorkspace`                          | Management      |
| `POST`   | `/v1/organizations/external_keys`                                         | `RegisterKey`                               | Management      |
| `GET`    | `/v1/organizations/external_keys`                                         | `ListKeys`                                  | Management      |
| `GET`    | `/v1/organizations/external_keys/{id}`                                    | `GetKey`                                    | Management      |
| `POST`   | `/v1/organizations/external_keys/{id}`                                    | `UpdateKey`                                 | Management      |
| `DELETE` | `/v1/organizations/external_keys/{id}`                                    | `DisableKey`                                | Management      |
| `POST`   | `/v1/organizations/telemetry_destinations`                                | `CreateAccountTelemetryDestination`         | Management      |
| `GET`    | `/v1/organizations/telemetry_destinations`                                | `ListAccountTelemetryDestinations`          | Management      |
| `GET`    | `/v1/organizations/telemetry_destinations/{id}`                           | `GetAccountTelemetryDestination`            | Management      |
| `POST`   | `/v1/organizations/telemetry_destinations/{id}`                           | `UpdateAccountTelemetryDestination`         | Management      |
| `DELETE` | `/v1/organizations/telemetry_destinations/{id}`                           | `DeleteAccountTelemetryDestination`         | Management      |
| `POST`   | `/v1/organizations/telemetry_destinations/{id}/test`                      | `TestAccountTelemetryDestination`           | Management      |
| `GET`    | `/v1/organizations/telemetry_destinations/{id}/workspaces`                | `ListAccountTelemetryDestinationWorkspaces` | Management      |
| `POST`   | `/v1/organizations/telemetry_destinations/{id}/workspaces/{workspace_id}` | `AddTelemetryDestinationWorkspace`          | Management      |
| `DELETE` | `/v1/organizations/telemetry_destinations/{id}/workspaces/{workspace_id}` | `RemoveTelemetryDestinationWorkspace`       | Management      |
| `GET`    | `/v1/compliance/activities`                                               | `ListComplianceActivities`                  | Management      |
| `POST`   | `/v1/agents`                                                              | `CreateAgent`                               | Data            |
| `GET`    | `/v1/agents`                                                              | `ListAgents`                                | Data            |
| `GET`    | `/v1/agents/{id}`                                                         | `GetAgent`                                  | Data            |
| `POST`   | `/v1/agents/{id}`                                                         | `UpdateAgent`                               | Data            |
| `POST`   | `/v1/agents/{id}/archive`                                                 | `ArchiveAgent`                              | Data            |
| `GET`    | `/v1/agents/{id}/versions`                                                | `GetAgent`                                  | Data            |
| `POST`   | `/v1/sessions`                                                            | `CreateSession`                             | Data            |
| `GET`    | `/v1/sessions`                                                            | `ListSessions`                              | Data            |
| `GET`    | `/v1/sessions/{id}`                                                       | `GetSession`                                | Data            |
| `POST`   | `/v1/sessions/{id}`                                                       | `UpdateSession`                             | Data            |
| `POST`   | `/v1/sessions/{id}/archive`                                               | `ArchiveSession`                            | Data            |
| `DELETE` | `/v1/sessions/{id}`                                                       | `DeleteSession`                             | Data            |
| `GET`    | `/v1/sessions/{id}/events`                                                | `GetSession`                                | Data            |
| `POST`   | `/v1/sessions/{id}/events`                                                | `UpdateSession`                             | Data            |
| `GET`    | `/v1/sessions/{id}/events/stream`                                         | `GetSession`                                | Data            |
| `GET`    | `/v1/sessions/{id}/resources`                                             | `GetSession`                                | Data            |
| `GET`    | `/v1/sessions/{id}/resources/{id}`                                        | `GetSession`                                | Data            |
| `POST`   | `/v1/sessions/{id}/resources`                                             | `UpdateSession`                             | Data            |
| `POST`   | `/v1/sessions/{id}/resources/{id}`                                        | `UpdateSession`                             | Data            |
| `DELETE` | `/v1/sessions/{id}/resources/{id}`                                        | `UpdateSession`                             | Data            |
| `POST`   | `/v1/environments`                                                        | `CreateEnvironment`                         | Data            |
| `GET`    | `/v1/environments`                                                        | `ListEnvironments`                          | Data            |
| `GET`    | `/v1/environments/{id}`                                                   | `GetEnvironment`                            | Data            |
| `POST`   | `/v1/environments/{id}`                                                   | `UpdateEnvironment`                         | Data            |
| `POST`   | `/v1/environments/{id}/archive`                                           | `ArchiveEnvironment`                        | Data            |
| `DELETE` | `/v1/environments/{id}`                                                   | `DeleteEnvironment`                         | Data            |
| `GET`    | `/v1/environments/{id}/work`                                              | `GetEnvironment`                            | Data            |
| `GET`    | `/v1/environments/{id}/work/poll`                                         | `ProcessEnvironmentWork`                    | Data            |
| `GET`    | `/v1/environments/{id}/work/{work_id}`                                    | `GetEnvironment`                            | Data            |
| `GET`    | `/v1/environments/{id}/work/stats`                                        | `GetEnvironment`                            | Data            |
| `POST`   | `/v1/environments/{id}/work/{work_id}`                                    | `ProcessEnvironmentWork`                    | Data            |
| `POST`   | `/v1/environments/{id}/work/{work_id}/ack`                                | `ProcessEnvironmentWork`                    | Data            |
| `POST`   | `/v1/environments/{id}/work/{work_id}/heartbeat`                          | `ProcessEnvironmentWork`                    | Data            |
| `POST`   | `/v1/environments/{id}/work/{work_id}/stop`                               | `ProcessEnvironmentWork`                    | Data            |
| `POST`   | `/v1/vaults`                                                              | `CreateVault`                               | Management      |
| `GET`    | `/v1/vaults`                                                              | `ListVaults`                                | Management      |
| `GET`    | `/v1/vaults/{id}`                                                         | `GetVault`                                  | Management      |
| `POST`   | `/v1/vaults/{id}`                                                         | `UpdateVault`                               | Management      |
| `POST`   | `/v1/vaults/{id}/archive`                                                 | `ArchiveVault`                              | Management      |
| `DELETE` | `/v1/vaults/{id}`                                                         | `DeleteVault`                               | Management      |
| `GET`    | `/v1/vaults/{id}/credentials`                                             | `GetVault`                                  | Management      |
| `POST`   | `/v1/vaults/{id}/credentials`                                             | `UpdateVault`                               | Management      |
| `GET`    | `/v1/vaults/{id}/credentials/{id}`                                        | `GetVault`                                  | Management      |
| `POST`   | `/v1/vaults/{id}/credentials/{id}`                                        | `UpdateVault`                               | Management      |
| `POST`   | `/v1/vaults/{id}/credentials/{id}/archive`                                | `UpdateVault`                               | Management      |
| `DELETE` | `/v1/vaults/{id}/credentials/{id}`                                        | `UpdateVault`                               | Management      |
| `POST`   | `/v1/memory_stores`                                                       | `CreateMemoryStore`                         | Data            |
| `GET`    | `/v1/memory_stores`                                                       | `ListMemoryStores`                          | Data            |
| `GET`    | `/v1/memory_stores/{id}`                                                  | `GetMemoryStore`                            | Data            |
| `POST`   | `/v1/memory_stores/{id}`                                                  | `UpdateMemoryStore`                         | Data            |
| `POST`   | `/v1/memory_stores/{id}/archive`                                          | `ArchiveMemoryStore`                        | Data            |
| `DELETE` | `/v1/memory_stores/{id}`                                                  | `DeleteMemoryStore`                         | Data            |
| `POST`   | `/v1/memory_stores/{id}/memories`                                         | `UpdateMemoryStore`                         | Data            |
| `GET`    | `/v1/memory_stores/{id}/memories`                                         | `GetMemoryStore`                            | Data            |
| `GET`    | `/v1/memory_stores/{id}/memories/{id}`                                    | `GetMemoryStore`                            | Data            |
| `POST`   | `/v1/memory_stores/{id}/memories/{id}`                                    | `UpdateMemoryStore`                         | Data            |
| `DELETE` | `/v1/memory_stores/{id}/memories/{id}`                                    | `UpdateMemoryStore`                         | Data            |
| `GET`    | `/v1/memory_stores/{id}/memory_versions`                                  | `GetMemoryStore`                            | Data            |
| `GET`    | `/v1/memory_stores/{id}/memory_versions/{id}`                             | `GetMemoryStore`                            | Data            |
| `POST`   | `/v1/memory_stores/{id}/memory_versions/{id}/redact`                      | `UpdateMemoryStore`                         | Data            |
| `GET`    | `/v1/webhooks`                                                            | `ListWebhooks`                              | Management      |
| `GET`    | `/v1/webhooks/{id}`                                                       | `GetWebhook`                                | Management      |
| `POST`   | `/v1/webhooks`                                                            | `CreateWebhook`                             | Management      |
| `POST`   | `/v1/webhooks/{id}`                                                       | `UpdateWebhook`                             | Management      |
| `DELETE` | `/v1/webhooks/{id}`                                                       | `DeleteWebhook`                             | Management      |
| `POST`   | `/v1/webhooks/{id}/regenerate_signing_secret`                             | `RotateWebhookSecret`                       | Management      |

不在此表格中的路由在 Claude Platform on AWS 上不可用。閘道預設會拒絕任何未列於此處的路由。

<Note>
  Workspace、外部金鑰與遙測目的地路由是 Claude Platform on AWS 上唯一可用的 Admin API 路由。您也可以在 AWS Console 中建立、更新或封存 workspaces，或以 Admin 角色在 Claude Console 中進行。加密金鑰也可以在 Claude Console 中註冊與附加。
</Note>

## 受管政策

AWS 為 Claude Platform on AWS 提供五個受管政策。所有受管政策皆套用於 `Resource: "*"`。

| 政策                                     | 授予                                                                                                                                               |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `AnthropicFullAccess`                  | `aws-external-anthropic:*`                                                                                                                       |
| `AnthropicReadOnlyAccess`              | `Get*`、`List*`、`CallWithBearerToken`                                                                                                             |
| `AnthropicInferenceAccess`             | `Get*`、`List*`、`CreateInference`、`CreateBatchInference`、`CancelBatchInference`、`DeleteBatchInference`、`CountTokens`、`CallWithBearerToken`        |
| `AnthropicLimitedAccess`               | 所有 `AnthropicInferenceAccess` 動作，加上所有 Claude Managed Agents 動作（agents、sessions、environments、vaults、memory stores、webhooks 以及自行託管 environment 工作） |
| `AnthropicSelfHostedEnvironmentAccess` | `GetEnvironment`、`ProcessEnvironmentWork`、`GetSession`、`UpdateSession`、`GetSkill`、`CallWithBearerToken`                                          |

`AnthropicInferenceAccess` 是足以執行推論的最窄受管政策。它涵蓋同步與批次推論，並透過 `Get*` 與 `List*` 萬用字元授予對命名空間中每個 API 資源的讀取權限，包括 Claude Managed Agents（CMA）資源（agents、sessions、environments、vaults、memory stores 與 webhooks）。這包括透過 `GetFile` 下載檔案內容（請參閱[檔案](https://platform.claude.com/docs/zh-TW/api/claude-platform-on-aws-iam-actions#files)說明）、透過 `GetSkill` 下載 skill 內容（請參閱 [Skills](https://platform.claude.com/docs/zh-TW/api/claude-platform-on-aws-iam-actions#skills) 說明），以及透過 `GetMemoryStore` 讀取記憶內容。Vault 憑證密鑰與 webhook 簽署密鑰不會外洩：這些欄位為唯寫，且 `GetVault` 或 `GetWebhook` 永遠不會回傳它們（請參閱[使用 vaults 進行驗證](https://platform.claude.com/docs/zh-TW/managed-agents/vaults)）。`AnthropicInferenceAccess` 不授予檔案建立或刪除、skill 管理、使用者設定檔管理、workspace 變動、加密金鑰管理、遙測目的地管理，或任何 Claude Managed Agents 寫入動作（建立、更新、封存、刪除、處理或輪替）。若要排除 CMA 讀取，請以僅列舉您所需特定非 CMA 動作的自訂政策取代 `AnthropicInferenceAccess`。

<Note>
  `AnthropicReadOnlyAccess`、`AnthropicInferenceAccess` 和 `AnthropicLimitedAccess` 都帶有 `Get*` 和 `List*` 萬用字元，會授予對 workspace 中所有內容的讀取權限：檔案位元組、skill 內容、批次結果、session 對話歷史記錄以及記憶內容。這些萬用字元也會授予 `GetKey` 和 `ListKeys`，可讀取組織已註冊的加密金鑰設定（金鑰 ARN 與中繼資料，絕不包含金鑰材料）。它們也會授予帳戶範圍的 `GetUserProfile` 和 `ListUserProfiles`，可讀取使用者設定檔。`List*` 萬用字元也會授予 `ListComplianceActivities`，在組織啟用 Compliance API 後，可讀取組織的合規[活動摘要](https://platform.claude.com/docs/zh-TW/manage-claude/compliance-activity-feed)（請參閱[合規](https://platform.claude.com/docs/zh-TW/api/claude-platform-on-aws-iam-actions#compliance)）。這些萬用字元也會授予 `GetAccountTelemetryDestination`、`ListAccountTelemetryDestinations` 和 `ListAccountTelemetryDestinationWorkspaces`，可讀取組織的遙測目的地，但絕不會讀取其標頭值。Vault 憑證密鑰與 webhook 簽署密鑰不會被公開；這些欄位為唯寫，且永遠不會由 `GetVault` 或 `GetWebhook` 傳回。如果您的主體不應讀取現有內容，請使用僅列舉您所需動作的自訂政策。
</Note>

`AnthropicLimitedAccess` 除了推論動作之外，還包含所有 Claude Managed Agents 動作。

`AnthropicSelfHostedEnvironmentAccess` 是足以執行[自行託管沙箱](https://platform.claude.com/docs/zh-TW/managed-agents/self-hosted-sandboxes)工作程式的最窄受管政策。請將其附加到您的 environment 工作程式用以驗證的主體。

`AssumeConsole` 不包含在 `AnthropicReadOnlyAccess`、`AnthropicInferenceAccess`、`AnthropicLimitedAccess` 或 `AnthropicSelfHostedEnvironmentAccess` 中。需要 Claude Console 存取權的主體需要 `AnthropicFullAccess`，或授予 `aws-external-anthropic:AssumeConsole` 的自訂政策。請參閱 [Console 存取](https://platform.claude.com/docs/zh-TW/api/claude-platform-on-aws-iam-actions#console-access)。

<Note>
  `CreateInference` 與 `CreateBatchInference` 是各自獨立的動作。拒絕其中一個不會封鎖另一個。若您想防止所有模型呼叫，請同時拒絕兩者。
</Note>

## 範例政策

### 單一 workspace 上的同步推論

為針對單一正式環境 workspace 執行推論的 IAM 主體授予最小權限：

```json
{
  "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"
    }
  ]
}
```

<Note>
  `ListWorkspaces` 為帳戶範圍（請參閱[佈建自動化](https://platform.claude.com/docs/zh-TW/api/claude-platform-on-aws-iam-actions#provisioning-automation)）。若您的服務帳戶需要列舉 workspaces，請為 `ListWorkspaces` 新增一個獨立的 `Allow` 陳述式，並使用 `Resource: "*"`。

  此政策假設使用 AWS SigV4 驗證。若主體以 API 金鑰進行驗證，請為 `aws-external-anthropic:CallWithBearerToken` 新增一個獨立的 `Allow` 陳述式，並使用 `Resource: "*"`。`CallWithBearerToken` 是無路由的動作，不會綁定到 workspace ARN。如需雙陳述式模式，請參閱[每位客戶的 workspace 隔離](https://platform.claude.com/docs/zh-TW/api/claude-platform-on-aws-iam-actions#per-customer-workspace-isolation)。
</Note>

### 每位客戶的 workspace 隔離

將角色限制於單一 workspace：

```json
{
  "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": "*"
    }
  ]
}
```

<Note>
  第一個陳述式中的 `aws-external-anthropic:*` 萬用字元包含帳戶範圍的動作（`CreateWorkspace`、`ListWorkspaces`、`ListComplianceActivities`、外部金鑰動作、帳戶範圍的遙測目的地動作以及使用者設定檔動作），這些動作會被 workspace ARN 限制靜默過濾掉。這與「隔離」的意圖一致（該角色無法建立 workspaces、列舉 workspaces、管理加密金鑰註冊、讀取合規活動摘要，或讀取或管理使用者設定檔，也無法建立、讀取或變更遙測目的地；但仍可透過 `UpdateWorkspace` 將已註冊的金鑰附加到自己的 workspace，並在得知目的地 ID 的情況下，將自己的 workspace 新增至目的地或從中移除），但該政策包含不具效果的權限。如果該角色需要使用者設定檔，請為使用者設定檔動作新增一個 `Resource: "*"` 的獨立 `Allow` 陳述式。如需帳戶範圍的模式，請參閱[佈建自動化](https://platform.claude.com/docs/zh-TW/api/claude-platform-on-aws-iam-actions#provisioning-automation)。

  `CallWithBearerToken` 與 `AssumeConsole` 是無路由的動作，不會綁定到 workspace ARN。第二個陳述式在 `Resource: "*"` 上授予它們，使該角色能以 API 金鑰進行驗證並開啟 Claude Console。若該角色僅使用 SigV4 且不需要 Claude Console 存取權，請省略此陳述式。
</Note>

### 針對 ZDR 敏感 workspace 的功能鎖定

在特定 workspace 上封鎖批次處理與檔案上傳，同時保留同步推論可用。當 workspace 處理不得在伺服器端保存的[零資料保留（Zero Data Retention，ZDR）](https://platform.claude.com/docs/zh-TW/manage-claude/api-and-data-retention)資料時非常有用。請將此政策與 Allow 政策（例如 `AnthropicInferenceAccess` 或[單一 workspace 範例](https://platform.claude.com/docs/zh-TW/api/claude-platform-on-aws-iam-actions#synchronous-inference-on-a-single-workspace)）一併附加；僅含 Deny 的政策本身不會授予任何權限：

```json
{
  "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"
    }
  ]
}
```

<Note>
  此拒絕僅封鎖建立。除非您也將其他檔案與批次動作列出，否則它們不會被拒絕。若要完全鎖定，使 workspace 永遠不得持有檔案或批次，請一併拒絕 `aws-external-anthropic:GetFile`、`aws-external-anthropic:ListFiles`、`aws-external-anthropic:DeleteFile`、`aws-external-anthropic:GetBatchInference`、`aws-external-anthropic:ListBatchInferences`、`aws-external-anthropic:CancelBatchInference` 與 `aws-external-anthropic:DeleteBatchInference`。
</Note>

### 佈建自動化

<Note>
  除了 Admin API 之外，您也可以在 AWS Console 中建立、更新或封存工作區，或者以 Admin 角色在 Claude Console 中進行這些操作。
</Note>

授予 CI/CD 角色建立與管理工作區所需的動作，而不包含任何推論權限：

```json
{
  "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` 與 `ListWorkspaces` 是帳戶範圍的操作。在這些動作上指定工作區 ARN 不會產生任何效果；請使用 `Resource: "*"`。

## 另請參閱

* [Claude Platform on AWS](https://platform.claude.com/docs/zh-TW/build-with-claude/claude-platform-on-aws)：了解設定、驗證與平台概覽
* [AWS IAM 使用者指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)：了解 IAM 政策語法與評估邏輯
* [AWS CloudTrail 使用者指南](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)：了解稽核日誌設定
