Controle dónde pueden navegar sus agentes de IA con las políticas empresariales de Chrome en Amazon Bedrock AgentCore

Los agentes de IA con acceso web ilimitado plantean importantes riesgos de seguridad. Sin políticas empresariales de Chrome para controlar el comportamiento del navegador, un agente podría navegar a dominios no autorizados, almacenar credenciales en el administrador de contraseñas del navegador o descargar archivos fuera de los flujos de trabajo aprobados. Las organizaciones con servicios internos que utilizan una autoridad de certificación (CA) privada enfrentan una barrera adicional. Cada conexión HTTPS a esos servicios falla con errores de validación de certificados.

Amazon Bedrock AgentCore Browser ahora admite políticas empresariales de Chrome y certificados de CA raíz personalizados para brindar a las organizaciones un control granular sobre el comportamiento y la conectividad del navegador del agente. Con las políticas de Chrome, puede configurar más de 450 configuraciones del navegador, incluido el filtrado de URL, restricciones de descarga y controles del administrador de contraseñas, aplicados a través de la configuración JSON empresarial familiar de Chrome. La compatibilidad con CA raíz personalizada permite a sus agentes conectarse a servicios internos y trabajar con servidores proxy corporativos que interceptan SSL confiando en la autoridad certificadora de su organización. Para obtener una referencia completa de las configuraciones disponibles, consulte la lista de políticas de Chrome Enterprise.

En esta publicación, configurará las políticas empresariales de Chrome para restringir un agente de navegador a un sitio web específico, observará la aplicación de políticas mediante la grabación de sesiones y demostrará certificados de CA raíz personalizados mediante un sitio de prueba público. El tutorial produce una solución funcional que investiga la documentación de Amazon Bedrock AgentCore mientras opera bajo restricciones del navegador empresarial.

¿Por qué aplicar políticas de navegador a los agentes de IA?

Las políticas empresariales de Chrome abordan tres necesidades organizativas cuando se aplican a los agentes de navegador de IA.

Primero, puede restringir el alcance del agente a dominios aprobados. Las listas de URL permitidas y denegadas limitan los lugares a los que los agentes pueden navegar. Un agente encargado de procesar facturas en un portal específico no necesita acceso a las redes sociales ni a los motores de búsqueda. Las políticas imponen estos límites a nivel del navegador, independientemente de las indicaciones o el razonamiento del agente.

En segundo lugar, puede desactivar las funciones riesgosas del navegador. Con las políticas de Chrome, puedes desactivar el administrador de contraseñas, bloquear descargas de archivos, desactivar el autocompletar y controlar docenas de otras capacidades del navegador. Para los agentes de entrada de datos que interactúan con sistemas sensibles, estos controles reducen el riesgo de almacenamiento o filtración de datos no intencionados.

En tercer lugar, puede separar la gestión de políticas del desarrollo de agentes. Las políticas administradas se configuran a nivel del navegador a través de la API del plano de control y se aplican a cada sesión creada desde ese navegador. Esto permite a su equipo de seguridad definir configuraciones de navegador aprobadas mientras su equipo de desarrollo se centra en la lógica del agente, sin incorporar decisiones de políticas en el código de la aplicación.

Cómo se aplican las políticas de Chrome y los certificados de CA raíz

La integración tiene dos capas de aplicación de políticas y una configuración de confianza de certificado opcional.

Las políticas administradas operan a nivel del navegador. Usted proporciona archivos JSON de política empresarial de Chrome almacenados en Amazon Simple Storage Service (Amazon S3) al crear un navegador a través de la API del plano de control. El servicio almacena estas políticas y las aplica en cada sesión creada desde ese navegador. Las políticas administradas se asignan al directorio /etc/chromium/policies/managed/ de Chrome. No pueden ser anulados por la configuración a nivel de sesión.

Las políticas recomendadas operan a nivel de sesión. Opcionalmente, puede proporcionar archivos JSON de políticas adicionales al iniciar una sesión del navegador a través de la API del plano de datos. Estos se asignan al directorio /etc/chromium/policies/recommended/ de Chrome y funcionan como preferencias del usuario. Si una política administrada y una política recomendada entran en conflicto en la misma configuración, la política administrada tiene prioridad. Este es el comportamiento predeterminado de Chrome.

