AI News HubLIVE
站內改寫4 分鐘閱讀

透過 Chrome 企業策略控制 AI 代理在 Amazon Bedrock AgentCore 上的瀏覽行為

本文介紹瞭如何在 Amazon Bedrock AgentCore 中應用 Chrome 企業策略和自定義根證書,以限制 AI 代理的瀏覽範圍、停用不安全功能,並支援內部服務連線。透過一個完整的演示示例,展示瞭如何配置 URL 允許/阻止列表、停用密碼管理器、阻止下載等策略,並使用 Playwright 驗證策略執行效果。

來源AWS Machine Learning Blog作者: Sundar Raghavan

AI 代理如果具有不受限制的網頁訪問許可權,會帶來嚴重的安全風險。沒有 Chrome 企業策略來控制瀏覽器行為,代理可能會導航到未經授權的域名、在瀏覽器的密碼管理器中儲存憑證,或者在批准的流程之外下載檔案。對於使用私有證書頒發機構(CA)的內部服務,每一個 HTTPS 連線都會因為證書驗證錯誤而失敗,這構成了額外的障礙。

Amazon Bedrock AgentCore Browser 現在支援 Chrome 企業策略和自定義根 CA 證書,讓組織能夠對代理的瀏覽器行為和連線進行精細控制。透過 Chrome 策略,您可以配置超過 450 種瀏覽器設定,包括 URL 過濾、下載限制和密碼管理器控制,這些設定透過熟悉的 Chrome 企業 JSON 配置檔案應用。自定義根證書支援讓您的代理能夠連線到內部服務,並與企業 SSL 攔截代理一起工作,方法是信任您組織的證書頒發機構。所有可用設定的完整參考,請參閱 Chrome Enterprise 策略列表。

本文中,您將配置 Chrome 企業策略來限制瀏覽器代理只能訪問特定網站,透過會話記錄觀察策略執行效果,並使用公共測試網站演示自定義根 CA 證書。這個演示將產生一個可工作的解決方案,可以在企業瀏覽器限制下研究 Amazon Bedrock AgentCore 文件。

為何為 AI 代理強制執行瀏覽器策略

Chrome 企業策略在應用於 AI 瀏覽器代理時解決了三個組織需求。

首先,您可以將代理範圍限制在已批准的域名。URL 允許列表和阻止列表限制了代理的導航範圍。一個專門處理特定門戶發票的代理不需要訪問社交媒體或搜尋引擎。策略在瀏覽器級別強制執行這些邊界,獨立於代理的提示或推理。

其次,您可以停用有風險的瀏覽器功能。透過 Chrome 策略,您可以關閉密碼管理器、阻止檔案下載、停用自動填充以及控制其他數十種瀏覽器功能。對於與敏感系統互動的資料輸入代理,這些控制減少了意外資料儲存或洩露的風險。

第三,您可以將策略管理與代理開發分離。託管策略在瀏覽器級別透過控制平面 API 配置,並應用於該瀏覽器建立的每個會話。這允許您的安全團隊定義批准的瀏覽器配置,而開發團隊專注於代理邏輯,無需將策略決策嵌入到應用程式程式碼中。

Chrome 策略和根 CA 證書的應用方式

該整合具有兩層策略執行和一個可選的證書信任配置。

託管策略在瀏覽器級別執行。您在透過控制平面 API 建立瀏覽器時,提供儲存在 Amazon Simple Storage Service(Amazon S3)中的 Chrome 企業策略 JSON 檔案。這些策略由服務儲存,並在從該瀏覽器建立的每個會話上強制執行。託管策略對映到 Chrome 的 /etc/chromium/policies/managed/ 目錄。它們不能被會話級別的設定覆蓋。

推薦策略在會話級別執行。您可以在透過資料平面 API 啟動瀏覽器會話時,可選地提供額外的策略 JSON 檔案。這些對映到 Chrome 的 /etc/chromium/policies/recommended/ 目錄,並作為使用者偏好。如果託管策略和推薦策略在同一設定上衝突,則託管策略優先。這是 Chrome 的預設行為。

您可以使用自定義根 CA 證書,將組織的根 CA 證書儲存在 AWS Secrets Manager 中,並在建立瀏覽器或 AgentCore Code Interpreter 時引用它。服務將該證書匯入證書信任儲存,因此連線到內部服務和 SSL 攔截代理時不會停用證書驗證。

解決方案架構

下圖展示了 Chrome 策略 JSON 檔案和根 CA 證書如何從您的環境,透過 Amazon Bedrock AgentCore 控制平面和資料平面,最終傳遞到隔離的瀏覽器會話中。

圖 1:策略執行資料流從您的環境透過 Amazon Bedrock AgentCore 到隔離的瀏覽器會話。

在您的環境中,您將 Chrome 策略 JSON 檔案儲存在 Amazon S3,並將可選的根 CA 證書儲存在 AWS Secrets Manager。

控制平面在呼叫 CreateBrowser 時從您的 S3 儲存桶獲取策略 JSON(箭頭 1),並可選地從 AWS Secrets Manager 獲取根 CA 證書(箭頭 2,虛線表示可選)。

您的應用程式呼叫 CreateBrowser API(箭頭 3),然後呼叫 StartBrowserSession API(箭頭 4)。

控制平面將瀏覽器配置後設資料傳遞給資料平面(箭頭 5)。

資料平面將託管策略、推薦策略和根 CA 證書部署到隔離的瀏覽器會話(箭頭 6)。Chrome 在啟動時讀取合併的配置,並在整個會話中強制執行策略。

