使用浏览器代理
Amazon Bed AgentCore rock Browser 支持通过您自己的外部代理服务器路由浏览器流量。这使组织能够:
-
通过具有已知出口 IP 的代理路由流量,消除因轮换 IP 地址而导致的重新身份验证周期,从而实现 IP 稳定性 AWS
-
通过为需要访问控制的服务提供稳定、可控的出口地址来@@ 支持 IP 许可名单 IP-based
-
通过您现有的代理服务器进行路由以访问内部网页和资源,从而与@@ 企业基础设施集成
概述
使用代理配置创建浏览器会话时,浏览器会将 AgentCore 浏览器配置为通过您指定的代理服务器路由 HTTP 和 HTTPS 流量。
请求流程:
-
您
StartBrowserSessionproxyConfiguration通过指定您的代理服务器进行呼叫。 -
如果使用身份验证,则从 S AWS ecrets Manager 中 AgentCore 检索代理凭证。
-
浏览器会话从应用代理配置开始。
-
浏览器流量根据您的域名路由规则通过您的代理服务器进行路由。
-
您的代理服务器将请求转发到目标网站。
代理服务器是您拥有和管理的基础架构。 AgentCore 浏览器以客户端的身份连接到它。
代理配置在启动时将 Chromium --proxy-server 标志应用于浏览器实例,在浏览器级别引导流量通过指定的代理。对于需要网络层强制执行的场景(例如,在运行时可以修改浏览器级别的设置时),请在您自己的 VPC 中部署浏览器会话。请参阅为 VPC 配置 Amazon 基岩 AgentCore 运行时和工具。
先决条件
在配置浏览器代理之前,请确保:
-
一般浏览器先决条件-完成标准浏览器工具设置。请参阅 AgentCore 浏览器入门。
-
代理服务器 — 一种可从公共互联网访问的 HTTP/HTTPS 代理服务器(如果使用 VPC 配置,则可在您的 VPC 内访问),并且支持用于 HTTPS 流量隧道的 HTTP CONNECT 方法。
-
AWS S@@ ecrets Manager 密钥(如果使用身份验证)— 包含带
username和密钥的 JSON 格式代理凭据的password密钥。 -
IAM 权限(如果使用身份验证)— IAM 身份调用者
StartBrowserSession必须拥有凭证密钥的secretsmanager:GetSecretValue权限。
开始使用
本节显示通过代理路由浏览器流量的最简单配置。
步骤 1:创建凭据密钥(如果使用身份验证)
如果你的代理需要身份验证,请在 Secrets Manager 中创建一个 AWS 密钥:
aws secretsmanager create-secret \ --name "my-proxy-credentials" \ --secret-string '{"username":"<your-username>","password":"<your-password>"}'
凭证格式要求:
| 字段 | 允许使用的字符 |
|---|---|
|
|
字母数字加号 |
|
|
字母数字加上 @. _ + =-! # $% * |
不允许使用字符:冒号 (:)、换行符、空格、引号。
第 2 步:添加 IAM 权限
将此策略添加到将创建浏览器会话的 IAM 身份:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:AWS Region:AWS account:secret:secret-name*" } ] }
步骤 3:使用代理创建浏览器会话
您可以使用 AWS CLI、SDK 或 API 创建带有代理配置的浏览器会话。
例
配置选项
Domain-based 路由
domainPatterns用于通过指定代理路由特定域:
例
使用此配置:
-
向 *.company.com 和 *.internal.corp 发出的请求通过
corp-proxy.example.com -
所有其他请求都经过路由
general-proxy.example.com(默认)
域名模式格式:
| 模式 | Matches | 不匹配 |
|---|---|---|
|
|
|
|
|
|
|
|
使用.example.com(前导点)表示子域名。不要使用 *.example.com。
绕过域名
bypass.domainPatterns用于应在没有任何代理的情况下直接连接的域:
例
注意
代理配置是浏览器级别的路由设置,不提供网络级别的流量控制。要进行网络层强制执行,请在您的 VPC 中部署浏览器会话。请参阅为 VPC 配置 Amazon 基岩 AgentCore 运行时和工具。
路由优先级
根据此优先级(从高到低)的交通路线:
-
绕过域名-匹配的域名直接
bypass.domainPatterns连接。 -
代理域模式 — 与代理通过该代理的
domainPatterns路由相匹配的域(根据数组顺序首次匹配获胜)。 -
默认代理 — 不匹配的域名不通过代理进行路由
domainPatterns。
完整示例
以下示例显示了包含域模式、旁路域和身份验证凭据的完整代理配置。
例
使用案例
基于会话的门户的 IP 稳定性
医疗保健和金融门户网站通常根据源 IP 地址验证会话。轮换 AWS IP 地址会导致频繁地重新进行身份验证。通过具有稳定出口 IP 的代理路由流量,以保持会话的连续性。
企业基础设施集成
通过公司代理路由流量的组织可以将这种做法扩展到 AgentCore 浏览器会话,从而允许访问需要基于代理的连接的内部网页和资源。
地理内容访问权限
通过特定地理位置的代理路由流量,访问特定地区的内容或测试区域网站的差异。
合作伙伴网络访问权限
通过专用的代理基础设施路由合作伙伴特定的流量,同时对其他流量使用通用代理。
会话行为
配置生命周期
-
创建时设置-代理配置在会话创建时设置一次。不支持在运行时更改配置。创建新会话以使用不同的设置。
-
Session-scoped— 每个浏览器会话都有独立的代理配置。
-
超时-标准会话超时适用。会话结束时,代理配置将被丢弃。
连接行为
-
Fail-open— 创建会话时未验证代理连接。配置了不可用代理的会话将在加载页面时显示错误。
-
运行时错误-连接失败显示为浏览器错误页面,在 Live View 中可见,便于故障排除。
-
不自动重试-失败的请求不会自动重试。
Cross-account 秘密访问
如果凭证密钥位于其他 AWS 账户中,请配置以下内容:
秘密资源策略(在拥有密钥的账户中):
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::caller-account-id:root"}, "Action": "secretsmanager:GetSecretValue", "Resource": "*" }] }
KMS 密钥策略(如果使用客户管理的 KMS 密钥):
{ "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::caller-account-id:root"}, "Action": "kms:Decrypt", "Resource": "*" }
安全注意事项
凭据保护
-
证书存储在 S AWS ecrets Manager 中,并使用您的 IAM 凭证获取。
-
API 响应中永远不会返回凭证。
GetBrowserSession仅限返回secretArn。 -
凭据不会写入日志。
访问控制
-
IAM 权限控制哪些身份可以使用哪些凭证。
-
Cross-account 访问需要明确的资源策略。
性能注意事项
-
容量-确保您的代理可以处理预期的请求量。
-
Bypas s —
bypass.domainPatterns为延迟敏感型呼叫添加 AWS 端点。 -
邻近性 — 使用地理位置靠近您所在 AWS 地区的代理。
约束
| 约束 | 限制 | 可调整 |
|---|---|---|
|
每个会话的最大代理数量 |
5 |
是 |
|
每个代理的最大域名模式 |
100 |
是 |
|
最大旁路域模式 |
100 |
是 |
|
服务器主机名长度 |
253 个字符 |
否 |
|
域名模式长度 |
253 个字符 |
否 |
|
端口范围 |
1—65535 |
否 |
要申请增加可调整的约束条件,请联系 AWS 支持人员。
限制
在配置浏览器代理之前,请查看以下限制以确保该功能符合您的要求:
| 限制 | 说明 |
|---|---|
|
流量路由 |
代理配置是在会话启动时应用的浏览器级别设置。它不是网络级别的控件,也不能保证所有流量都将通过代理。要进行网络层强制执行,请使用配置 Amazon Bedrock AgentCore 运行时和 VPC 工具。 |
|
受支持的协议 |
仅限 HTTP 和 HTTPS 代理。不支持 SOCKS4 和 SOCKS5 代理。 |
|
身份验证 |
HTTP 基本身份验证或不进行身份验证(IP 许可名单)。不支持 NTLM、Kerberos 和基于证书的身份验证。 |
|
代理变更 |
代理配置在会话创建时设置一次。不支持在运行时更改配置。创建新会话以更改代理设置。 |
|
代理轮换 |
不支持针对 IP 循环或负载分配的自动代理轮换。创建新的会话来轮换代理。 |
|
连接验证 |
创建会话时未验证代理连接。运行时会出现连接错误。 |