Puede utilizar certificados de CA raíz personalizados para almacenar el certificado de CA raíz de su organización en AWS Secrets Manager y hacer referencia a él al crear un navegador o un intérprete de código AgentCore. El servicio importa el certificado al almacén de confianza de certificados, de modo que las conexiones a servicios internos y servidores proxy que interceptan SSL se realicen correctamente sin deshabilitar la validación de certificados.

Arquitectura de la solución

El siguiente diagrama muestra cómo los archivos JSON de política de Chrome y los certificados de CA raíz fluyen desde su entorno a través del plano de control y el plano de datos de Amazon Bedrock AgentCore hasta la sesión aislada del navegador.

Figura 1: Los datos de aplicación de políticas fluyen desde su entorno a través de Amazon Bedrock AgentCore hasta la sesión aislada del navegador.

En su entorno, almacena archivos JSON de políticas de Chrome en Amazon S3 y certificados de CA raíz opcionales en AWS Secrets Manager. El plano de control obtiene la política JSON de su depósito S3 cuando llama a CreateBrowser (flecha 1) y obtiene el certificado de CA raíz de AWS Secrets Manager si está configurado (flecha 2, discontinua para indicar que este paso es opcional). Su aplicación llama a la API CreateBrowser (flecha 3) y luego a la API StartBrowserSession (flecha 4). El plano de control pasa los metadatos de configuración del navegador al plano de datos (flecha 5). El plano de datos implementa políticas administradas, políticas recomendadas y certificados de CA raíz en la sesión aislada del navegador (flecha 6). Chrome lee la configuración combinada al inicio y aplica las políticas durante toda la sesión.

Requisitos previos

Antes de comenzar, verifique que tenga lo siguiente:

Python 3.10 o posterior Una cuenta de AWS con acceso a Amazon Bedrock AgentCore habilitada y credenciales de AWS configuradas. Puede verificar con aws sts get-caller-identity Una región de AWS donde Amazon Bedrock AgentCore está disponible (consulte Regiones de AWS admitidas en la documentación de AgentCore) Acceso a un modelo de IA para impulsar el agente. Esta publicación utiliza Anthropic Claude a través de Amazon Bedrock. AgentCore es independiente del modelo. Se pueden sustituir por otros proveedores de modelos y marcos de agentes. Para obtener detalles sobre la configuración de diferentes modelos con el marco de Strands Agents, consulte Proveedores de modelos en la documentación de Strands Agents.

El cuaderno crea automáticamente los recursos de AWS necesarios, incluido el depósito S3, el rol de ejecución de AWS Identity and Access Management (IAM), el navegador AgentCore y el intérprete de código AgentCore. Este aprovisionamiento automático está destinado a fines de demostración. Las implementaciones de producción deben utilizar recursos preexistentes con políticas de IAM con privilegios mínimos revisadas por su equipo de seguridad. Consulte el archivo README del repositorio de muestra para obtener detalles completos de la política de IAM.

Importante: utilice credenciales temporales de AWS IAM Identity Center o AWS Security Token Service (AWS STS). No utilice claves de acceso de larga duración. Siga el principio de privilegio mínimo al configurar los permisos de IAM.

Configurar el entorno

El código completo de este tutorial está disponible como un cuaderno de Jupyter en el repositorio de muestra. Clonarlo y ejecutar las celdas en secuencia.

Clonar el repositorio

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

Configurar el entorno

python3 -m venv .venv source .venv/bin/activate # En Windows: .venvScriptsactivate pip install -r requisitos.txt

Configurar credenciales

exportar AWS_REGION=us-west-2

Importante: utilice credenciales temporales. No envíe credenciales al control de fuente.

ejecutar el cuaderno

navegador-chrome-policies.ipynb del cuaderno jupyter

Ejecute las celdas secuencialmente. La parte 1 cubre las políticas empresariales de Chrome. La parte 2 cubre los certificados de CA raíz personalizados. Las siguientes secciones explican qué hace cada parte y resaltan el código clave.

Tutorial

