View a markdown version of this page

Browser-Proxys verwenden - Amazon Grundgestein AgentCore

Browser-Proxys verwenden

Amazon Bedrock AgentCore Browser unterstützt die Weiterleitung von Browser-Traffic über Ihre eigenen externen Proxyserver. Auf diese Weise können Unternehmen:

  • Erzielen Sie IP-Stabilität, indem Sie den Datenverkehr über Proxys mit bekannten Ausgangs-IPs weiterleiten und so Neuauthentifizierungszyklen vermeiden, die durch wechselnde IP-Adressen verursacht werden AWS

  • Support Sie IP-Allowlisting, indem Sie stabile, kontrollierbare Ausgangsadressen für Dienste bereitstellen, die Zugriffskontrollen erfordern IP-based

  • Integrieren Sie das System in die Unternehmensinfrastruktur, indem Sie den Zugriff auf interne Webseiten und Ressourcen über Ihre vorhandenen Proxyserver weiterleiten

-Übersicht

Wenn Sie eine Browsersitzung mit Proxykonfiguration erstellen, konfiguriert AgentCore Browser den Browser so, dass HTTP- und HTTPS-Verkehr über Ihre angegebenen Proxyserver weitergeleitet wird.

Der Anforderungsfluss von Browser-Proxys zeigt, wie der Datenverkehr von der Browsersitzung über einen vom Kunden verwalteten Proxyserver zu Zielwebsites geleitet wird.

Anforderungsablauf:

  1. Sie rufen StartBrowserSession mit einem an, proxyConfiguration der Ihren Proxy-Server angibt.

  2. AgentCore Ruft bei Verwendung der Authentifizierung die Proxy-Anmeldeinformationen von AWS Secrets Manager ab.

  3. Die Browsersitzung beginnt mit Ihrer angewendeten Proxykonfiguration.

  4. Der Browser-Verkehr wird auf der Grundlage Ihrer Domain-Routing-Regeln über Ihren Proxyserver geleitet.

  5. Ihr Proxyserver leitet Anfragen an Ziel-Websites weiter.

Der Proxyserver ist eine Infrastruktur, die Sie besitzen und verwalten. AgentCore Der Browser stellt als Client eine Verbindung zu ihm her.

Die Proxykonfiguration wendet das --proxy-server Chromium-Flag beim Start auf die Browserinstanz an und leitet den Datenverkehr über den angegebenen Proxy auf Browserebene weiter. Für Szenarien, die eine Durchsetzung auf Netzwerkebene erfordern, z. B. wenn Einstellungen auf Browserebene während der Laufzeit geändert werden könnten, stellen Sie Browsersitzungen in Ihrer eigenen VPC bereit. Siehe Amazon Bedrock AgentCore Runtime und Tools für VPC konfigurieren.

Voraussetzungen

Stellen Sie vor der Konfiguration von Browser-Proxys sicher, dass Sie über Folgendes verfügen:

  • Allgemeine Browservoraussetzungen — Vervollständigen Sie die Standardkonfiguration des Browser-Tools. Siehe Erste Schritte mit dem AgentCore Browser.

  • Proxyserver — Ein HTTP/HTTPS Proxyserver, der über das öffentliche Internet zugänglich ist (oder innerhalb Ihrer VPC erreichbar ist, wenn Sie die VPC-Konfiguration verwenden) und der die HTTP CONNECT-Methode für HTTPS-Traffic-Tunneling unterstützt.

  • AWS Secrets Manager Manager-Geheimnis (wenn Authentifizierung verwendet wird) — Ein Geheimnis, das Proxy-Anmeldeinformationen im JSON-Format mit username und password -Schlüsseln enthält.

  • IAM-Berechtigungen (wenn Authentifizierung verwendet wird) — Der IAM-Identitätsaufruf StartBrowserSession muss über eine secretsmanager:GetSecretValue Genehmigung für das Credential Secret verfügen.

Erste Schritte

In diesem Abschnitt wird die einfachste Konfiguration zur Weiterleitung von Browserdatenverkehr über einen Proxy beschrieben.

Schritt 1: Erstellen Sie ein geheimes Passwort (wenn Sie Authentifizierung verwenden)

Wenn Ihr Proxy eine Authentifizierung erfordert, erstellen Sie ein Geheimnis in AWS Secrets Manager:

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

Anforderungen an das Format der Anmeldeinformationen:

Feld Zulässige Zeichen

username

Alphanumerisch plus @ . _ + = -

password

Alphanumerisch plus @. _ + = -! # $% *

Unzulässige Zeichen: Doppelpunkt (:), Zeilenumbrüche, Leerzeichen, Anführungszeichen.

