View a markdown version of this page

Uso de proxies de navegador - Amazon Bedrock AgentCore

Uso de proxies de navegador

El AgentCore navegador Amazon Bedrock permite enrutar el tráfico del navegador a través de sus propios servidores proxy externos. Esto permite a las organizaciones:

  • Logre la estabilidad IP enrutando el tráfico a través de servidores proxy con IP de salida conocidas, lo que elimina los ciclos de reautenticación provocados por la rotación de direcciones IP AWS

  • Support IP allowlisting proporcionando direcciones de salida estables y controlables para los servicios que requieren controles de acceso IP-based

  • Intégrelo con la infraestructura corporativa mediante el enrutamiento a través de sus servidores proxy existentes para acceder a las páginas web y los recursos internos

Descripción general de

Al crear una sesión de navegador con configuración de proxy, el AgentCore navegador configura el navegador para enrutar el tráfico HTTP y HTTPS a través de los servidores proxy especificados.

Los proxies del navegador solicitan un flujo que muestra el tráfico que se dirige desde la sesión del navegador a los sitios web de destino a través de un servidor proxy administrado por el cliente.

Flujo de solicitudes:

  1. Usted llama StartBrowserSession con proxyConfiguration un servidor proxy específico.

  2. Si utiliza la autenticación, AgentCore recupera las credenciales de proxy de AWS Secrets Manager.

  3. La sesión del navegador comienza con la configuración de proxy aplicada.

  4. El tráfico del navegador se enruta a través de su servidor proxy según las reglas de enrutamiento de su dominio.

  5. Tu servidor proxy reenvía las solicitudes a los sitios web de destino.

El servidor proxy es una infraestructura que usted posee y administra. AgentCore El navegador se conecta a él como un cliente.

La configuración del proxy aplica el --proxy-server indicador Chromium a la instancia del navegador al iniciarse, lo que dirige el tráfico a través del proxy especificado a nivel del navegador. Para los escenarios que requieren la aplicación a nivel de red (por ejemplo, cuando la configuración a nivel del navegador se puede modificar durante el tiempo de ejecución), implemente sesiones de navegador en su propia VPC. Consulte Configurar el tiempo de AgentCore ejecución y las herramientas de Amazon Bedrock para VPC.

Requisitos previos

Antes de configurar los proxies del navegador, asegúrese de tener:

  • Requisitos previos generales del navegador: complete la configuración estándar de la herramienta del navegador. Consulte Comenzar a utilizar el AgentCore navegador.

  • Servidor proxy: servidor HTTP/HTTPS proxy al que se puede acceder desde la Internet pública (o al que se puede acceder desde la VPC si se utiliza una configuración de VPC) y que admite el método HTTP CONNECT para la tunelización del tráfico HTTPS.

  • AWS Secrets Manager secret (si se utiliza la autenticación): secreto que contiene las credenciales del proxy en formato JSON con password claves username y.

  • Permisos de IAM (si se utiliza la autenticación): la identidad de IAM que realiza la llamada StartBrowserSession debe tener secretsmanager:GetSecretValue permiso para el secreto de la credencial.

Introducción

En esta sección se muestra la configuración más sencilla para enrutar el tráfico del navegador a través de un proxy.

Paso 1: Crear un secreto de credenciales (si se utiliza la autenticación)

Si su proxy requiere autenticación, cree un secreto en AWS Secrets Manager:

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

Requisitos de formato de credenciales:

Campo Caracteres permitidos

username

Alfanumérico más @ . _ + = -

password

Alfanumérico más @. _ + = -! # $% *

Caracteres no permitidos: dos puntos (:), líneas nuevas, espacios, comillas.

Paso 2: Añadir permisos de IAM

Añada esta política a la identidad de IAM que creará las sesiones del navegador:

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

Paso 3: Cree una sesión de navegador con proxy

Puede crear una sesión de navegador con configuración de proxy mediante la AWS CLI, el SDK o la API.

ejemplo
AWS CLI
  1. Para iniciar una sesión de navegador con un proxy mediante la 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" } } } }] }'

    En el caso de los proxies que utilizan listas de direcciones IP permitidas en lugar de credenciales, omita el 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 una sesión de navegador con un proxy mediante el 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']}")

    En el caso de los proxies que utilizan listas de direcciones IP permitidas en lugar de credenciales, omita el campo: credentials

    proxyConfiguration={ "proxies": [{ "externalProxy": { "server": "your-proxy-hostname", "port": 8080 } }] }
API
  1. Para iniciar una sesión de navegador con un proxy mediante la 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" } } } }] } }

Opciones de configuración

Domain-based enrutamiento

Se utiliza domainPatterns para enrutar dominios específicos a través de proxies designados:

ejemplo
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 } } ] } }

Con esta configuración:

  • Las solicitudes a *.company.com y *.internal.corp se envían corp-proxy.example.com

  • Todas las demás solicitudes se envían automáticamente (predeterminado) general-proxy.example.com

Formato de patrón de dominio:

Patrón Coincide No coincide

.example.com

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

notexample.com

example.com

example.com(solo coincide exactamente)

www.example.com

Utilice .example.com (punto inicial) para los subdominios. No utilice *.example.com.

Omita los dominios

bypass.domainPatternsUtilícelo para los dominios que deberían conectarse directamente sin ningún proxy:

ejemplo
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

La configuración de proxy es una configuración de enrutamiento a nivel de navegador y no proporciona control de tráfico a nivel de red. Para la aplicación a nivel de red, implemente sesiones de navegador en su VPC. Consulte Configurar el tiempo de AgentCore ejecución y las herramientas de Amazon Bedrock para VPC.