El cuaderno está organizado en dos partes. La primera parte crea una política empresarial de Chrome, la aplica a un navegador AgentCore personalizado y utiliza Playwright para verificar que las URL permitidas se carguen mientras que las URL bloqueadas se rechazan. La segunda parte muestra los certificados de CA raíz personalizados con AgentCore Code Interpreter.

Definir la política empresarial de Chrome

Las primeras celdas del cuaderno definen una política empresarial de Chrome que restringe el navegador a la documentación de AWS y deshabilita las funciones que su agente no necesita. La política JSON utiliza la configuración de política empresarial estándar de Chrome.

política = { "URLBlocklist": ["*"], "URLAllowlist": [ "docs.aws.amazon.com", ".aws.amazon.com", ".amazonaws.com", ], "PasswordManagerEnabled": falso, "DownloadRestrictions": 3, "DeveloperToolsAvailability": 0, "BookmarkBarEnabled": falso, "AutofillAddressEnabled": falso, "AutofillCreditCardEnabled": Falso, }

La siguiente tabla describe cada configuración de política.

Política Valor Efecto URLBlocklist [“*”] Bloquea las URL de forma predeterminada URLAllowlist docs.aws.amazon.com, .aws.amazon.com, .amazonaws.com Permite la documentación de AWS y los dominios relacionados. la barra de marcadores AutofillAddressEnabled false Desactiva el autocompletar de direcciones AutofillCreditCardEnabled false Desactiva el autocompletar de tarjetas de crédito

Tenga en cuenta que URLAllowlist utiliza el formato de patrón de filtro de URL de Chrome, que difiere de los patrones globales típicos. Los patrones de dominio como docs.aws.amazon.com coinciden con el dominio exacto. Un punto inicial, como .aws.amazon.com, coincide con los subdominios. Para conocer la sintaxis completa del patrón, consulte la documentación de la política URLAllowlist.

También tenga en cuenta que DeveloperToolsAvailability debe establecerse en 0 (u omitirse) para los navegadores que se utilizarán con Playwright u otra automatización basada en CDP. La automatización del navegador AgentCore utiliza el protocolo Chrome DevTools (CDP). Establecer esta política en 2 deshabilita CDP en el nivel de Chrome, lo que interrumpe silenciosamente la automatización. La conexión WebSocket se realiza correctamente en la capa de proxy, pero Chrome rechaza los comandos CDP, lo que provoca tiempos de espera.

Crear un navegador con políticas administradas

Las siguientes celdas del cuaderno crean un navegador personalizado que aplica la política en cada sesión. La llamada API clave utiliza el parámetro Enterprise_policies con el tipo establecido en ADMINISTRADO. La grabación de sesiones también está habilitada para que puedas reproducir la sesión después.

de bedrock_agentcore.tools importar BrowserClient cliente = BrowserClient(REGION) respuesta = client.create_browser( nombre="docs_research_browser", ejecución_role_arn=EXECUTION_ROLE_ARN, network_configuration={"networkMode": "PUBLIC"}, Enterprise_policies=[ { "ubicación": { "s3": { "bucket": BUCKET_NAME, "prefijo": POLICY_KEY, } }, "tipo": "MANAGED", } ], grabación={ "enabled": True, "s3Location": { "bucket": BUCKET_NAME, "prefix": "policy-demo", }, }, )

Luego, el cuaderno sondea get_browser() hasta que el estado pasa de CREANDO a LISTO.

Consulte el cuaderno de muestra para obtener el código completo.

Demuestre el cumplimiento de las políticas de Chrome con Playwright

El cuaderno inicia una sesión de navegador y utiliza Playwright para navegar a dos URL. La política permite la primera URL, docs.aws.amazon.com, por lo que la página se carga correctamente. La segunda URL, www.wikipedia.org, está bloqueada por la política, por lo que Chrome muestra una página de error.

La prueba usa wait_until=”domcontentloaded” en lugar del evento de carga predeterminado. Las páginas de documentación de AWS tienen una actividad de red continua en segundo plano a partir de scripts de análisis y píxeles de seguimiento, lo que ayuda a evitar que se resuelvan los estados de carga predeterminados y de inactividad de la red de Playwright. De manera similar, la extracción de texto utiliza page.evaluate() para ejecutar JavaScript directamente en el contexto del navegador, lo que evita los tiempos de espera del motor de selección de Playwright en páginas con mutaciones DOM continuas.

