View a markdown version of this page

Usando proxies de navegador - Amazon Bedrock AgentCore

Usando proxies de navegador

O Amazon Bedrock AgentCore Browser suporta o roteamento do tráfego do navegador por meio de seus próprios servidores proxy externos. Isso permite que as organizações:

  • Obtenha estabilidade de IP roteando o tráfego por meio de proxies com IPs de saída conhecidos, eliminando os ciclos de reautenticação causados pela rotação de endereços IP AWS

  • Supporte a lista de permissões de IP fornecendo endereços de saída estáveis e controláveis para serviços que exigem controles de acesso IP-based

  • Integre-se à infraestrutura corporativa por meio do roteamento por meio de seus servidores proxy existentes para acessar páginas da Web e recursos internos

Visão geral do

Quando você cria uma sessão de navegador com configuração de proxy, o AgentCore Navegador configura o navegador para rotear o tráfego HTTP e HTTPS por meio dos servidores proxy especificados.

Fluxo de solicitações de proxies do navegador mostrando o roteamento do tráfego da sessão do navegador por meio de um servidor proxy gerenciado pelo cliente para os sites de destino.

Fluxo de solicitações:

  1. Você liga StartBrowserSession com uma proxyConfiguration especificação do seu servidor proxy.

  2. Se estiver usando autenticação, AgentCore recupera as credenciais de proxy do AWS Secrets Manager.

  3. A sessão do navegador começa com a configuração do proxy aplicada.

  4. O tráfego do navegador passa pelo seu servidor proxy com base nas regras de roteamento do seu domínio.

  5. Seu servidor proxy encaminha solicitações para sites de destino.

O servidor proxy é a infraestrutura que você possui e gerencia. AgentCore O navegador se conecta a ele como cliente.

A configuração do proxy aplica o --proxy-server sinalizador Chromium à instância do navegador na inicialização, direcionando o tráfego por meio do proxy especificado no nível do navegador. Para cenários que exigem a aplicação da camada de rede, por exemplo, quando as configurações no nível do navegador podem ser modificadas durante o tempo de execução, implante sessões do navegador em sua própria VPC. Consulte Configurar o tempo de AgentCore execução e as ferramentas do Amazon Bedrock para VPC.

Pré-requisitos

Antes de configurar os proxies do navegador, verifique se você tem:

  • Pré-requisitos gerais do navegador — Conclua a configuração padrão da ferramenta do navegador. Consulte Introdução ao AgentCore navegador.

  • Servidor proxy — Um servidor HTTP/HTTPS proxy que pode ser acessado pela Internet pública (ou acessível na sua VPC se estiver usando a configuração da VPC) e compatível com o método HTTP CONNECT para tunelamento de tráfego HTTPS.

  • AWS Segredo do Secrets Manager (se estiver usando autenticação) — Um segredo contendo credenciais de proxy no formato JSON com chaves username e. password

  • Permissões do IAM (se estiver usando autenticação) — A chamada de identidade do IAM StartBrowserSession deve ter secretsmanager:GetSecretValue permissão para o segredo da credencial.

Introdução

Esta seção mostra a configuração mais simples para rotear o tráfego do navegador por meio de um proxy.

Etapa 1: criar um segredo de credenciais (se estiver usando autenticação)

Se seu proxy exigir autenticação, crie um segredo no AWS Secrets Manager:

aws secretsmanager create-secret \ --name "my-proxy-credentials" \ --secret-string '{"username":"<your-username>","password":"<your-password>"}'

Requisitos de formato de credencial:

Campo Caracteres permitidos

username

Alfanumérico mais @ . _ + = -

password

Alfanumérico mais @. _ + = -! # $% *

Caracteres não permitidos: dois pontos (:), novas linhas, espaços, aspas.

Etapa 2: adicionar permissões do IAM

Adicione essa política à identidade do IAM que criará sessões do navegador:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:AWS Region:AWS account:secret:secret-name*" } ] }

Etapa 3: criar uma sessão de navegador com proxy

Você pode criar uma sessão de navegador com configuração de proxy usando a AWS CLI, o SDK ou a API.

