用自托管网关统一管理 AWS 上的 Claude Code 与 Claude Desktop

2026-07-09 44 预计阅读时间: 1 分钟
来源: aws.amazon.com AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:9 分钟

Anthropic 推出了面向 AWS 的 Claude apps gateway:一个自托管控制平面,用来把 Claude Code 和 Claude Desktop 的访问、成本与策略收口到组织可控的一处。对已经在 AWS 上使用 Amazon Bedrock 或 Claude Platform 的团队来说,这类网关的价值不在“多一层代理”,而在于把开发者工具接入企业治理体系:谁能用、走哪个后端、预算怎么控、策略在哪里落地。

它解决的不是模型调用,而是组织控制

Claude Code 和 Claude Desktop 都是面向个人工作流的高频工具。问题在于,一旦进入企业环境,个人效率工具会立刻碰到几类硬约束:

  • 访问控制:不同团队、项目、环境是否能使用同一套 Claude 能力。
  • 成本控制:模型调用不能只散落在个人账户或零散 API key 上。
  • 策略执行:组织需要统一配置允许的模型、区域、身份、审计和使用边界。
  • 后端选择:同一类 Claude 应用可能需要对接 Amazon Bedrock,也可能需要对接 Claude Platform on AWS。

Claude apps gateway for AWS 的定位就是“单一控制点”。它不是替代 Claude Code 或 Claude Desktop,而是让这些客户端通过组织部署的网关访问后端能力。这样平台团队可以把安全、成本、策略和路由放在基础设施层管理,而不是要求每个开发者手工理解和维护一套凭证规则。

为什么自托管很关键

“自托管控制平面”意味着组织可以把网关部署在自己的 AWS 环境中,并按现有云治理方式管理它。对于平台工程团队,这通常带来三个现实好处:

  • 网络边界更清晰:网关可以放在受控 VPC、子网、负载均衡和日志体系之后。
  • 身份体系更统一:可以结合 AWS IAM、企业 SSO、内部授权服务或反向代理策略做接入控制。
  • 成本归集更自然:所有来自 Claude Code 和 Claude Desktop 的流量可以通过统一入口打标签、记录、限流或分摊。

需要注意,来源摘要只说明它支持 Amazon Bedrock 和 Claude Platform on AWS,并未展开具体部署参数。下面的配置示例是“可以这样实践”的最小化骨架,用来展示平台团队如何把这类网关纳入 AWS 运维流程;实际镜像、环境变量名称、鉴权方式应以官方发布包为准。

可以这样实践:用 ECS Fargate 承载一个网关服务

假设你的组织拿到的网关容器镜像为 public.ecr.aws/example/claude-apps-gateway:latest,并希望先用 ECS Fargate 跑一个受控入口。下面这个任务定义示例展示了常见配置形态:区域、后端类型、Bedrock 开关、日志与端口。

运行前需要替换这些值:

  • YOUR_ACCOUNT_ID:AWS 账号 ID。
  • YOUR_EXECUTION_ROLE_ARN:ECS task execution role。
  • YOUR_TASK_ROLE_ARN:允许访问 Bedrock 或相关后端的 task role。
  • public.ecr.aws/example/claude-apps-gateway:latest:实际网关镜像。
  • 环境变量名称:以实际网关文档为准。
{
  "family": "claude-apps-gateway",
  "networkMode": "awsvpc",
  "requiresCompatibilities": ["FARGATE"],
  "cpu": "512",
  "memory": "1024",
  "executionRoleArn": "arn:aws:iam::YOUR_ACCOUNT_ID:role/YOUR_EXECUTION_ROLE_ARN",
  "taskRoleArn": "arn:aws:iam::YOUR_ACCOUNT_ID:role/YOUR_TASK_ROLE_ARN",
  "containerDefinitions": [
    {
      "name": "gateway",
      "image": "public.ecr.aws/example/claude-apps-gateway:latest",
      "essential": true,
      "portMappings": [
        {
          "containerPort": 8080,
          "protocol": "tcp"
        }
      ],
      "environment": [
        {
          "name": "AWS_REGION",
          "value": "us-east-1"
        },
        {
          "name": "CLAUDE_BACKEND",
          "value": "bedrock"
        },
        {
          "name": "POLICY_MODE",
          "value": "enforce"
        }
      ],
      "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "/ecs/claude-apps-gateway",
          "awslogs-region": "us-east-1",
          "awslogs-stream-prefix": "gateway"
        }
      }
    }
  ]
}