Después de ejecutar esta celda, debería ver un resultado como el siguiente:

PRUEBA 1: Vaya a docs.aws.amazon.com (PERMITIDO) Título de la página: Descripción general – Amazon Bedrock AgentCore Vista previa del texto de la página: Amazon Bedrock AgentCore… Resultado: PÁGINA CARGADA CON ÉXITO PRUEBA 2: Vaya a www.wikipedia.org (BLOQUEADO) Título de la página: Resultado: LA POLÍTICA DE CHROME BLOQUEÓ ESTA URL

Este es el valor fundamental de las políticas de Chrome. La restricción ocurre a nivel del navegador, independientemente del razonamiento del agente o de las instrucciones rápidas.

Mientras el celular se ejecuta, puede ver el navegador en vivo en la consola de Amazon Bedrock AgentCore. Navegue hasta Herramientas integradas, seleccione su navegador (docs_research_browser) y elija Ver sesión en vivo para la sesión activa.

Consulte el cuaderno de muestra para obtener el código completo.

Revisar la grabación de la sesión.

Debido a que habilitó la grabación de sesiones al crear el navegador, puede reproducir la sesión para observar la aplicación de la política.

Abra la consola de Amazon Bedrock AgentCore. En el panel de navegación, elija Herramientas integradas. Seleccione la herramienta de su navegador (docs_research_browser). En la sección Sesiones del navegador, busque la sesión completa con estado Terminado y elija Ver grabación.

La interfaz de reproducción de sesión proporciona reproducción de video interactiva con un depurador de línea de tiempo, acciones del usuario con marca de tiempo que incluyen cada evento de navegación y el intento bloqueado, y eventos de red que confirman que solo el tráfico permitido tuvo éxito.

Ejecute un agente de Strands con el navegador restringido (opcional)

El cuaderno incluye una celda opcional que crea un agente de Strands utilizando el navegador restringido por políticas. El agente investiga la documentación de AgentCore dentro del dominio permitido. Cuando intenta navegar a una URL no autorizada, observa que la página está bloqueada y continúa trabajando con las páginas accesibles.

Esta muestra utiliza Anthropic Claude a través de Amazon Bedrock. AgentCore es independiente del modelo. Se pueden sustituir por otros proveedores de modelos. Para la configuración del modelo, consulte Proveedores de modelos en la documentación de Strands Agents.

Consulte el cuaderno de muestra para obtener el código completo.

Demostrar certificados de CA raíz personalizados

Las organizaciones que ejecutan servicios internos con CA privadas o enrutan el tráfico a través de servidores proxy corporativos que interceptan SSL necesitan que sus agentes confíen en esos certificados no públicos. AgentCore Browser y AgentCore Code Interpreter admiten certificados de CA raíz personalizados para este propósito.

Esta sección utiliza https://untrusted-root.badssl.com, un sitio web público que presenta intencionalmente un certificado firmado por una CA raíz que no es de confianza. Las conexiones HTTPS a este sitio fallan con errores de validación de certificados, al igual que las conexiones a sus servicios internos fallarían sin la CA raíz correcta.

El cuaderno realiza tres pasos.

Almacene el certificado de CA raíz en AWS Secrets Manager

El certificado de CA raíz no confiable de BadSSL está disponible públicamente (fuente: badssl.com/certs/ca-untrusted-root.crt). El cuaderno lo guarda en AWS Secrets Manager para que Amazon Bedrock AgentCore pueda importarlo al almacén de confianza de certificados. En un entorno de producción, el certificado de CA interno de la organización o el certificado de CA raíz del proxy que intercepta SSL se colocaría en Secrets Manager de la misma manera.

Mostrar el error sin la CA raíz

El cuaderno crea una sesión predeterminada de intérprete de código AgentCore y ejecuta código Python que llama a urllib.request.urlopen() en el sitio que no es de confianza. La conexión falla con un SSLCertVerificationError. Este es el mismo error que vería al conectarse a servicios corporativos internos que utilizan una CA privada.