exemplo
AWS CLI
  1. Para iniciar uma sessão do navegador com um proxy usando a AWS CLI:

    aws bedrock-agentcore start-browser-session \ --browser-identifier "aws.browser.v1" \ --name "my-proxy-session" \ --proxy-configuration '{ "proxies": [{ "externalProxy": { "server": "your-proxy-hostname", "port": 8080, "credentials": { "basicAuth": { "secretArn": "arn:aws:secretsmanager:region:account-id:secret:secret-name" } } } }] }'

    Para proxies que usam listas de permissões de IP em vez de credenciais, omita o campo: credentials

    aws bedrock-agentcore start-browser-session \ --browser-identifier "aws.browser.v1" \ --name "my-proxy-session" \ --proxy-configuration '{ "proxies": [{ "externalProxy": { "server": "your-proxy-hostname", "port": 8080 } }] }'
Boto3
  1. Para iniciar uma sessão do navegador com um proxy usando o AWS SDK para Python (Boto3):

    import boto3 client = boto3.client('bedrock-agentcore', region_name='region') response = client.start_browser_session( browserIdentifier="aws.browser.v1", name="my-proxy-session", proxyConfiguration={ "proxies": [{ "externalProxy": { "server": "your-proxy-hostname", "port": 8080, "credentials": { "basicAuth": { "secretArn": "arn:aws:secretsmanager:region:account-id:secret:secret-name" } } } }] } ) print(f"Session ID: {response['sessionId']}")

    Para proxies que usam listas de permissões de IP em vez de credenciais, omita o campo: credentials

    proxyConfiguration={ "proxies": [{ "externalProxy": { "server": "your-proxy-hostname", "port": 8080 } }] }
API
  1. Para iniciar uma sessão do navegador com um proxy usando a API:

    PUT /browsers/aws.browser.v1/sessions/start HTTP/1.1 Host: bedrock-agentcore.region.amazonaws.com Content-Type: application/json Authorization: AWS4-HMAC-SHA256 ... { "name": "my-proxy-session", "proxyConfiguration": { "proxies": [{ "externalProxy": { "server": "your-proxy-hostname", "port": 8080, "credentials": { "basicAuth": { "secretArn": "arn:aws:secretsmanager:region:account-id:secret:secret-name" } } } }] } }

Opções de configuração

Domain-based roteamento

Use domainPatterns para rotear domínios específicos por meio de proxies designados:

exemplo
AWS CLI
  1. aws bedrock-agentcore start-browser-session \ --browser-identifier "aws.browser.v1" \ --name "domain-routing-session" \ --proxy-configuration '{ "proxies": [ { "externalProxy": { "server": "corp-proxy.example.com", "port": 8080, "domainPatterns": [".company.com", ".internal.corp"] } }, { "externalProxy": { "server": "general-proxy.example.com", "port": 8080 } } ] }'
Boto3
  1. proxyConfiguration={ "proxies": [ { "externalProxy": { "server": "corp-proxy.example.com", "port": 8080, "domainPatterns": [".company.com", ".internal.corp"] } }, { "externalProxy": { "server": "general-proxy.example.com", "port": 8080 } } ] }
API
  1. { "proxyConfiguration": { "proxies": [ { "externalProxy": { "server": "corp-proxy.example.com", "port": 8080, "domainPatterns": [".company.com", ".internal.corp"] } }, { "externalProxy": { "server": "general-proxy.example.com", "port": 8080 } } ] } }

Com esta configuração:

  • Solicitações para *.company.com e *.internal.corp são encaminhadas até corp-proxy.example.com

  • Todas as outras solicitações são general-proxy.example.com encaminhadas (padrão)

Formato do padrão de domínio:

Padrão Correspondências Não corresponde

.example.com

example.com , www.example.com , api.example.com

notexample.com

example.com

example.com(somente correspondência exata)

www.example.com

Use .example.com (ponto inicial) para subdomínios. Não use *.example.com.

Ignorar domínios

Use bypass.domainPatterns para domínios que devem se conectar diretamente sem nenhum proxy:

exemplo
AWS CLI
  1. aws bedrock-agentcore start-browser-session \ --browser-identifier "aws.browser.v1" \ --name "bypass-session" \ --proxy-configuration '{ "proxies": [{ "externalProxy": { "server": "proxy.example.com", "port": 8080 } }], "bypass": { "domainPatterns": [".amazonaws.com"] } }'
Boto3
  1. proxyConfiguration={ "proxies": [{ "externalProxy": { "server": "proxy.example.com", "port": 8080 } }], "bypass": { "domainPatterns": [".amazonaws.com"] } }
API
  1. { "proxyConfiguration": { "proxies": [{ "externalProxy": { "server": "proxy.example.com", "port": 8080 } }], "bypass": { "domainPatterns": [".amazonaws.com"] } } }
nota

A configuração de proxy é uma configuração de roteamento no nível do navegador e não fornece controle de tráfego no nível da rede. Para imposição na camada de rede, implante sessões de navegador em sua VPC. Consulte Configurar o tempo de AgentCore execução e as ferramentas do Amazon Bedrock para VPC.

Precedência de roteamento

Rotas de tráfego de acordo com essa precedência (da maior para a menor):

  1. Ignorar domínios — Domínios correspondentes se conectam diretamente. bypass.domainPatterns

  2. Padrões de domínio proxy — Domínios que correspondem à domainPatterns rota de um proxy por meio desse proxy (a primeira partida vence com base na ordem da matriz).

  3. Proxy padrão — Domínios incomparáveis são roteados pelo proxy sem. domainPatterns

Exemplos completos

Os exemplos a seguir mostram uma configuração completa de proxy com padrões de domínio, domínios de desvio e credenciais de autenticação.

exemplo
AWS CLI
  1. aws bedrock-agentcore start-browser-session \ --browser-identifier "aws.browser.v1" \ --name "proxy-session" \ --proxy-configuration '{ "proxies": [{ "externalProxy": { "server": "proxy-hostname", "port": 8080, "domainPatterns": [".company.com"], "credentials": { "basicAuth": { "secretArn": "arn:aws:secretsmanager:region:account-id:secret:secret-name" } } } }], "bypass": { "domainPatterns": [".amazonaws.com"] } }'
Boto3
  1. import boto3 client = boto3.client('bedrock-agentcore', region_name='region') response = client.start_browser_session( browserIdentifier="aws.browser.v1", name="proxy-session", proxyConfiguration={ "proxies": [{ "externalProxy": { "server": "proxy-hostname", "port": 8080, "domainPatterns": [".company.com"], "credentials": { "basicAuth": { "secretArn": "arn:aws:secretsmanager:region:account-id:secret:secret-name" } } } }], "bypass": { "domainPatterns": [".amazonaws.com"] } } ) print(f"Session ID: {response['sessionId']}")
API
  1. PUT /browsers/aws.browser.v1/sessions/start HTTP/1.1 Host: bedrock-agentcore.region.amazonaws.com Content-Type: application/json Authorization: AWS4-HMAC-SHA256 ... { "name": "proxy-session", "proxyConfiguration": { "proxies": [{ "externalProxy": { "server": "proxy-hostname", "port": 8080, "domainPatterns": [".company.com"], "credentials": { "basicAuth": { "secretArn": "arn:aws:secretsmanager:region:account-id:secret:secret-name" } } } }], "bypass": { "domainPatterns": [".amazonaws.com"] } } }

Casos de uso

Estabilidade IP para portais baseados em sessão

Os portais financeiros e de assistência médica geralmente validam as sessões com base no endereço IP de origem. A rotação de endereços AWS IP causa reautenticação frequente. Direcione o tráfego por meio de um proxy com IPs de saída estáveis para manter a continuidade da sessão.

Integração da infraestrutura corporativa

Organizações que direcionam o tráfego por meio de proxies corporativos podem estender essa prática às sessões AgentCore do Browser, permitindo o acesso a páginas da Web e recursos internos que exigem conectividade baseada em proxy.

Acesso ao conteúdo geográfico

Acesse conteúdo específico da região ou teste variações regionais do site roteando o tráfego por meio de proxies em localizações geográficas específicas.

