

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# IAM 政策
<a name="iam-policies"></a>

AWS 上的 Claude 平台與 AWS IAM 整合以進行存取控制。您可以使用標準 IAM 政策語法，授予或拒絕特定工作區上特定 API 動作的存取權。

SigV4 服務名稱和 IAM 動作命名空間為 `aws-external-anthropic`。動作遵循 模式 `aws-external-anthropic:<Action>`（例如，`aws-external-anthropic:CreateInference`)。

## 範例：拒絕批次推論
<a name="_example_deny_batch_inference"></a>

下列政策允許即時推論，同時封鎖批次處理，這是 ZDR 敏感工作負載的常見需求：

```
{
  "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",
        "aws-external-anthropic:ListWorkspaces"
      ],
      "Resource": "arn:aws:aws-external-anthropic:*:*:workspace/*"
    },
    {
      "Effect": "Deny",
      "Action": [
        "aws-external-anthropic:CreateBatchInference",
        "aws-external-anthropic:GetBatchInference",
        "aws-external-anthropic:ListBatchInferences"
      ],
      "Resource": "*"
    }
  ]
}
```

`GetBatchInference` 動作會同時授權批次中繼資料路由和批次結果路由。拒絕它，以及 `ListBatchInferences`，會同時封鎖讀取和批次列舉。

`Allow` 陳述式會列舉特定 `Get*`和 `List*`動作，而不是使用萬用字元。萬用字元會授予 `GetFile`（下載檔案位元組） 和其他您不想要的讀取；`Allow`無論如何都會`Deny`覆寫，但明確形式是建立模型的安全模式。

## 範例：單一工作區上的同步推論
<a name="_example_synchronous_inference_on_a_single_workspace"></a>

授予對一個生產工作區執行推論的 IAM 主體最低許可：

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

**注意**  
此政策中的`List*`萬用字元也符合`ListWorkspaces`帳戶範圍的 。工作區 ARN 限制條件會無提示地篩選掉，因此此政策不會授權列出工作區。如果您的服務帳戶需要列舉工作區，請使用 新增 `ListWorkspaces`的個別`Allow`陳述式`Resource: "*"`。  
此政策假設 AWS SigV4 身分驗證。如果委託人使用 API 金鑰進行身分驗證，請同時授予 `aws-external-anthropic:CallWithBearerToken`（請參閱[身分驗證](authentication.md))。

## 範例：每個客戶工作區隔離
<a name="_example_per_customer_workspace_isolation"></a>

將角色限制為單一工作區：

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