Mostrar éxito con la CA raíz

Luego, el cuaderno crea un intérprete de código AgentCore personalizado que confía en el certificado de CA raíz BadSSL mediante el parámetro de certificados. Este es el mismo patrón que ya está disponible en BrowserClient.create_browser().

desde bedrock_agentcore.tools importe CodeInterpreter, Certificado ci_client_with_ca = CodeInterpreter(REGION) respuesta = ci_client_with_ca.create_code_interpreter( name="demo_rootca_interpreter",execution_role_arn=EXECUTION_ROLE_ARN, network_configuration={"networkMode": "PUBLIC"}, certificados = [Certificado.from_secret_arn (secret_arn)],)

Después de ejecutar el mismo código urlopen() en el intérprete personalizado, el resultado muestra Estado: 200. La conexión se realiza correctamente porque ahora se confía en la CA raíz de BadSSL. No se necesitaron cambios de código. La confianza se configuró a nivel de infraestructura.

Consulte el cuaderno de muestra para obtener el código completo.

Aplica esto a tu organización

La demostración de badssl.com refleja dos escenarios del mundo real.

Escenario Lo que almacena en AWS Secrets Manager Configuración Servicios corporativos internos El certificado de CA raíz de su organización (la CA que firma los certificados para su portal de recursos humanos, Jira, Artifactory y servicios similares) Haga referencia al ARN secreto en los certificados al crear un navegador o un intérprete de código AgentCore en servidores proxy corporativos que intercepten SSL El certificado de CA raíz de su proxy (utilizado por Zscaler, Palo Alto Networks o similar) Haga referencia al ARN secreto en los certificados y configure los ajustes del proxy

Los certificados de CA raíz personalizados funcionan tanto con AgentCore Browser como con AgentCore Code Interpreter. En el navegador, el certificado se importa al almacén de confianza de Chrome. En el intérprete, el servicio configura variables de entorno como REQUESTS_CA_BUNDLE y SSL_CERT_FILE para que las bibliotecas de Python confíen en la CA personalizada sin soluciones alternativas a nivel de código.

Puede combinar certificados de CA raíz con políticas de Chrome en un solo navegador. El siguiente ejemplo crea un navegador conectado a VPC que confía en una CA interna y restringe la navegación a una intranet corporativa.