Schritt 2: IAM-Berechtigungen hinzufügen

Fügen Sie diese Richtlinie der IAM-Identität hinzu, die Browsersitzungen erstellt:

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

Schritt 3: Erstellen Sie eine Browsersitzung mit Proxy

Sie können eine Browsersitzung mit Proxykonfiguration mithilfe der AWS CLI, des SDK oder der API erstellen.

Beispiel
AWS CLI
  1. So starten Sie eine Browsersitzung mit einem Proxy mithilfe der 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" } } } }] }'

    Bei Proxys, die IP-Allowlisting anstelle von Anmeldeinformationen verwenden, lassen Sie das Feld weg: 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. So starten Sie eine Browsersitzung mit einem Proxy mithilfe des 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']}")

    Lassen Sie bei Proxys, die IP-Allowlisting anstelle von Anmeldeinformationen verwenden, das Feld weg: credentials

    proxyConfiguration={ "proxies": [{ "externalProxy": { "server": "your-proxy-hostname", "port": 8080 } }] }
API
  1. So starten Sie mithilfe der API eine Browsersitzung mit einem Proxy:

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

Konfigurationsoptionen

Domain-based Routing

Wird verwendetdomainPatterns, um bestimmte Domänen über festgelegte Proxys weiterzuleiten:

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

Mit dieser Konfiguration:

  • Anfragen an *.company.com und *.internal.corp werden weitergeleitet über corp-proxy.example.com

  • Alle anderen Anfragen werden über (Standard) weitergeleitet general-proxy.example.com

Format des Domänenmusters:

Muster Entspricht Stimmt nicht überein

.example.com

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

notexample.com

example.com

example.com(nur exakte Übereinstimmung)

www.example.com

Verwenden Sie .example.com (führender Punkt) für Subdomains. Verwenden Sie nicht*.example.com.

Domänen umgehen

Verwenden Sie bypass.domainPatterns für Domains, die eine direkte Verbindung ohne Proxy herstellen sollen:

Beispiel
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"] } } }
Anmerkung

Die Proxykonfiguration ist eine Routing-Einstellung auf Browserebene und bietet keine Datenverkehrskontrolle auf Netzwerkebene. Stellen Sie für die Durchsetzung auf Netzwerkebene Browsersitzungen in Ihrer VPC bereit. Siehe Amazon Bedrock AgentCore Runtime und Tools für VPC konfigurieren.

Rangfolge beim Routing

Verkehrswege gemäß dieser Rangfolge (vom höchsten zum niedrigsten):

  1. Domänen umgehen — Übereinstimmende Domänen bypass.domainPatterns stellen eine direkte Verbindung her.

  2. Proxydomänenmuster — Domänen, die der domainPatterns Route eines Proxys durch diesen Proxy entsprechen (die erste Übereinstimmung gewinnt basierend auf der Array-Reihenfolge).

  3. Standard-Proxy — Domains, denen keine Treffer entsprechen, werden ohne domainPatterns den Proxy weitergeleitet.

Vollständige Beispiele

Die folgenden Beispiele zeigen eine vollständige Proxykonfiguration mit Domänenmustern, Bypass-Domänen und Authentifizierungsdaten.

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

Anwendungsfälle

IP-Stabilität für sitzungsbasierte Portale

Gesundheits- und Finanzportale validieren Sitzungen häufig anhand der Quell-IP-Adresse. Rotierende AWS IP-Adressen führen zu häufigen Neuauthentifizierungen. Leiten Sie den Datenverkehr über einen Proxy mit stabilen Ausgangs-IPs weiter, um die Sitzungskontinuität aufrechtzuerhalten.

Integration der Unternehmensinfrastruktur

Organizations, die den Datenverkehr über Unternehmens-Proxys weiterleiten, können diese Vorgehensweise auf AgentCore Browsersitzungen ausweiten und so den Zugriff auf interne Webseiten und Ressourcen ermöglichen, für die eine proxybasierte Konnektivität erforderlich ist.

Geografischer Zugriff auf Inhalte

Greifen Sie auf regionsspezifische Inhalte zu oder testen Sie regionale Website-Variationen, indem Sie den Datenverkehr über Proxys an bestimmten geografischen Standorten weiterleiten.

Zugriff auf das Partnernetzwerk

Leiten Sie partnerspezifischen Datenverkehr über eine dedizierte Proxy-Infrastruktur weiter und verwenden Sie allgemeine Proxys für anderen Datenverkehr.

Verhalten der Sitzung