前提條件

在開始之前,請確保您具備以下條件:

  • Python 3.10 或更高版本
  • 一個 AWS 賬戶,並已啟用 Amazon Bedrock AgentCore 訪問許可權
  • 已配置 AWS 憑證,可以使用 aws sts get-caller-identity 驗證
  • 一個 Amazon Bedrock AgentCore 可用的 AWS 區域(請參閱 AgentCore 文件中的支援區域)
  • 訪問驅動代理的 AI 模型。本文使用透過 Amazon Bedrock 的 Anthropic Claude。AgentCore 是模型無關的,可以替換其他模型提供程式和代理框架。

筆記:筆記本會自動建立所需的 AWS 資源,包括 S3 儲存桶、IAM 執行角色、AgentCore Browser 和 AgentCore Code Interpreter。此自動配置僅用於演示目的。生產部署應使用預先存在的資源,並由安全團隊審查最小許可權 IAM 策略。

重要提示:使用來自 AWS IAM Identity Center 或 AWS Security Token Service(AWS STS)的臨時憑證。不要使用長期訪問金鑰。配置 IAM 許可權時遵循最小許可權原則。

設定環境

完整的演示程式碼在示例倉庫中以 Jupyter 筆記本形式提供。克隆它並按順序執行單元格。

git clone https://github.com/awslabs/amazon-bedrock-agentcore-samples.git
cd amazon-bedrock-agentcore-samples/01-tutorials/05-AgentCore-tools/02-Agent-Core-browser-tool/13-browser-chrome-policies
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
export AWS_REGION=us-west-2

然後執行 jupyter notebook browser-chrome-policies.ipynb。

演示

筆記本分為兩部分。第一部分建立 Chrome 企業策略,將其應用於自定義 AgentCore Browser,並使用 Playwright 驗證允許的 URL 載入成功,阻止的 URL 被拒絕。第二部分演示了 AgentCore Code Interpreter 中的自定義根 CA 證書。

定義 Chrome 企業策略

第一個單元格定義了一個 Chrome 企業策略,將瀏覽器限制為僅訪問 AWS 文件,並停用代理不需要的功能。策略 JSON 使用標準的 Chrome 企業策略設定。

policy = {
    "URLBlocklist": ["*"],
    "URLAllowlist": [
        "docs.aws.amazon.com",
        ".aws.amazon.com",
        ".amazonaws.com",
    ],
    "PasswordManagerEnabled": False,
    "DownloadRestrictions": 3,
    "DeveloperToolsAvailability": 0,
    "BookmarkBarEnabled": False,
    "AutofillAddressEnabled": False,
    "AutofillCreditCardEnabled": False,
}

注意:DeveloperToolsAvailability 必須設定為 0(或省略),以便瀏覽器與 Playwright 或基於 CDP 的自動化工具一起使用。設定為 2 會停用 CDP,導致無提示的超時。

使用託管策略建立瀏覽器

接下來的單元格建立一個自定義瀏覽器,該瀏覽器對每個會話強制執行策略。關鍵 API 呼叫使用 enterprise_policies 引數,並將 type 設定為 MANAGED。會話記錄也已啟用。

from bedrock_agentcore.tools import BrowserClient
client = BrowserClient(REGION)
response = client.create_browser(
    name="docs_research_browser",
    execution_role_arn=EXECUTION_ROLE_ARN,
    network_configuration={"networkMode": "PUBLIC"},
    enterprise_policies=[
        {
            "location": {
                "s3": {
                    "bucket": BUCKET_NAME,
                    "prefix": POLICY_KEY,
                }
            },
            "type": "MANAGED",
        }
    ],
    recording={
        "enabled": True,
        "s3Location": {
            "bucket": BUCKET_NAME,
            "prefix": "policy-demo",
        },
    },
)

然後筆記本輪詢 get_browser() 直到狀態從 CREATING 變為 READY。

使用 Playwright 演示 Chrome 策略執行

筆記本啟動一個瀏覽器會話,並使用 Playwright 導航到兩個 URL。第一個 URL(docs.aws.amazon.com)被策略允許,因此頁面載入成功。第二個 URL(www.wikipedia.org)被策略阻止,因此 Chrome 顯示錯誤頁面。

測試使用 wait_until="domcontentloaded" 而不是預設的 load 事件。AWS 文件頁面有持續的背景網路活動,這有助於防止 Playwright 的 networkidle 和預設載入狀態無法解析。同樣,文本提取使用 page.evaluate() 直接在瀏覽器上下文中執行 JavaScript,以避免在具有持續 DOM 突變的頁面上出現 Playwright 選擇器引擎超時。

執行此單元格後,您應該看到如下輸出:

TEST 1: Navigate to docs.aws.amazon.com (ALLOWED)
Page title: Overview - Amazon Bedrock AgentCore
Page text preview: Amazon Bedrock AgentCore ...
Result: PAGE LOADED SUCCESSFULLY

TEST 2: Navigate to www.wikipedia.org (BLOCKED)
Page title:
Result: CHROME POLICY BLOCKED THIS URL

這是 Chrome 策略的核心價值。限制發生在瀏覽器級別,獨立於代理的推理或提示指令。

您還可以在 Amazon Bedrock AgentCore 控制台中觀看瀏覽器即時會話,並回放錄製內容以驗證策略執行。

總結

透過 Amazon Bedrock AgentCore 的 Chrome 企業策略整合,組織可以大幅降低 AI 代理瀏覽的安全風險,確保代理僅訪問已批准的資源。