Acesso à rede de parceiros

Direcione o tráfego específico do parceiro por meio de uma infraestrutura de proxy dedicada enquanto usa proxies gerais para outros tráfegos.

Comportamento da sessão

Ciclo de vida da configuração

  • Definido na criação — A configuração do proxy é definida uma vez na criação da sessão. Não há suporte para alterações de configuração em tempo de execução. Crie uma nova sessão para usar configurações diferentes.

  • Session-scoped— Cada sessão do navegador tem configuração de proxy independente.

  • Tempo limite — Os tempos limite de sessão padrão se aplicam. A configuração do proxy é descartada quando a sessão termina.

Comportamento de conectividade

  • Fail-open— A conectividade do proxy não é validada na criação da sessão. As sessões configuradas com proxies indisponíveis mostrarão erros ao carregar páginas.

  • Erros de tempo de execução — As falhas de conexão aparecem como páginas de erro do navegador, visíveis na Visualização dinâmica para solução de problemas.

  • Sem repetição automática — Solicitações com falha não são repetidas automaticamente.

Cross-account acesso secreto

Se o segredo das credenciais estiver em uma AWS conta diferente, configure o seguinte:

Política de recursos secretos (na conta proprietária do segredo):

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::caller-account-id:root"}, "Action": "secretsmanager:GetSecretValue", "Resource": "*" }] }

Política de chaves KMS (se estiver usando uma chave KMS gerenciada pelo cliente):

{ "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::caller-account-id:root"}, "Action": "kms:Decrypt", "Resource": "*" }

Considerações sobre segurança

Proteção de credenciais

  • As credenciais são armazenadas no AWS Secrets Manager e obtidas usando suas credenciais do IAM.

  • As credenciais nunca são retornadas nas respostas da API. GetBrowserSessionretorna somentesecretArn.

  • As credenciais não são gravadas nos registros.

Controle de acesso

  • As permissões do IAM controlam quais identidades podem usar quais segredos de credenciais.

  • Cross-account o acesso requer políticas de recursos explícitas.

Considerações sobre a performance

  • Capacidade — garanta que seu proxy possa lidar com o volume esperado de solicitações.

  • Ignorar — Adicione AWS endpoints bypass.domainPatterns para chamadas sensíveis à latência.

  • Proximidade — Use proxies geograficamente próximos à sua região. AWS

Restrições

Restrição Limite Ajustável

Máximo de proxies por sessão

5

Sim

Padrões máximos de domínio por proxy

100

Sim

Padrões máximos de domínio de desvio

100

Sim

Tamanho do nome do host do servidor

253 caracteres

Não

Comprimento do padrão de domínio

253 caracteres

Não

Intervalo de portas

1—65535

Não

Para solicitar um aumento nas restrições ajustáveis, entre em contato com AWS o suporte.

Limitações

Antes de configurar os proxies do navegador, analise essas limitações para garantir que o recurso atenda aos seus requisitos:

Limitação Detalhes

Roteamento de tráfego

A configuração do proxy é uma configuração no nível do navegador aplicada na inicialização da sessão. Não é um controle em nível de rede e não garante que todo o tráfego transitará pelo proxy. Para imposição na camada de rede, use o Configure Amazon Bedrock AgentCore Runtime e as ferramentas para VPC.

Protocolos compatíveis

Somente proxies HTTP e HTTPS. Os proxies SOCKS4 e SOCKS5 não são suportados.

Autenticação

HTTP Autenticação básica ou sem autenticação (lista de permissões de IP). Não há suporte para NTLM, Kerberos e autenticação baseada em certificado.

Alterações no proxy

A configuração do proxy é definida uma vez na criação da sessão. Não há suporte para alterações de configuração em tempo de execução. Crie uma nova sessão para alterar as configurações de proxy.

Rotação de proxy

A rotação automática de proxy para ciclagem de IP ou distribuição de carga não é suportada. Crie novas sessões para alternar proxies.

Validação de conexão

A conectividade do proxy não é validada na criação da sessão. Os erros de conexão aparecem em tempo de execução.