View a markdown version of this page

Utilizzo dei proxy del browser - Amazon Bedrock AgentCore

Utilizzo dei proxy del browser

Amazon Bedrock AgentCore Browser supporta il routing del traffico del browser attraverso i tuoi server proxy esterni. Ciò consente alle organizzazioni di:

  • Raggiungere la stabilità dell'IP instradando il traffico attraverso proxy con IP di uscita noti, eliminando i cicli di riautenticazione causati dalla rotazione degli indirizzi IP AWS

  • Supporta l'elenco degli indirizzi IP consentiti fornendo indirizzi di uscita stabili e controllabili per i servizi che richiedono controlli di accesso IP-based

  • Esegui l'integrazione con l'infrastruttura aziendale eseguendo il routing attraverso i server proxy esistenti per accedere a pagine Web e risorse interne

Panoramica di

Quando si crea una sessione del browser con configurazione proxy, AgentCore Browser configura il browser per instradare il traffico HTTP e HTTPS attraverso i server proxy specificati.

I proxy del browser richiedono un flusso che mostra il routing del traffico dalla sessione del browser attraverso un server proxy gestito dal cliente verso i siti Web di destinazione.

Flusso di richiesta:

  1. Si chiama StartBrowserSession proxyConfiguration specificando il server proxy.

  2. Se si utilizza l'autenticazione, AgentCore recupera le credenziali proxy da AWS Secrets Manager.

  3. La sessione del browser inizia con l'applicazione della configurazione del proxy.

  4. Il traffico del browser viene indirizzato attraverso il server proxy in base alle regole di routing del dominio.

  5. Il server proxy inoltra le richieste ai siti Web di destinazione.

Il server proxy è l'infrastruttura che possiedi e gestisci. AgentCore Il browser si connette ad esso come client.

La configurazione del proxy applica il --proxy-server flag Chromium all'istanza del browser all'avvio, indirizzando il traffico attraverso il proxy specificato a livello di browser. Per gli scenari che richiedono l'applicazione a livello di rete, ad esempio quando le impostazioni a livello di browser possono essere modificate durante l'esecuzione, distribuisci le sessioni del browser all'interno del tuo VPC. Consulta Configurare Amazon Bedrock AgentCore Runtime e strumenti per VPC.

Prerequisiti

