View a markdown version of this page

IAM 策略 - AWS 上的 Claude 平台

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

IAM 策略

AWS 上的 Claude 平台与 AWS IAM 集成以实现访问控制。您可以使用标准的 IAM 策略语法授予或拒绝对特定工作空间上的特定 API 操作的访问权限。

Sigv4 服务名称和 IAM 操作命名空间为。aws-external-anthropic操作遵循模式aws-external-anthropic:<Action>(例如,aws-external-anthropic:CreateInference)。

示例:拒绝批量推理

以下策略允许在阻止批处理的同时进行实时推理,这是 ZDR-sensitive 工作负载的常见要求:

{ "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覆盖,但显式形式是更安全的建模模式。

示例:在单个工作空间上进行同步推理

为针对一个生产工作空间运行推理的 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 约束会将其静默过滤掉,因此此策略不授权列出工作空间。如果您的服务帐号需要枚举工作空间,请为 with 添加单独的Allow语句。ListWorkspaces Resource: "*"

此策略假设 AWS Sigv4 身份验证。如果委托人使用 API 密钥进行身份验证,则还要授权aws-external-anthropic:CallWithBearerToken(请参阅身份验证)。

示例:每个客户的工作空间隔离

将角色限制为单个工作区:

{ "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 约束会静默过滤掉这些操作。这与 “隔离” 意图一致,即角色无法创建或枚举工作空间,但该策略包含的权限无效。有关账户范围的模式,请参阅配置自动化

第二条语句AssumeConsole在所有资源上授予CallWithBearerToken和,因为两者都是不绑定到工作空间 ARN 的无路由操作。如果角色仅使用 SigV4 并且从未与 Claude 控制台联合,则省略第二条语句。

示例: ZDR-sensitive 工作空间的功能锁定

阻止特定工作空间上的批处理和文件上传,同时保留同步推理可用。当工作空间处理不得在服务器端保留的零数据保留 (ZDR) 数据时很有用。将此策略附加到 “允许” 策略旁边,例如上AnthropicLimitedAccess面的单一工作区示例;就其本身而言, Deny-only 策略不授予任何权限:

{ "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:GetFileaws-external-anthropic:ListFilesaws-external-anthropic:DeleteFileaws-external-anthropic:GetBatchInferenceaws-external-anthropic:ListBatchInferences、、aws-external-anthropic:CancelBatchInference、和aws-external-anthropic:DeleteBatchInference

示例:配置自动化

向 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: "*"

托管策略

AWS 为常见访问模式提供托管策略:

  • AnthropicFullAccess: aws-external-anthropic:* 对所有资源的补助。

  • AnthropicReadOnlyAccess: 补助金Get*List*CallWithBearerToken和所有资源。

  • AnthropicInferenceAccess授予对所有资源的 ReadOnly 操作和推理操作(CreateInferenceCreateBatchInferenceCancelBatchInferenceDeleteBatchInference、、、CountTokens)。

  • AnthropicLimitedAccess授予对所有AnthropicInferenceAccess资源的操作以及所有 Claude Managed Agents 操作(代理、会话、环境、文件库、内存存储)。

  • AnthropicSelfHostedEnvironmentAccess授予自托管沙盒工作人员轮询和处理环境工作项目、读取关联的环境、会话和技能资源以及更新会话状态所需的权限。将此策略附加到您的自托管环境工作人员担任的 IAM 角色。 AnthropicSelfHostedEnvironmentAccess是推荐的默认单角色;如果您在不同的 IAM 委托人下运行工作轮询器和每个会话的沙箱,则可以将这些权限分成两个范围较小的自定义策略,以获得最低权限。

AnthropicInferenceAccess是足以进行推理的最狭窄的托管策略。通过Get*List*通配符,它授予对命名空间中每个 API 资源的读取权限,包括通过下载的文件内容GetFile和通过下载的内存内容。GetMemoryStore它不允许创建或删除文件或技能、用户配置文件管理、工作区变更或控制台联合。

注意

AnthropicReadOnlyAccessAnthropicInferenceAccess、且AnthropicLimitedAccess不授予AssumeConsole。需要联合到 Claude Console 的委托人需要单独获得授权,aws-external-anthropic:AssumeConsole无论是通过策略AnthropicFullAccess还是自定义策略。参见联合到 Claude 控制台

注意

CreateInference并且CreateBatchInference是单独的动作。否认一个并不能阻挡另一个。如果您打算阻止所有模型调用,请同时拒绝这两个调用。

联合到 Claude 控制台

aws-external-anthropic:AssumeConsole让 IAM 委托人联合进入 Anthropic-operated Claude 控制台。对于大多数操作,控制台内的访问权限仍受 IAM 控制,但是部分管理员操作(主要是没有相应 IAM API 的使用视图)受委托人联合功能的限制。

存在两种能力:

  • developer— 允许 AWS 上的 Claude Platform 开发人员进行日常工作所需的操作:从控制台运行推理、读取工作空间数据、查看个人使用情况。

  • 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的授权。对于任何范围较窄的授权(仅限开发者的控制台访问权限或仅限管理员的访问权限),请附上以条件为范围的自定义策略,如上所AssumeConsoleaws-external-anthropic:Capability示。

使用不记名代币进行通话

aws-external-anthropic:CallWithBearerToken授权 API 密钥作为持有者令牌呈现时使用的 SigV4-free 请求路径。任何使用 API 密钥进行身份验证的委托人都需要在目标工作空间上执行此操作。无论您是直接使用ANTHROPIC_AWS_API_KEY还是设置Authorization: Bearer标题,这都适用。

除了推理操作(CreateInferenceCreateBatchInference等)之外,API 密钥调用者也需要这样做。否则CallWithBearerToken,API 密钥请求会在到达推理授权检查之前被拒绝。Sigv4 呼叫者不需要此操作。

AnthropicReadOnlyAccessAnthropicInferenceAccessAnthropicLimitedAccessAnthropicFullAccess全部包含CallWithBearerToken。如果您为 API 密钥访问编写了自定义策略,请明确添加该策略。

出站 Web 联合身份验证(控制台访问所必需的)

Claude 控制台在 Anthropic 基础设施中运行,而不是 AWS。当 IAM 委托人调用时AssumeConsole,AWS STS 会发布一个限于 Anthropic 受众的网络身份令牌;然后 Anthropic 控制台接受该令牌并建立联合会话。为此,AWS 账户必须允许aws-external-anthropic受众进行出站 Web 联合身份验证。

除了aws-external-anthropic:AssumeConsole操作之外,调用的委托人还AssumeConsole需要以下 STS 权限:

  • sts:GetWebIdentityToken— 允许发放 Anthropic 控制台消耗的 Web 身份令牌。

  • sts:TagGetWebIdentityToken— 允许将会话标签附加到 Web 身份令牌。AWS 上的 Claude Platform 使用这些标签将委托人的能力和工作空间环境传达给控制台。

将两者都包含在控制台用户担任的任何角色的信任 inline/managed 策略中,或者包含在AssumeConsole直接调用的用户身份所附的策略中。 AnthropicFullAccess包括两个 STS 操作。在 SCP 或权限边界sts:*级别拒绝的环境必须明确允许这两个操作才能成功进行控制台联合。