**注意**  
第一個陳述式中的`aws-external-anthropic:*`萬用字元包含帳戶範圍動作 (`CreateWorkspace`、`ListWorkspaces`)，工作區 ARN 限制會以無提示方式篩選掉。這與「隔離」意圖一致 — 角色無法建立或列舉工作區 — 但政策包含沒有效果的許可。請參閱[佈建自動化](#provisioning-automation)以取得帳戶範圍模式。  
第二個陳述式會在所有資源`AssumeConsole`上授予 `CallWithBearerToken`和 ，因為兩者都是未繫結至工作區 ARN 的無路由動作。如果角色僅使用 SigV4，且永遠不會與 Claude 主控台聯合，請省略第二個陳述式。

## 範例：對 ZDR 敏感工作區的功能鎖定
<a name="_example_feature_lockdown_for_a_zdr_sensitive_workspace"></a>

封鎖特定工作區上的批次處理和檔案上傳，同時保持同步推論可用。當工作區處理不得保留伺服器端的零資料保留 (ZDR) 資料時很有用。將此政策與允許政策連接，例如 `AnthropicLimitedAccess`或上述的單一工作區範例；僅拒絕政策本身不會授予任何許可：

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

**注意**  
此拒絕只會封鎖建立。除非您也列出其他檔案和批次動作，否則不會拒絕這些動作。如需工作區絕不能保留檔案或批次的完整鎖定，請同時拒絕 `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`。

## 範例：佈建自動化
<a name="provisioning-automation"></a>

授予 CI/CD 角色建立和管理工作區所需的動作，無需任何推論許可：

```
{
  "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: "*"`。

## 受管政策
<a name="_managed_policies"></a>

AWS 提供常見存取模式的受管政策：
+  ** `AnthropicFullAccess`：**`aws-external-anthropic:*`授予所有資源。
+  ** `AnthropicReadOnlyAccess`：**在所有資源`CallWithBearerToken`上授予 `List*`、 `Get*`和 。
+  ** `AnthropicInferenceAccess`：**授予所有資源上的 ReadOnly 動作加上推論動作 (`CreateInference`、`CreateBatchInference``CancelBatchInference`、、`DeleteBatchInference`、`CountTokens`)。
+  ** `AnthropicLimitedAccess`：**授予所有資源上的`AnthropicInferenceAccess`動作加上所有 Claude Managed Agents 動作 （代理程式、工作階段、環境、保存庫、記憶體存放區）。
+  ** `AnthropicSelfHostedEnvironmentAccess`：**授予自我託管沙盒工作者輪詢和處理環境工作項目、讀取相關環境、工作階段和技能資源，以及更新工作階段狀態所需的許可。將此政策連接到您自我託管環境工作者擔任的 IAM 角色。 `AnthropicSelfHostedEnvironmentAccess`是建議的單一角色預設值；如果您在不同的 IAM 主體下執行工作輪詢器和每個工作階段沙盒，您可以將這些許可分割為兩個更窄的自訂政策，以實現最低權限。

 `AnthropicInferenceAccess` 是足以執行推論的最窄受管政策。透過 `Get*`和 `List*` 萬用字元，它授予 命名空間中每個 API 資源的讀取存取權，包括透過 下載的檔案內容`GetFile`，以及透過 下載的記憶體內容`GetMemoryStore`。它不會授予檔案或技能建立或刪除、使用者設定檔管理、工作區變動或主控台聯合。

**注意**  
 `AnthropicReadOnlyAccess`、 `AnthropicInferenceAccess`和 `AnthropicLimitedAccess` 不授予 `AssumeConsole`。需要聯合到 Claude Console 的委託人需要單獨授予 `aws-external-anthropic:AssumeConsole` - 透過 `AnthropicFullAccess`或自訂政策。請參閱[聯合到 Claude 主控台](#federating-to-the-claude-console)。

**注意**  
 `CreateInference` 和 `CreateBatchInference` 是獨立的動作。拒絕一個不會封鎖另一個。如果您想要防止所有模型呼叫，請同時拒絕兩者。

## 聯合到 Claude 主控台
<a name="federating-to-the-claude-console"></a>

 `aws-external-anthropic:AssumeConsole` 可讓 IAM 主體聯合到 Anthropic 操作的 Claude 主控台。對於大多數操作，主控台內的存取仍然由 IAM 管理，但管理操作的子集，主要是沒有對應 IAM API 的使用情況檢視，取決於主體聯合的功能。

有兩個功能：
+  ** `developer` ** — 允許 AWS 開發人員在day-to-day上所需的 Claude 平台操作：從主控台執行推論、讀取工作區資料、檢視個人用量。
+  ** `admin` ** — 還允許僅管理員主控台操作，包括非透過 IAM 動作呈現的整個帳戶用量檢視和管理設定。

使用 `AssumeConsole` 動作的條件`aws-external-anthropic:Capability`索引鍵控制主體可以請求的功能：

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "aws-external-anthropic:AssumeConsole",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws-external-anthropic:Capability": "admin"
        }
      }
    }
  ]
}
```

 `AnthropicFullAccess` 授予`AssumeConsole`沒有功能限制。對於任何較窄的授予 - 僅限開發人員的主控台存取或僅限管理員的存取 - 連接自訂政策，其範圍`AssumeConsole`與上述`aws-external-anthropic:Capability`條件相同。

## 使用承載字符呼叫
<a name="_calling_with_bearer_tokens"></a>

 `aws-external-anthropic:CallWithBearerToken` 當 API 金鑰顯示為承載字符時， 會授權使用的SigV4-free 請求路徑。使用 API 金鑰進行身分驗證的任何委託人都需要在目標工作區執行此動作。無論您直接使用或`ANTHROPIC_AWS_API_KEY`設定 `Authorization: Bearer` 標頭，這都會套用。

除了推論動作 (`CreateInference`、 等） 之外`CreateBatchInference`，API 金鑰發起人也需要此項目。如果沒有 `CallWithBearerToken`，API 金鑰請求會在達到推論授權檢查之前遭到拒絕。SigV4 呼叫者不需要此動作。

 `AnthropicReadOnlyAccess`、`AnthropicLimitedAccess`、 `AnthropicInferenceAccess`和 `AnthropicFullAccess`全都包含 `CallWithBearerToken`。如果您撰寫 API 金鑰存取的自訂政策，請明確新增它。

## 傳出 Web 聯合身分 （主控台存取時需要）
<a name="_outbound_web_identity_federation_required_for_console_access"></a>

Claude 主控台會在 Anthropic 基礎設施中執行，而非 AWS。當 IAM 主體呼叫 時`AssumeConsole`，AWS STS 會發出範圍限定為 Anthropic 對象的 Web 身分字符；然後，Anthropic 主控台會接受該字符並建立聯合工作階段。為此，AWS 帳戶必須允許`aws-external-anthropic`對象使用傳出 Web 聯合身分。

除了 `aws-external-anthropic:AssumeConsole`動作之外，呼叫 的委託人`AssumeConsole`還需要下列 STS 許可：
+  ** `sts:GetWebIdentityToken` ** — 允許發出 Anthropic 主控台使用的 Web 身分字符。
+  ** `sts:TagGetWebIdentityToken` ** — 允許將工作階段標籤連接到 Web 身分字符。AWS 上的 Claude 平台使用這些標籤，將主體的功能和工作區內容傳遞至主控台。

在主控台使用者擔任的任何角色的信任政策中包含兩者，或在連接到`AssumeConsole`直接呼叫之使用者身分的內嵌/受管政策中`AnthropicFullAccess`包含兩者。 包含這兩個 STS 動作。在 `sts:*` SCP 或許可界限層級拒絕的環境必須明確允許這兩個動作，主控台聯合才能成功。