Prioridad de enrutamiento

Rutas de tráfico según esta prioridad (de mayor a menor):

  1. Omitir dominios: los dominios que coinciden se bypass.domainPatterns conectan directamente.

  2. Patrones de dominios proxy: dominios que coinciden con la domainPatterns ruta de un proxy a través de ese proxy (la primera coincidencia gana según el orden de la matriz).

  3. Proxy predeterminado: los dominios no coincidentes pasan por el proxy sin domainPatterns él.

Ejemplos completos

Los siguientes ejemplos muestran una configuración de proxy completa con patrones de dominio, dominios de omisión y credenciales de autenticación.

ejemplo
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

Estabilidad de IP para portales basados en sesiones

Los portales de salud y finanzas suelen validar las sesiones en función de la dirección IP de origen. AWS La rotación de las direcciones IP provoca una reautenticación frecuente. Dirija el tráfico a través de un proxy con direcciones IP de salida estables para mantener la continuidad de la sesión.

Integración de la infraestructura corporativa

Las organizaciones que dirigen el tráfico a través de proxies corporativos pueden extender esta práctica a las sesiones de AgentCore navegador, lo que permite el acceso a páginas web y recursos internos que requieren conectividad basada en proxy.

Acceso al contenido geográfico

Acceda al contenido específico de una región o pruebe las variaciones de los sitios web regionales enrutando el tráfico a través de proxies en ubicaciones geográficas específicas.

Acceso a la red de socios

Dirija el tráfico específico de los socios a través de una infraestructura de proxy dedicada y, al mismo tiempo, utilice proxies generales para el resto del tráfico.

Comportamiento de sesión

ciclo de vida de configuración

  • Se establece en el momento de la creación: la configuración del proxy se establece una vez en la creación de la sesión. No se admiten los cambios de configuración en tiempo de ejecución. Cree una sesión nueva para usar ajustes diferentes.

  • Session-scoped— Cada sesión del navegador tiene una configuración de proxy independiente.

  • Tiempo de espera: se aplican tiempos de espera de sesión estándar. La configuración del proxy se descarta al finalizar la sesión.

Comportamiento de conectividad

  • Fail-open— La conectividad del proxy no se valida en el momento de la creación de la sesión. Las sesiones configuradas con proxies no disponibles mostrarán errores al cargar las páginas.

  • Errores de tiempo de ejecución: los errores de conexión aparecen como páginas de errores del navegador y están visibles en Live View para solucionar problemas.

  • Sin reintento automático: las solicitudes fallidas no se reintentan automáticamente.

Cross-account acceso secreto

Si el secreto de las credenciales está en una AWS cuenta diferente, configure lo siguiente:

Política de recursos secretos (en la cuenta que posee el secreto):

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

Política de claves de KMS (si se utiliza una clave de KMS administrada por el cliente):

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

Consideraciones de seguridad

Protección de credenciales

  • Las credenciales se almacenan en AWS Secrets Manager y se obtienen con sus credenciales de IAM.

  • Las credenciales nunca se devuelven en las respuestas de la API. GetBrowserSessionsolo devuelvesecretArn.

  • Las credenciales no se escriben en los registros.

Control de acceso

  • Los permisos de IAM controlan qué identidades pueden usar qué secretos de credenciales.

  • Cross-account el acceso requiere políticas de recursos explícitas.

Consideraciones sobre el rendimiento

  • Capacidad: asegúrese de que su proxy pueda gestionar el volumen de solicitudes esperado.

  • Omitir: añade AWS terminales bypass.domainPatterns para las llamadas sensibles a la latencia.

  • Proximidad: utilice proxies geográficamente cercanos a su región. AWS

Restricciones

Restricción Límite Ajustable

Número máximo de proxies por sesión

5

Patrones de dominio máximos por proxy

100

Patrones máximos de omisión de dominios

100

Longitud del nombre de host del servidor

253 caracteres

No

Longitud del patrón de dominio

253 caracteres

No

Intervalo de puertos

1—65535

No

Para solicitar un aumento de las restricciones ajustables, ponte en contacto con AWS el servicio de asistencia.

Limitaciones

Antes de configurar los servidores proxy del navegador, revise estas limitaciones para asegurarse de que la función cumpla con sus requisitos:

Limitación Details

Enrutamiento del tráfico

La configuración del proxy es una configuración a nivel de navegador que se aplica al inicio de la sesión. No es un control a nivel de red y no garantiza que todo el tráfico pase por el proxy. Para la aplicación a nivel de red, utilice Configure Amazon Bedrock AgentCore Runtime y las herramientas para VPC.

Protocolos admitidos

Solo proxies HTTP y HTTPS. No se admiten los proxies SOCKS4 y SOCKS5.

Autenticación

Autenticación HTTP básica o sin autenticación (lista de direcciones IP permitidas). No se admite la autenticación basada en certificados, ni en Kerberos ni en NTLM.

Cambios en el proxy

La configuración del proxy se establece una vez al crear la sesión. No se admiten los cambios de configuración en tiempo de ejecución. Cree una nueva sesión para cambiar la configuración del proxy.

Rotación de proxy

No se admite la rotación automática del proxy para los ciclos de IP o la distribución de la carga. Cree nuevas sesiones para rotar los proxies.

Validación de conexiones

La conectividad del proxy no se valida en el momento de la creación de la sesión. Los errores de conexión aparecen en tiempo de ejecución.