全球跨区域推理 - Amazon Bedrock

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

全球跨区域推理

全球跨区域推理将跨区域推理扩展到地理边界之外,从而能够将推理请求路由到 AWS 区域 全球支持的商业,优化可用资源并实现更高的模型吞吐量。

全球跨区域推理的好处

Anthropic 的 Claude Sonnet 4.5 的全球跨区域推理与传统的地理跨区域推理配置文件相比,具有多种优势:

  • 在@@ 需求高峰期提高吞吐量 — 全球跨区域推理通过自动将请求路由到可用容量,从而提高需求高峰期 AWS 区域 的弹性。这种动态路由可以无缝进行,无需开发人员的额外配置或干预。与可能需要在客户端之间进行复杂的负载平衡的传统方法不同 AWS 区域,全局跨区域推理会自动处理流量峰值。这对于业务关键型应用程序尤其重要,在这些应用程序中,停机或性能下降可能会对财务或声誉造成重大影响。

  • 成本效益 — 与地理跨区域推断相比,Anthropic的Claude Sonnet 4.5的全球跨区域推理在输入和输出代币定价方面节省了约10%。价格是根据提出请求 AWS 区域 的来源(来源 AWS 区域)计算的。这意味着组织可以以更低的成本从更高的弹性中受益。对于希望优化生成式 AI 部署的组织来说,这种定价模式使全球跨区域推理成为一种经济实惠的解决方案。通过提高资源利用率和在不增加成本的情况下实现更高的吞吐量,它可以帮助组织最大限度地提高对 Amazon Bedrock 的投资价值。

  • 简化监控-使用全球跨区域推理时, CloudWatch CloudTrail 继续在源中记录日志条目 AWS 区域,从而简化可观察性和管理。尽管您的请求是在 AWS 区域 全球不同地区处理的,但您可以通过熟悉的 AWS 监控工具集中查看应用程序的性能和使用模式。

  • 按需配额灵活性 — 借助全球跨区域推理,您的工作负载不再受单个区域容量的限制。您的请求可以在 AWS 全球基础架构中动态路由 AWS 区域,而不必局限于特定可用容量。这提供了对更大资源池的访问权限,从而降低了处理高容量工作负载和突然流量峰值的复杂性。

全球跨区域推理注意事项

请注意以下有关全球跨区域推理的信息:

全球跨区域推理的 IAM 政策要求

要为您的用户启用全球跨区域推理,您必须对该角色应用由三部分组成的 IAM 策略。以下是提供精细控制的 IAM 策略示例。您可以将示例策略替换<REQUESTING REGION>为 AWS 区域 正在使用的策略。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GrantGlobalCrisInferenceProfileRegionAccess", "Effect": "Allow", "Action": "bedrock:InvokeModel", "Resource": [ "arn:aws:bedrock:<REQUESTING REGION>:<ACCOUNT>:inference-profile/global.<MODEL NAME>" ], "Condition": { "StringEquals": { "aws:RequestedRegion": "<REQUESTING REGION>" } } }, { "Sid": "GrantGlobalCrisInferenceProfileInRegionModelAccess", "Effect": "Allow", "Action": "bedrock:InvokeModel", "Resource": [ "arn:aws:bedrock:<REQUESTING REGION>::foundation-model/<MODEL NAME>" ], "Condition": { "StringEquals": { "aws:RequestedRegion": "<REQUESTING REGION>", "bedrock:InferenceProfileArn": "arn:aws:bedrock:<REQUESTING REGION>:<ACCOUNT>:inference-profile/global.<MODEL NAME>" } } }, { "Sid": "GrantGlobalCrisInferenceProfileGlobalModelAccess", "Effect": "Allow", "Action": "bedrock:InvokeModel", "Resource": [ "arn:aws:bedrock:::foundation-model/<MODEL NAME>" ], "Condition": { "StringEquals": { "aws:RequestedRegion": "unspecified", "bedrock:InferenceProfileArn": "arn:aws:bedrock:<REQUESTING REGION>:<ACCOUNT>:inference-profile/global.<MODEL NAME>" } } } ] }

