View a markdown version of this page

全域跨區域推論 - Amazon Bedrock

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

全域跨區域推論

全域跨區域推論會將跨區域推論延伸到超過地理界限,從而將推論請求路由到 AWS 區域 全球支援的商業。

全域跨區域推論的優點

使用 Anthropic Claude Sonnet 4.5 模型的全域跨區域推論,相較於地理跨區域推論設定檔,您可以獲得下列優點:

  • 成本效益 – 相較於地理跨區域推論,您在輸入和輸出字符定價上節省約 10%。Amazon Bedrock 會根據您提出請求的 AWS 區域 (來源) 來計算價格 AWS 區域。

  • 簡化監控 – 使用全域跨區域推論時,CloudWatch 和 CloudTrail 會繼續記錄來源中的日誌項目 AWS 區域,簡化可觀測性和管理。雖然您的請求會在 AWS 區域 全球各地處理,但您仍可透過熟悉的 AWS 監控工具,集中檢視應用程式的效能和使用模式。

  • 全球請求路由 – 透過全域跨區域推論,您的請求可以透過全球支援的商業運算 AWS 區域 處理,而不是在單一地理位置內處理。

全域跨區域推論考量事項

請注意下列有關全域跨區域推論的資訊:

  • 如需使用全域推論設定檔時的預設跨區域輸送量配額,請參閱《 AWS 一般參考》中的 ${Model} 的每分鐘全域跨區域模型推論請求,以及 Amazon Bedrock 服務配額${Model} 值的每分鐘全域跨區域模型推論字符

    您可以從 Service Quotas 主控台或使用來源區域中的 CLI 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 資源的存取權。第三部分授予全域 FM 資源的存取權,以啟用跨區域路由功能。

實作這些政策時,請在 IAM 陳述式中包含所有三個資源 Amazon Resource Name (ARNs):

  • 區域推論設定檔 ARN 遵循模式 arn:aws:bedrock:REGION:ACCOUNT:inference-profile/global.MODEL-NAME。使用此 ARN 授予對來源 中全域推論描述檔的存取權 AWS 區域。

  • 區域 FM 使用 arn:aws:bedrock:REGION::foundation-model/MODEL-NAME。使用此 ARN 授予來源中 FM 的存取權 AWS 區域。

  • 全域 FM 需要 arn:aws:bedrock:::foundation-model/MODEL-NAME。使用此 ARN 授予不同全域中 FM 的存取權 AWS 區域。

全域 FM ARN 沒有指定 AWS 區域 或 帳戶,這是跨區域功能刻意且必要的。

停用全域跨區域推論

您可以選擇兩種主要方法,為特定 IAM 角色實作拒絕政策至全域 CRIS,每個都具有不同的使用案例和影響:

  • 移除 IAM 政策 – 第一個方法涉及從使用者許可中移除三個必要 IAM 政策中的一個或多個。由於全域 CRIS 需要這三個政策才能運作,移除政策將導致存取遭拒。

  • 實作拒絕政策 – 第二個方法是實作明確拒絕政策,專門以全域 CRIS 推論設定檔為目標。此方法提供安全意圖的明確文件,並確保即使稍後有人不小心新增必要的允許政策,明確拒絕仍將優先。拒絕政策應使用符合模式 StringEquals的條件"aws:RequestedRegion": "unspecified"。此模式特別以字global首為目標的推論設定檔。

實作拒絕政策時,請務必了解全域 CRIS 會變更aws:RequestedRegion欄位的行為。使用具有特定 AWS 區域 名稱 之StringEquals條件的傳統 AWS 區域型拒絕政策"aws:RequestedRegion": "us-west-2",在全域 CRIS 中無法如預期運作。服務會將此欄位設定為 global,而不是實際目的地 AWS 區域。不過,如前所述, "aws:RequestedRegion": "unspecified" 將導致拒絕效果。

全域跨區域推論的服務控制政策需求

對於全域跨區域推論,如果您組織的安全政策使用 SCPs 封鎖未使用的區域,您必須更新區域特定的 SCP 條件,以允許使用 進行存取"aws:RequestedRegion": "unspecified"。此條件專屬於 Amazon Bedrock Global 跨區域推論,並確保請求可以路由到所有支援 AWS 的商業區域。

下列範例 SCP 會封鎖核准區域外的所有 AWS API 呼叫,同時允許使用 "unspecified"做為全域路由區域的 Amazon Bedrock Global 跨區域推論呼叫:

{ "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" 為 ,"unspecified""ArnLike"條件以 ARN 中字global首為 的推論描述檔為目標。

AWS Control Tower 實作

強烈建議手動編輯由 AWS Control Tower 管理SCPs,因為它可能會導致偏離。反之,請使用 Control Tower 提供的機制來管理這些例外狀況。核心原則涉及擴展現有的區域拒絕控制或啟用區域,然後套用自訂的條件式封鎖政策。

如需使用 Control Tower 實作跨區域推論的詳細step-by-step指引,請參閱部落格文章在多帳戶環境中啟用 Amazon Bedrock 跨區域推論。這涵蓋擴展現有的區域拒絕 SCPs、使用自訂 SCPs啟用拒絕區域,以及使用 Customizations for AWS Control Tower (CfCT) 將自訂 SCPs 部署為基礎設施做為程式碼。

全域跨區域推論的請求限制增加

使用全域 CRIS 推論設定檔時,您可以從超過 20 個支援的來源使用全域 CRIS AWS 區域。這是全域限制。若要檢視、管理或增加全域跨區域推論設定檔的配額,請在請求的來源中使用 Service Quotas 主控台或 AWS CLI AWS 區域。

完成下列步驟以請求提高限制:

  1. 登入您 AWS 帳戶中的 Service Quotas 主控台。

  2. 在導覽窗格中,選擇 AWS services (AWS 服務)。

  3. 從服務清單中,尋找並選擇 Amazon Bedrock

  4. 在 Amazon Bedrock 的配額清單中,使用搜尋篩選條件來尋找特定的全域 CRIS 配額。例如:

    • Anthropic Claude Sonnet 4.5 V1 的每分鐘全域跨區域模型推論字符

  5. 選取您要增加的配額。

  6. 選擇在帳戶層級請求增加

  7. 輸入所需的新配額值。

  8. 選擇請求以提交您的請求。

計算所需的配額增加時,請考量縮減率。耗盡率是輸入和輸出字符轉換為限流系統字符配額用量的速率。下列模型的輸出字符消耗率為 5 倍 (1 個輸出字符從您的配額消耗 5 個字符)

  • Anthropic Claude Opus 4

  • Anthropic Claude Sonnet 4.5

  • Anthropic Claude Sonnet 4

  • Anthropic Claude 3.7 Sonnet

所有其他模型的銷毀率為 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),而非 AWS 區域特定模型 ID。

  • 設定 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'])