Prima di configurare i proxy del browser, assicurati di avere:

  • Prerequisiti generali del browser: completa la configurazione standard dello strumento del browser. Vedi Guida introduttiva al AgentCore browser.

  • Server proxy: un server HTTP/HTTPS proxy accessibile dalla rete Internet pubblica (o raggiungibile all'interno del VPC se si utilizza la configurazione VPC) e supporta il metodo HTTP CONNECT per il tunneling del traffico HTTPS.

  • AWS Segreto di Secrets Manager (se si utilizza l'autenticazione): un segreto contenente credenziali proxy in formato JSON con chiavi username andpassword.

  • Autorizzazioni IAM (se si utilizza l'autenticazione): la chiamata di identità IAM StartBrowserSession deve disporre dell'secretsmanager:GetSecretValueautorizzazione per la credenziale segreta.

Nozioni di base

Questa sezione mostra la configurazione più semplice per indirizzare il traffico del browser attraverso un proxy.

Passaggio 1: Creare una credenziale segreta (se si utilizza l'autenticazione)

Se il tuo proxy richiede l'autenticazione, crea un segreto in AWS Secrets Manager:

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

Requisiti relativi al formato delle credenziali:

Campo Caratteri consentiti

username

Alfanumerico plus @ . _ + = -

password

Alfanumerico più @. _ + = -! # $% *

Caratteri non consentiti: due punti (:), nuove righe, spazi, virgolette.

Fase 2: Aggiungere le autorizzazioni IAM

Aggiungi questa policy all'identità IAM che creerà le sessioni del browser:

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

Passaggio 3: creare una sessione del browser con proxy

È possibile creare una sessione del browser con configurazione proxy utilizzando la AWS CLI, l'SDK o l'API.

Esempio
AWS CLI
  1. Per avviare una sessione del browser con un proxy utilizzando 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" } } } }] }'

    Per i proxy che utilizzano l'elenco degli indirizzi IP anziché le credenziali, omettete il 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. Per avviare una sessione del browser con un proxy utilizzando l' AWS SDK for 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']}")

    Per i proxy che utilizzano l'elenco degli indirizzi IP anziché le credenziali, ometti il campo: credentials

    proxyConfiguration={ "proxies": [{ "externalProxy": { "server": "your-proxy-hostname", "port": 8080 } }] }
API
  1. Per avviare una sessione del browser con un proxy utilizzando l'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" } } } }] } }

Opzioni di configurazione

Domain-based routing

Utilizzato domainPatterns per indirizzare domini specifici tramite proxy designati:

Esempio
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 questa configurazione:

  • Le richieste indirizzate a *.company.com e *.internal.corp vengono inoltrate corp-proxy.example.com

  • Tutte le altre richieste vengono inoltrate (impostazione general-proxy.example.com predefinita)

Formato del modello di dominio:

Pattern Corrispondenze Non corrisponde

.example.com

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

notexample.com

example.com

example.com(solo corrispondenza esatta)

www.example.com

Usa .example.com (punto iniziale) per i sottodomini. Non utilizzare *.example.com.

Ignora i domini

Utilizzalo bypass.domainPatterns per i domini che devono connettersi direttamente senza alcun proxy:

Esempio
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 configurazione del proxy è un'impostazione di routing a livello di browser e non fornisce il controllo del traffico a livello di rete. Per l'applicazione a livello di rete, distribuisci le sessioni del browser nel tuo VPC. Consulta Configurare Amazon Bedrock AgentCore Runtime e strumenti per VPC.

Precedenza di routing

Percorsi di traffico in base a questa precedenza (dalla più alta alla più bassa):

  1. Ignora i domini: i domini corrispondenti si connettono direttamente. bypass.domainPatterns

  2. Modelli di domini proxy: domini che corrispondono al domainPatterns percorso di un proxy attraverso quel proxy (la prima corrispondenza vince in base all'ordine degli array).

  3. Proxy predefinito: i domini non corrispondenti vengono instradati attraverso il proxy senza. domainPatterns

Esempi completi

Gli esempi seguenti mostrano una configurazione proxy completa con modelli di dominio, domini di bypass e credenziali di autenticazione.

Esempio
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"] } } }

Casi d’uso

Stabilità IP per portali basati su sessioni

I portali sanitari e finanziari spesso convalidano le sessioni in base all'indirizzo IP di origine. La rotazione degli indirizzi AWS IP causa una frequente riautenticazione. Indirizza il traffico attraverso un proxy con IP di uscita stabili per mantenere la continuità della sessione.

Integrazione dell'infrastruttura aziendale

Le organizzazioni che indirizzano il traffico attraverso proxy aziendali possono estendere questa pratica alle sessioni AgentCore del browser, consentendo l'accesso a pagine Web e risorse interne che richiedono connettività basata su proxy.

Accesso ai contenuti geografici

Accedi a contenuti specifici per regione o prova le varianti regionali del sito web indirizzando il traffico attraverso proxy in aree geografiche specifiche.

Accesso alla rete dei partner

Indirizza il traffico specifico del partner attraverso un'infrastruttura proxy dedicata utilizzando proxy generici per altro traffico.

Comportamento della sessione

Ciclo di vita della configurazione

  • Imposta alla creazione: la configurazione del proxy viene impostata una sola volta al momento della creazione della sessione. Le modifiche alla configurazione in fase di esecuzione non sono supportate. Crea una nuova sessione per utilizzare impostazioni diverse.

  • Session-scoped— Ogni sessione del browser ha una configurazione proxy indipendente.

  • Timeout: si applicano i timeout di sessione standard. La configurazione del proxy viene eliminata al termine della sessione.

Comportamento della connessione

  • Fail-open— La connettività proxy non viene convalidata al momento della creazione della sessione. Le sessioni configurate con proxy non disponibili mostreranno errori durante il caricamento delle pagine.

  • Errori di runtime: gli errori di connessione vengono visualizzati come pagine di errore del browser, visibili in Live View per la risoluzione dei problemi.

  • Nessun tentativo automatico: le richieste non riuscite non vengono ritentate automaticamente.

Cross-account accesso segreto

Se le credenziali segrete si trovano in un AWS account diverso, configura quanto segue:

Politica segreta in materia di risorse (nell'account proprietario del segreto):

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

Politica delle chiavi KMS (se si utilizza una chiave KMS gestita dal cliente):

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

Considerazioni relative alla sicurezza

Protezione delle credenziali

  • Le credenziali vengono archiviate in AWS Secrets Manager e recuperate utilizzando le credenziali IAM.

  • Le credenziali non vengono mai restituite nelle risposte API. GetBrowserSessionrestituisce solosecretArn.

  • Le credenziali non vengono scritte nei registri.

Controllo accessi

  • Le autorizzazioni IAM controllano quali identità possono utilizzare quali credenziali segrete.

  • Cross-account l'accesso richiede politiche esplicite in materia di risorse.

Considerazioni sulle prestazioni

  • Capacità: assicurati che il proxy sia in grado di gestire il volume di richieste previsto.

  • Bypass: aggiungi AWS endpoint alle chiamate sensibili bypass.domainPatterns alla latenza.

  • Prossimità: utilizza proxy geograficamente vicini alla tua regione. AWS

Vincoli

Vincolo Limite Regolabile

Numero massimo di proxy per sessione

5

Numero massimo di modelli di dominio per proxy

100

Numero massimo di modelli di bypass del dominio

100

Lunghezza del nome host del server

253 caratteri

No

Lunghezza del modello di dominio

253 caratteri

No

Intervallo porte

1—65535

No

Per richiedere un aumento dei vincoli regolabili, contatta l'assistenza. AWS

Limitazioni

Prima di configurare i proxy del browser, esamina queste limitazioni per assicurarti che la funzionalità soddisfi i tuoi requisiti:

Limitazione Informazioni

Routing del traffico

La configurazione del proxy è un'impostazione a livello di browser applicata all'avvio della sessione. Non è un controllo a livello di rete e non garantisce che tutto il traffico transiti verso il proxy. Per l'applicazione a livello di rete, usa Configure Amazon Bedrock AgentCore Runtime e gli strumenti per VPC.

Protocolli supportati

Solo proxy HTTP e HTTPS. I proxy SOCKS4 e SOCKS5 non sono supportati.

Autenticazione

Autenticazione HTTP Basic o nessuna autenticazione (elenco di indirizzi IP consentiti). NTLM, Kerberos e l'autenticazione basata su certificati non sono supportati.

Modifiche al proxy

La configurazione del proxy viene impostata una sola volta al momento della creazione della sessione. Le modifiche alla configurazione in fase di esecuzione non sono supportate. Crea una nuova sessione per modificare le impostazioni del proxy.

Rotazione del proxy

La rotazione automatica del proxy per il ciclo IP o la distribuzione del carico non è supportata. Crea nuove sessioni per ruotare i proxy.

Convalida della connessione

La connettività proxy non viene convalidata al momento della creazione della sessione. Gli errori di connessione vengono visualizzati in fase di esecuzione.