可以用下面的命令注册任务定义。这里假设文件名为 task-definition.json

aws logs create-log-group \
  --log-group-name /ecs/claude-apps-gateway \
  --region us-east-1 || true

aws ecs register-task-definition \
  --cli-input-json file://task-definition.json \
  --region us-east-1

如果你已经有 ECS cluster、私有子网和安全组,可以创建一个服务:

aws ecs create-service \
  --cluster platform-tools \
  --service-name claude-apps-gateway \
  --task-definition claude-apps-gateway \
  --desired-count 2 \
  --launch-type FARGATE \
  --network-configuration "awsvpcConfiguration={subnets=[subnet-0123456789abcdef0,subnet-0abcdef1234567890],securityGroups=[sg-0123456789abcdef0],assignPublicIp=DISABLED}" \
  --region us-east-1

这不是官方部署步骤的替代品,而是一个可改造的工程骨架:平台团队可以把它接到 ALB、WAF、私有 DNS、CloudWatch、OpenTelemetry 或内部审计系统上。

策略应该靠近入口,而不是散在客户端

网关的一个核心价值是把策略集中在入口处。实际落地时,可以从少量规则开始,不要一上来设计过度复杂的权限矩阵。

一个可操作的策略清单如下:

  • 按团队或项目分配访问权限,而不是让个人直接管理长期密钥。
  • 给 Claude Code 和 Claude Desktop 分别打 usage tag,方便区分 IDE/CLI 工作流和桌面工作流。
  • 对高成本模型、长上下文或批量任务设置额外审批或限额。
  • 将默认后端明确写入配置,例如优先走 Amazon Bedrock,特定工作负载再走 Claude Platform on AWS。
  • 日志中保留请求元数据、调用结果、成本归属信息,但谨慎处理提示词和代码内容,避免把敏感数据扩散到日志系统。

可以这样设计一个内部策略文件,再由网关或旁路控制器读取。字段是假设的,重点是策略形态:

version: 1
routes:
  - match:
      client: claude-code
      team: platform
    backend: bedrock
    aws_region: us-east-1
    limits:
      monthly_usd: 1500
      max_requests_per_minute: 120
    policy:
      allow_models:
        - claude-sonnet
      deny_prompts_matching:
        - "(?i)production database password"

  - match:
      client: claude-desktop
      team: product
    backend: claude-platform-aws
    limits:
      monthly_usd: 800
      max_requests_per_minute: 60
    policy:
      allow_file_uploads: false
      require_sso_group: product-ai-users

这个例子不要照搬字段名,但可以照搬思路:客户端类型、团队身份、后端路由、成本限制和安全策略要在同一个控制面里可审计。

采用建议:先收口,再细化

Claude apps gateway for AWS 适合已经把 Claude Code 或 Claude Desktop 带入工程工作流、并且希望在 AWS 上统一治理的组织。它最值得优先落地的场景,是平台团队已经面对“API key 分散、账单难归属、策略难执行”的问题。

落地时建议分三步走:

  1. 先把网关作为统一入口跑起来,只接入一两个试点团队。
  2. 再接入日志、成本标签、限流和基础访问控制,验证它是否真的降低运维成本。
  3. 最后再细化模型策略、后端路由和敏感数据处理规则。

边界也要说清楚:网关能提供控制点,但不能自动替你完成安全治理。IAM 权限、网络暴露面、日志脱敏、客户端配置分发、故障降级都需要工程化处理。好的接入方式不是让每个开发者多学一套规则,而是让他们照常使用 Claude Code 和 Claude Desktop,同时让组织在 AWS 侧获得清晰、可执行、可审计的控制面。


相关推荐