de bedrock_agentcore.tools importe BrowserClient, respuesta del certificado = client.create_browser( name="internal_locked_down_browser", ejecutivo_role_arn=EXECUTION_ROLE_ARN, network_configuration={ "networkMode": "VPC", "vpcConfig": { "securityGroups": ["sg-0123456789abcdef0"], "subredes": ["subred-0123456789abcdef0"], } }, Enterprise_policies=[ { "ubicación": { "s3": { "bucket": "org-policies", "prefijo": "intranet-only-policy.json", } }, "tipo": "GESTIONADO", } ], certificados=[ Certificate.from_secret_arn( "arn:aws:secretsmanager:us-west-2:123456789012:secret:corp-root-ca" ], )

Limpiar recursos

Para evitar incurrir en cargos, elimine los recursos que creó. Ejecute las celdas de limpieza al final del cuaderno, que detiene las sesiones activas del navegador, luego elimine el navegador personalizado, el intérprete de código AgentCore, la función de IAM, el secreto de Secrets Manager y el archivo de política de S3.

Las sesiones de Amazon Bedrock AgentCore Browser generan cargos mientras están activas. Para obtener detalles sobre los precios, consulte Precios de Amazon Bedrock AgentCore.

Conclusión

En esta publicación, configuró las políticas empresariales de Chrome para restringir un agente de navegador a dominios aprobados y deshabilitar funciones de riesgo del navegador. Observó la aplicación de la ley a través de visualización en vivo y grabación de sesiones. También demostró certificados de CA raíz personalizados utilizando un sitio de prueba público, mostrando cómo las sesiones de AgentCore Code Interpreter pueden conectarse a servicios que utilizan CA no públicas.

Con estas capacidades, puede implementar agentes de IA que operen dentro de los límites de seguridad y cumplimiento de su organización. Las políticas de Chrome proporcionan controles a nivel del navegador administrados independientemente del código de la aplicación del agente. La compatibilidad con CA raíz personalizada elimina las barreras de conectividad a la infraestructura interna.

Próximos pasos

Comience creando un navegador con una lista de URL permitidas adaptada a su caso de uso. La lista de políticas de Chrome Enterprise documenta más de 450 configuraciones configurables. Para los agentes de entrada de datos que interactúan con formularios confidenciales, considere desactivar el autocompletar y el administrador de contraseñas. Para los agentes que procesan documentos en un portal específico, restrinja las descargas y limite la navegación al dominio de ese portal.

Si su organización utiliza PKI privada, configure certificados de CA raíz y pruebe la conectividad con sus servicios internos. Para los agentes que operan detrás de servidores proxy que interceptan SSL, combine la configuración de CA raíz con la función de configuración de proxy para enrutar el tráfico a través de su proxy corporativo mientras confía en su certificado.

Para obtener más información sobre las capacidades del navegador Amazon Bedrock AgentCore, consulte la documentación del navegador Amazon Bedrock AgentCore. Si tiene comentarios, abra un problema en el repositorio del SDK de Python de Amazon Bedrock AgentCore.

Importante: este código de muestra está destinado al desarrollo y la demostración. Para implementaciones de producción, siga el principio de privilegio mínimo para los permisos de IAM, restrinja las políticas de depósito de Amazon S3 a los principales autorizados, rote los certificados de AWS Secrets Manager antes de que caduquen y siga el pilar de seguridad del marco de buena arquitectura de AWS.

Chrome es una marca comercial de Google LLC. Todas las demás marcas comerciales son propiedad de sus respectivos dueños.

Sobre los autores

Sundar Raghavan

Sundar Raghavan

Sundar es arquitecto de soluciones sénior en AWS y forma parte del equipo de Agentic AI Foundations. Dirige la experiencia de desarrollador de Amazon Bedrock AgentCore, es propietario del SDK y la CLI, e impulsa la estrategia de integración del marco y el ecosistema. Se centra en cómo los desarrolladores crean, implementan y escalan agentes de IA de producción en AWS. Anteriormente, Sundar trabajó como especialista en IA generativa, ayudando a los clientes a diseñar aplicaciones de IA en Amazon Bedrock y Amazon SageMaker.

Saurav Das

Saurav Das

Saurav es parte del equipo de gestión de productos de Amazon Bedrock AgentCore. Tiene más de 15 años de experiencia trabajando con tecnologías de nube, datos e infraestructura. Tiene un profundo interés en resolver los desafíos de los clientes centrados en la infraestructura de datos e inteligencia artificial.

Ravi Kandury

Ravi Kandury

Ravi es ingeniero de desarrollo de software en AWS en el equipo de Agentic AI Foundations y miembro fundador de Amazon Bedrock AgentCore. Ayudó a crear AgentCore BrowserTool y CodeInterpreter, herramientas integradas para agentes en AWS. Continúa impulsando nuevas capacidades que permiten a los agentes de IA navegar por la web y ejecutar código en entornos seguros. A Ravi le apasiona llevar el pensamiento de sistemas distribuidos al desafío de construir una infraestructura de IA agente a escala. Anteriormente, Ravi contribuyó a otros servicios de IA de AWS, incluidos Amazon Bedrock Agents y Amazon SageMaker Canvas. En su tiempo libre, a Ravi le gusta viajar, ir a conciertos de música electrónica y pasar tiempo con amigos y familiares.

Netal Gupta

Netal Gupta

Netal es ingeniero de desarrollo de software en AWS y forma parte del equipo de Agentic AI Foundations. Actualmente trabaja en Amazon Bedrock AgentCore, construyendo infraestructura que impulsa a los agentes de IA a escala. Anteriormente, Netal contribuyó a Amazon Elastic Container Service (ECS), ayudando a los clientes a ejecutar y administrar contenedores en AWS. Antes de unirse a Amazon, desarrolló una pila de redes de contenedores en Microsoft. Ahora aporta su profunda experiencia en infraestructura y contenedores al espacio en rápida evolución de la IA agente.