Lebenszyklus der Konfiguration

  • Bei der Erstellung festgelegt — Die Proxykonfiguration wird einmal bei der Erstellung der Sitzung festgelegt. Konfigurationsänderungen zur Laufzeit werden nicht unterstützt. Erstellen Sie eine neue Sitzung, um andere Einstellungen zu verwenden.

  • Session-scoped— Jede Browsersitzung hat eine unabhängige Proxykonfiguration.

  • Timeout — Es gelten die Standard-Sitzungs-Timeouts. Die Proxykonfiguration wird verworfen, wenn die Sitzung endet.

Verhalten der Konnektivität

  • Fail-open— Die Proxykonnektivität wird bei der Sitzungserstellung nicht validiert. In Sitzungen, die mit nicht verfügbaren Proxys konfiguriert sind, werden beim Laden von Seiten Fehler angezeigt.

  • Laufzeitfehler — Verbindungsfehler werden als Browser-Fehlerseiten angezeigt, die zur Fehlerbehebung in der Live-Ansicht sichtbar sind.

  • Keine automatische Wiederholung — Fehlgeschlagene Anfragen werden nicht automatisch wiederholt.

Cross-account geheimer Zugriff

Wenn sich die geheimen Anmeldeinformationen in einem anderen AWS Konto befinden, konfigurieren Sie Folgendes:

Geheime Ressourcenrichtlinie (in dem Konto, dem das Geheimnis gehört):

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

KMS-Schlüsselrichtlinie (wenn Sie einen vom Kunden verwalteten KMS-Schlüssel verwenden):

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

Sicherheitsüberlegungen

Schutz von Anmeldeinformationen

  • Anmeldeinformationen werden in AWS Secrets Manager gespeichert und mit Ihren IAM-Anmeldeinformationen abgerufen.

  • Anmeldeinformationen werden in API-Antworten niemals zurückgegeben. GetBrowserSessiongibt nur zurücksecretArn.

  • Anmeldeinformationen werden nicht in Protokolle geschrieben.

Zugriffskontrolle

  • IAM-Berechtigungen steuern, welche Identitäten welche geheimen Anmeldeinformationen verwenden können.

  • Cross-account Für den Zugriff sind explizite Ressourcenrichtlinien erforderlich.

Leistungsaspekte

  • Kapazität — Stellen Sie sicher, dass Ihr Proxy das erwartete Anforderungsvolumen bewältigen kann.

  • Bypass — Fügen Sie AWS Endpunkte bypass.domainPatterns für latenzempfindliche Anrufe hinzu.

  • Nähe — Verwenden Sie Proxys, die sich geografisch in Ihrer Region befinden. AWS

Beschränkungen

Einschränkung Limit Einstellbar

Maximale Anzahl von Proxys pro Sitzung

5

Ja

Maximale Domain-Muster pro Proxy

100

Ja

Maximale Bypass-Domain-Muster

100

Ja

Länge des Server-Hostnamens

253 Zeichen

Nein

Länge des Domainmusters

253 Zeichen

Nein

Port-Bereich

1—65535

Nein

Wenn Sie eine Erhöhung für einstellbare Einschränkungen beantragen möchten, wenden Sie sich an den Support. AWS

Einschränkungen

Bevor Sie Browser-Proxys konfigurieren, überprüfen Sie diese Einschränkungen, um sicherzustellen, dass die Funktion Ihren Anforderungen entspricht:

Einschränkung Details

Routing des Datenverkehrs

Die Proxykonfiguration ist eine Einstellung auf Browserebene, die beim Sitzungsstart angewendet wird. Es handelt sich nicht um eine Steuerung auf Netzwerkebene und garantiert nicht, dass der gesamte Datenverkehr über den Proxy übertragen wird. Für die Durchsetzung auf Netzwerkebene verwenden Sie Configure Amazon Bedrock AgentCore Runtime und Tools für VPC.

Unterstützte Protokolle

Nur HTTP- und HTTPS-Proxys. SOCKS4- und SOCKS5-Proxys werden nicht unterstützt.

Authentifizierung

HTTP-Basic-Authentifizierung oder keine Authentifizierung (IP-Allowlisting). NTLM, Kerberos und zertifikatsbasierte Authentifizierung werden nicht unterstützt.

Änderungen am Proxy

Die Proxykonfiguration wird einmal bei der Sitzungserstellung festgelegt. Konfigurationsänderungen zur Laufzeit werden nicht unterstützt. Erstellen Sie eine neue Sitzung, um die Proxyeinstellungen zu ändern.

Proxyrotation

Die automatische Proxyrotation für IP-Zyklus oder Lastverteilung wird nicht unterstützt. Erstellen Sie neue Sitzungen, um Proxys zu rotieren.

Überprüfung der Verbindung

Die Proxykonnektivität wird bei der Sitzungserstellung nicht validiert. Verbindungsfehler treten zur Laufzeit auf.