该政策的第一部分允许访问您请求 AWS 区域中的区域推理配置文件。第二部分提供对区域调频资源的访问。第三部分授予对全球 FM 资源的访问权限,该资源支持跨区域路由功能。

在实施这些政策时,请确保所有三个资源 Amazon 资源名称 (ARNs) 都包含在您的 IAM 声明中:

  • 区域推理配置文件 ARN 遵循这种模式。arn:aws:bedrock:REGION:ACCOUNT:inference-profile/global.MODEL-NAME这用于提供对源代码 AWS 区域中的全局推理配置文件的访问权限。

  • 区域调频使用arn:aws:bedrock:REGION::foundation-model/MODEL-NAME. 这用于访问源中的 FM AWS 区域。

  • 全球调频要求arn:aws:bedrock:::foundation-model/MODEL-NAME. 这用于在不同的全球范围内访问FM AWS 区域。

全球 FM ARN 没有指定 AWS 区域 或账户,这是故意的,也是跨区域功能所必需的。

禁用全局跨区域推理

您可以从两种主要方法中进行选择,针对特定 IAM 角色向全球 CRI 实施拒绝策略,每种方法都有不同的用例和含义:

  • 移除 IAM 策略 — 第一种方法涉及从用户权限中移除三个必需的 IAM 策略中的一个或多个。由于全局 CRIS 要求所有三个策略都发挥作用,因此删除策略将导致访问被拒绝。

  • 实施拒绝策略 — 第二种方法是实施明确的拒绝策略,专门针对全球 CRIS 推理配置文件。此方法可以清楚地记录您的安全意图,并确保即使有人稍后不小心添加了所需的允许策略,也将优先考虑显式拒绝。拒绝策略应使用与模式匹配的StringEquals条件"aws:RequestedRegion": "unspecified"。这种模式专门针对带有global前缀的推理配置文件。

在实施拒绝策略时,至关重要的是要了解全球 CRIS 会改变该aws:RequestedRegion领域的行为方式。 AWS 区域基于传统的拒绝策略使用具有特定 AWS 区域 名称的StringEquals条件(例如),在全局 CRIS 中"aws:RequestedRegion": "us-west-2"将无法按预期运行,因为服务将此字段设置为global而不是实际目的地 AWS 区域。但是,如前所述,"aws:RequestedRegion": "unspecified"将产生拒绝效果。

全球跨区域推理的服务控制策略要求

对于全球跨区域推断,如果贵组织的安全策略用于屏蔽未使用的区域,则必须更新特定于区域的 SCP 条件 SCPs 以允许访问。"aws:RequestedRegion": "unspecified"此条件特定于 Amazon Bedrock 全球跨区域推理,可确保请求可以路由到所有支持的商业区域。 AWS

以下示例 SCP 会阻止已批准区域之外的所有 AWS API 调用,同时允许使用"unspecified"作为全球路由区域的 Amazon Bedrock 全球跨区域推理调用:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllOutsideApprovedRegions", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": [ "us-east-1", "us-east-2", "us-west-2", "unspecified" ] } } } ] }

禁用全局跨区域推理

有数据驻留或合规要求的组织应评估全球跨区域推理是否符合其合规框架,因为请求可能会在其他支持的 AWS 商业区域处理。要明确禁用全球跨区域推理,请实施以下 SCP 策略:

{ "Effect": "Deny", "Action": "bedrock:*", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": "unspecified" }, "ArnLike": { "bedrock:InferenceProfileArn": "arn:aws:bedrock:*:*:inference-profile/global.*" } } }

此 SCP 明确拒绝全球跨区域推断,因为 "aws:RequestedRegion" is "unspecified""ArnLike"条件以 ARN global 中带有前缀的推理配置文件为目标。

AWS Control Tower 的实现

强烈建议不要手动编辑 Cont AWS rol Tower SCPs 管理的内容,因为这可能会导致偏差。相反,请使用 Control Tower 提供的机制来管理这些异常。核心原则包括扩展现有的区域拒绝控制或启用区域,然后应用自定义的有条件屏蔽策略。

有关使用 Control Tower 实现跨区域推理的详细 step-by-step指南,请参阅博客文章在多账户环境中启用 Amazon Bedrock 跨区域推理。这包括扩展现有区域拒绝 SCPs、使用自定义启用拒绝区域 SCPs,以及使用 Cont AWS rol Tower 的自定义 (cfcT) 将自定义部署 SCPs 为基础架构即代码。

提高了全球跨区域推理的请求限制

使用全局 CRIS 推理配置文件时,您可以使用来自 20 多个支持的来源的全局 CRIS。 AWS 区域由于这将是一个全球限制,因此查看、管理或增加全球跨区域推理配置文件配额的请求必须通过请求来源中的 Service Quotas 控制台或 AWS 命令行界面 (C AWS LI) 提出。 AWS 区域

要申请提高限额,请完成以下步骤:

  1. 使用您的 AWS 账户登录 Service Quotas 控制台。

  2. 在导航窗格中,选择 AWS 服务

  3. 从服务列表中找到并选择 Amazon Bedrock

  4. 在 Amazon Bedrock 的配额列表中,使用搜索筛选器查找特定的全球 CRIS 配额。例如:

    • Anthropic Claude Sonnet 4.5 V1 每分钟全球跨区域模型推理令牌

  5. 选择要增加的配额。

  6. 选择请求增加账户配额

  7. 输入您想要的新配额值。

  8. 选择请求,提交您的请求。

在计算所需的配额增加时,请记住要考虑消耗率,消耗率定义为限制系统的输入和输出代币转换为令牌配额使用量的比率。以下模型的输出代币消耗率为 5 倍(1 个输出代币消耗配额中的 5 个代币):

  • 人类 Claude Opus 4

  • 人类 Claude Sonnet 4.5

  • 人类 Claude Sonnet 4

  • Anthropic Claude 3.7

对于所有其他模型,消耗比率为 1:1(在配额中,1 个输出词元消耗 1 个词元)。对于输入代币,代币与配额的比例为 1:1。每次请求的代币总数的计算方法如下:

Input token count + Cache write input tokens + (Output token count x Burndown rate)

使用全球跨区域推理

要在 Anthropic 的 Claude Sonnet 4.5 中使用全局跨区域推理,开发人员必须完成以下关键步骤:

  • 使用全局推理配置文件 ID — 在对 Amazon Bedrock 进行 API 调用时,请指定全球 Anthropic 的 Claude Sonnet 4.5 推理配置文件 ID (global.anthropic.claude-sonnet-4-5-20250929-v1:0),而不是特定的模型 ID。 AWS 区域

  • 配置 IAM 权限 — 授予相应的 IAM 权限,以访问推理配置文件和 FMs 进入潜在目的地 AWS 区域。

支持以下各项的全球跨区域推理:

  • 按需模型推理

  • 批量推理

  • 座席

  • 模型评测

  • 提示管理器

  • 提示流

注意

按需模型推理、批量推理、代理、模型评测、提示管理器和提示流支持全球推理配置文件。

实现全球跨区域推理

使用Anthropic的Claude Sonnet 4.5实现全球跨区域推理非常简单,只需要对现有的应用程序代码进行一些更改即可。以下是如何在 Python 中更新代码的示例:

import boto3 import json bedrock = boto3.client('bedrock-runtime', region_name='us-east-1') model_id = "global.anthropic.claude-sonnet-4-5-20250929-v1:0" response = bedrock.converse( messages=[{"role": "user", "content": [{"text": "Explain cloud computing in 2 sentences."}]}], modelId=model_id, ) print("Response:", response['output']['message']['content'][0]['text']) print("Token usage:", response['usage']) print("Total tokens:", response['usage']['totalTokens'])