View a markdown version of this page

使用 Web Bot 驗證減少 CAPTCHAs - Amazon Bedrock AgentCore

使用 Web Bot 驗證減少 CAPTCHAs

注意

Amazon Bedrock AgentCore 瀏覽器 Web Bot Auth (預覽版) 是以草案 IETF Web Bot Auth 通訊協定為基礎,該通訊協定可能會隨著規格朝最終化發展而變更。

+ 目前實作:

+ * 實作詳細資訊、API 參數和簽署機制可能會隨著我們符合最終通訊協定規格而變更 * WAF 供應商支援和政策會有所不同。並非所有網站都會辨識或允許已簽章的代理程式流量 * 網域擁有者保留對其機器人政策的完全控制權,而且無論密碼編譯簽章為何,都可能封鎖、監控或限制代理程式流量

+ 如需最新的通訊協定規格,請參閱 IETF 草稿

Amazon Bedrock AgentCore 瀏覽器透過 Web Bot Auth 來減少 CAPTCHA 挑戰,這是一種 IETF 通訊協定草稿,以密碼編譯方式識別網站和機器人控制廠商的 AI 代理程式。

概觀

AI 代理器在瀏覽網站時經常遇到反機器人機制,包括 CAPTCHA 挑戰、速率限制和請求封鎖。這些安全措施旨在防止惡意自動化流量,但通常也會封鎖合法 AI 代理器。

網站實作這些防禦,因為它們無法可靠地區分合法代理程式和惡意機器人。IP 地址或 User-Agent 字串等傳統識別方法很容易被欺騙,而且不提供可驗證的身分。

Web Bot Auth 透過實作自動化流量架構的 IETF HTTP 訊息簽章草案通訊協定來解決此挑戰。此通訊協定可讓 AI 代理器以密碼編譯方式簽署其 HTTP 請求,為網站提供可驗證的代理程式身分證明。

啟用 Web Bot Auth 時,Amazon Bedrock AgentCore 瀏覽器會自動使用私有金鑰簽署每個 HTTP 請求,並包含驗證標頭。機器人控制廠商 (例如 Cloudflare、Akamai Technologies 和 HUMAN Security) 可以針對公有金鑰目錄驗證這些簽章,並套用網站擁有者設定的適當政策。

此方法為合法自動化提供了標準化方法來識別自己,同時保留網站擁有者對存取政策的控制。

運作方式

Web Bot Auth 使用 IETF HTTP 訊息簽章標準以密碼編譯方式簽署 HTTP 請求:

  1. 代理程式註冊:Amazon Bedrock AgentCore 向機器人控制供應商 (Cloudflare、reCAPTCHA 等) 註冊,並提供公開金鑰進行驗證

  2. 請求簽署 :啟用時,瀏覽器工具會使用私有金鑰自動簽署每個 HTTP 請求

  3. 簽章標頭 :每個請求會新增三個標頭:

    • Signature :密碼編譯簽章

    • Signature-Agent :指向公有金鑰目錄進行驗證

    • Signature-Input :指定已簽署的元件

  4. 驗證 :網站的機器人控制系統會擷取公有金鑰並驗證簽章,以確認請求來自 Amazon Bedrock AgentCore

  5. 政策應用程式 :根據已驗證的身分,網站可以套用適當的政策。網域擁有者可以將機器人控制系統設定為:

    • 封鎖所有流量:拒絕所有自動請求,無論身分驗證為何

    • 僅允許已簽章的機器人 :僅接受來自已驗證客服人員且具有有效 Web Bot Auth 簽章的請求

    • 允許來自特定目錄的已簽章機器人:允許已驗證的代理程式僅存取網站上的特定路徑或資源

啟用 Web Bot 驗證

若要啟用 Web Bot Auth,您需要在建立瀏覽器工具時進行設定:

範例
AWS CLI
  1. 若要使用 CLI 建立已啟用 Web Bot Auth AWS 的瀏覽器工具:

    aws bedrock-agentcore-control create-browser \ --region <Region> \ --name "my-browser-with-auth" \ --description "Browser with Web Bot Auth enabled" \ --network-configuration '{"networkMode": "PUBLIC"}' \ --execution-role-arn "arn:aws:iam::<account-id>:role/<execution-role>" \ --browser-signing '{"enabled": true}'
Boto3
  1. 若要使用 Boto3 建立已啟用 Web Bot Auth 的瀏覽器工具:

    import boto3 client = boto3.client('bedrock-agentcore-control', region_name='us-west-2') response = client.create_browser( name='my-browser-with-auth', description='Browser with Web Bot Auth enabled', networkConfiguration={ 'networkMode': 'PUBLIC' }, executionRoleArn='arn:aws:iam::<account-id>:role/<execution-role>', browserSigning={ 'enabled': True } )
Console
  1. ====== 在主控台中啟用 Web Bot 驗證

  2. 在 https://# 開啟 AgentCore 主控台。 https://console.aws.amazon.com/bedrock-agentcore/home

  3. 在導覽窗格中,選擇內建工具

  4. 選擇建立瀏覽器工具

  5. 提供唯一的工具名稱和選用的描述

  6. 網路設定 下,選擇公有網路

  7. Web Bot 驗證組態區段中,選取使用 Web Bot 驗證核取方塊。

  8. 許可 下,指定 IAM 執行角色,以定義瀏覽器工具可存取 AWS 的資源。

  9. 視需要設定其他瀏覽器設定,然後選擇建立

重要

Web Bot Auth 需要具有信任政策的執行角色,但不需要任何受管或內嵌政策。此功能預設為停用,且必須在瀏覽器建立期間明確啟用。您應該將下列信任政策新增至執行角色:【source,json,subs="verbatim,attributes"】 ---- { "Version":"2012-10-17", "Statement": 【{ "Sid": "BedrockAgentCoreBuiltInTools", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agent:us-east-1:111122223333" } } -} }

支援的機器人控制供應商

Amazon Bedrock AgentCore 目前支援下列機器人控制廠商的 Web Bot Auth:

  • Cloudflare

  • HUMAN 安全

  • Akamai Technologies

  • DataDome

  • F5

建立合作夥伴關係時,將支援其他機器人控制供應商。身分驗證以透明的方式運作 - 啟用後,您的代理程式就可以瀏覽受這些服務保護的網站,並減少摩擦。

考量事項

  • 透明操作 :Web Bot Auth 會在啟用後自動運作。您的代理程式應用程式中不需要額外的程式碼變更。

  • 效能影響 :簽署請求會將 HTTP 請求的延遲降至最低。

  • 廠商涵蓋範圍 :此功能僅適用於使用支援機器人控制廠商的網站。使用其他反機器人解決方案的網站仍可能存在挑戰。

  • 政策相依性 :即使使用身分驗證,網站擁有者也會控制其機器人政策。有些網站仍會根據其特定需求來限制或監控客服人員流量。