Amazon Bedrock AgentCore Gateway VPC-Egress für Gateway-Ziele konfigurieren
Der AgentCore Gateway-Service bietet sicheres und kontrolliertes Ausgangsdatenverkehrsmanagement für Ihre Anwendungen und ermöglicht so eine nahtlose Kommunikation mit Ressourcen innerhalb Ihrer Virtual Private Cloud (VPC). In diesem Dokument wird beschrieben, wie ausgehender Datenverkehr durch das AgentCore Gateway fließt, um VPC-Ressourcen zu erreichen. Sie erfahren mehr über die unterstützten Gateway-Zieltypen (Lambda-, API Gateway- und MCP-Server über AgentCore Runtime), ihre Konfigurationsanforderungen und die für jeden Zieltyp unterstützten Authentifizierungsmethoden. In diesem Leitfaden werden die Sicherheitsaspekte, Routing-Mechanismen und bewährten Methoden behandelt, die erforderlich sind, um einen ordnungsgemäßen Fluss des ausgehenden Datenverkehrs zu gewährleisten und gleichzeitig die Netzwerkisolierung aufrechtzuerhalten und in Ihrer gesamten Architektur dem Prinzip der geringsten Rechte zu folgen.
MCP
AgentCore Gateway unterstützt Model Context Protocol (MCP) -Server als Zielendpunkte und bietet so flexible Bereitstellungsoptionen, um verschiedenen Kundenanforderungen gerecht zu werden. MCP-Server können je nach Ihren Infrastrukturanforderungen und Sicherheitsanforderungen auf verschiedene Arten konfiguriert werden.
Es gibt zwei Arten von MCP-Zielen: Sie können nicht auf oder auf AgentCore AgentCore Runtime oder Gateway gehostet werden. Beide werden im Folgenden erörtert.
MCPs, die nicht gehostet werden auf AgentCore
AgentCore Gateway unterstützt die Verbindung zu selbst gehosteten MCP-Servern, die in Ihrer VPC laufen, mithilfe von privaten Endpunkten, die von Amazon VPC Lattice betrieben werden. Sie können ein Target privateEndpoint auf Ihrem Gateway so konfigurieren, dass der Datenverkehr privat an Ihren MCP-Server weitergeleitet wird, ohne ihn dem öffentlichen Internet zugänglich zu machen.
Im folgenden Beispiel wird mithilfe von Managed Lattice ein privates MCP-Serverziel erstellt:
{ "name": "my-private-mcp-target", "privateEndpoint": { "managedVpcResource": { "vpcIdentifier": "vpc-0abc123def456", "subnetIds": ["subnet-0abc123", "subnet-0def456"], "endpointIpAddressType": "IPV4", "securityGroupIds": ["sg-0abc123def"] } }, "targetConfiguration": { "mcp": { "mcpServer": { "endpoint": "https://my-mcp-server.internal.example.com/mcp" } } } }
Wenn Sie den Datenverkehr über eine Zwischenkomponente wie einen VPC-Endpunkt oder einen internen Load Balancer weiterleiten möchten, können Sie a angeben. routingDomain Weitere Informationen finden Sie unter Weiterleiten von Datenverkehr über eine Zwischendomäne.
Wenn Ihr MCP-Server ein TLS-Zertifikat verwendet, das von einer privaten Zertifizierungsstelle ausgestellt wurde, können Sie einen internen Application Load Balancer mit einem öffentlichen ACM-Zertifikat davor platzieren. Weitere Informationen finden Sie unter Problemumgehung für private Zertifikate: ALB.
Informationen zu selbstverwaltetem Lattice, kontoübergreifenden Setups und erweiterten Konfigurationen finden Sie unter Connect zu privaten Ressourcen in Ihrer VPC mithilfe von VPC Lattice.
AgentCore Runtime oder Gateway
AgentCore Runtime bietet native Unterstützung für die Kommunikation mit Ressourcen innerhalb Ihrer VPC über einen verwalteten Infrastrukturansatz. Die gesamte Kommunikation zwischen AgentCore Gateway und AgentCore Runtime bleibt auf dem AWS Backbone, sodass sichergestellt ist, dass Ihre Daten niemals das öffentliche Internet durchqueren (außer bei regionsübergreifenden Anrufen zu Rechenzentren in China). Weitere Informationen finden Sie im Abschnitt Konnektivität
Für die ausgehende Autorisierung von AgentCore Gateway zu AgentCore Runtime werden zwei Authentifizierungsmethoden unterstützt: keine Autorisierung (nicht für Produktionszwecke empfohlen) und OAuth mit Gewährung von Kundenanmeldedaten (für Maschine-zu-Maschine-Authentifizierung). Wenn keine Autorisierung konfiguriert ist, enthält die Anfrage von AgentCore Gateway an Runtime keine Authentifizierungstoken AgentCore . Diese Architektur bietet einen nahtlosen Verbindungsweg bei gleichzeitiger Wahrung der Sicherheitsisolierung. Als bewährte Sicherheitsmethode sollten Sie restriktive Authentifizierungs- und Autorisierungsberechtigungen sowohl für AgentCore Runtime als auch für AgentCore Gateway konfigurieren, sodass der Zugriff nur auf die Ressourcen und Vorgänge beschränkt wird, die für Ihren speziellen Anwendungsfall erforderlich sind. Verwenden Sie die folgenden Dokumente, um eine OAuth-Identität zu konfigurieren, die von AgentCore Gateway für Egress und Ingress für AgentCore Runtime verwendet wird:
Beispiel CreateGatewayTarget mit AgentCore Runtime als Ziel
Das folgende Beispiel zeigt, wie ein Gateway-Ziel mit AgentCore Runtime erstellt wird:
POST /gateways/gatewayIdentifier/targets/ HTTP/1.1 Content-type: application/json { "clientToken": "string", "credentialProviderConfigurations": [ { "credentialProvider": { "oauthCredentialProvider": { "providerArn": "string", "scopes": [ "string" ], ... } }, "credentialProviderType": "OAUTH" } ], "description": "string", "metadataConfiguration": { "allowedQueryParameters": [ "string" ], "allowedRequestHeaders": [ "string" ], "allowedResponseHeaders": [ "string" ] }, "name": "string", "targetConfiguration": { "mcp": { "mcpServer": { "endpoint": "https://bedrock-agentcore.<region>.amazonaws.com/runtimes/<runtime-id>/invocations?qualifier=DEFAULT&accountId=<account-id>" } } } }
Anmerkung
Vermeiden Sie die Verwendung einer VPC-Endpunkt-URL (VPCE) mitprivateEndpoint, um einen unnötigen zusätzlichen Netzwerk-Hop zu verhindern. Verwenden Sie stattdessen den direkten AgentCore Runtime-Endpunkt, mit dem der Datenverkehr auf dem AWS Backbone verbleibt.
API-Ziel öffnen
API-Gateway-Endpunkt über Open API Target
Wenn Ihr API Gateway nicht direkt als Ziel hinzugefügt werden kann, können Sie die Ressource jederzeit als OpenAPI-Spezifikation exportieren und die Spezifikation als OpenAPI-Ziel in AgentCore Gateway importieren.
Wenn Sie private REST-APIs in API Gateway haben, folgen Sie den Anweisungen hier: Private REST-APIs in API Gateway.
Andere Endpunkte
Mithilfe der Konfiguration können Sie Open-API-Ziele so konfigurieren, dass sie private Endpunkte in Ihrer VPC erreichen. privateEndpoint AgentCore Gateway verwendet Amazon VPC Lattice, um private Konnektivität zu Ihrem Endpunkt herzustellen, ohne ihn dem öffentlichen Internet auszusetzen.
Das folgende Beispiel erstellt ein privates OpenAPI-Ziel mit Managed Lattice:
{ "name": "my-private-openapi-target", "privateEndpoint": { "managedVpcResource": { "vpcIdentifier": "vpc-0abc123def456", "subnetIds": ["subnet-0abc123", "subnet-0def456"], "endpointIpAddressType": "IPV4", "securityGroupIds": ["sg-0abc123def"] } }, "targetConfiguration": { "mcp": { "openApiSchema": { "inlinePayload": "<your OpenAPI spec JSON with server URL pointing to your private endpoint>" } } } }
Wenn Sie den Datenverkehr über eine Zwischenkomponente wie einen VPC-Endpunkt oder einen internen Load Balancer weiterleiten möchten, können Sie a angeben. routingDomain Weitere Informationen finden Sie unter Weiterleiten von Datenverkehr über eine Zwischendomäne.
Wenn Ihr Endpunkt ein TLS-Zertifikat verwendet, das von einer privaten Zertifizierungsstelle ausgestellt wurde, können Sie einen internen Application Load Balancer mit einem öffentlichen ACM-Zertifikat davor platzieren. Weitere Informationen finden Sie unter Problemumgehung für private Zertifikate: ALB.
Informationen zu selbstverwaltetem Lattice, kontoübergreifenden Setups und erweiterten Konfigurationen finden Sie unter Connect zu privaten Ressourcen in Ihrer VPC mithilfe von VPC Lattice.
Anmerkung
Die privateEndpoint Konfiguration gilt für eine einzelne Domain in Ihrem OpenAPI-Schema. Wenn Ihr Schema auf mehrere Serverendpunkte mit unterschiedlichen Domänen verweist, öffnen Sie einen AWS Support-FallprivateEndpointOverrides
Ziel von Smithy
Die Konfiguration eines privaten Endpunkts (privateEndpoint) wird derzeit für Smithy-Ziele nicht unterstützt. Wenn Ihr Smithy-Ziel private Konnektivität benötigt, öffnen Sie eine AWS Support-Anfrage, um
API Gateway
AgentCore Gateway unterstützt API Gateway als Zieltyp, der als Zwischenschicht für den Zugriff auf VPC-Ressourcen dienen kann. AgentCore Gateway unterstützt speziell REST-API-Gateways, die nur mit regionalen Endpunkten konfiguriert sind. Eine direkte VPC-Kommunikation vom Gateway ist derzeit zwar nicht verfügbar (diese Funktion ist für eine future Version geplant), aber das Gateway kommuniziert mit dem API Gateway über den AWS Backbone und stellt so sicher, dass der Verkehr niemals das öffentliche Internet durchquert (außer bei regionsübergreifenden Anrufen an Rechenzentren in China). Das API Gateway kann dann über VPC Link mit Ressourcen kommunizieren, wodurch ein sicherer Weg geschaffen wird, über den das AgentCore Gateway interne Dienste erreichen und gleichzeitig die Netzwerkisolierung aufrechterhalten kann.
Um bewährte Sicherheitsmethoden zu implementieren, konfigurieren Sie Ihr API Gateway so, dass eingehender Datenverkehr ausschließlich auf den AgentCore Gateway-Dienstprinzipal oder den konfigurierten API-Schlüssel beschränkt wird, um unbefugten Zugriff aus anderen Quellen zu verhindern. Für die ausgehende Autorisierung von AgentCore Gateway zu API Gateway werden nur zwei Authentifizierungsmethoden unterstützt: IAM-based Authentifizierung (mithilfe der Gateway-Servicerolle zur Authentifizierung mit AWS Signature Version 4) und API-Schlüsselauthentifizierung (von AgentCore Gateway verwaltet); OAuth-based Autorisierung und kontoübergreifende API-Gateways werden für API-Gateway-Ziele nicht unterstützt. Bitte verwenden Sie dafür den API-Gateway-Endpunkt über Open API Target. Beschränken Sie die Berechtigungen für die AgentCore Gateway-Ausführungsrolle so, dass nur der spezifische erforderliche API-Gateway-Endpunkt aufgerufen wird, anstatt einen breiten API-Gateway-Zugriff zu gewähren. Stellen Sie sicher, dass das Gateway nicht mit unbeabsichtigten API-Ressourcen interagieren kann, und wahren Sie das Prinzip der geringsten Rechte in Ihrer gesamten Architektur.
Amazon API Gateway REST-API-Stufen als Ziele
Berechtigungen für die API Gateway Gateway-Integration mit IAM Auth
Die API-Gateway-Ressourcenrichtlinie ist für das AgentCore Gateway gesperrt
Die folgende Ressourcenrichtlinie schränkt den API-Gateway-Zugriff auf AgentCore Gateway ein:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:us-west-2:111122223333:rest-api-id/api-stage/*/*" ], "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:gateway/my-gateway-d4jrgkaske" } } } ] }
AgentCore Richtlinie für die Gateway-Ausführungsrolle
Die folgende Richtlinie erteilt dem Gateway die Erlaubnis, das API Gateway aufzurufen:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-west-2:111122223333:abcd123/prod/*/*" ] } ] }
AgentCore Vertrauensrichtlinie für die Gateway-Ausführungsrolle
Die folgende Vertrauensrichtlinie ermöglicht es AgentCore Gateway, die Ausführungsrolle zu übernehmen:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:gateway/*" } } } ] }
Private REST-APIs in API Gateway
API-Gateway-Ziele mit privaten Endpunkten werden nicht nativ unterstützt. Sie können Ihr privates API Gateway jedoch als OpenAPI-Schema exportieren und ein Open-API-Ziel mit diesem Schema verwenden, das mit einem privateEndpoint konfiguriert ist. Stellen Sie den DNS-Namen routingDomain auf Ihren VPC-Endpunkt (VPCE) Ihres API Gateway ein und stellen Sie sicher, dass die OpenAPI-Schema-Server-URL die Domain verwendet, die Ihrem öffentlichen TLS-Zertifikat entspricht.
{ "name": "my-private-apigw-target", "privateEndpoint": { "managedVpcResource": { "vpcIdentifier": "vpc-0123456789abcdef0", "subnetIds": ["subnet-0123456789abcdef0", "subnet-0abcdef1234567890"], "endpointIpAddressType": "IPV4", "routingDomain": "<vpce-id>.execute-api.<region>.vpce.amazonaws.com" } }, "targetConfiguration": { "mcp": { "openApiSchema": { "inlinePayload": "<OpenAPI spec JSON with server URL matching the public certificate domain for your API Gateway, for example https://<api-id>.execute-api.<region>.amazonaws.com>" } } } }
Weitere Informationen zur Konfiguration privater Endpunkte finden Sie unter Connect zu privaten Ressourcen in Ihrer VPC mithilfe von VPC Lattice herstellen.
Lambda
AgentCore Gateway unterstützt Lambda-Ziele als einen seiner Zieltypen und ermöglicht so den nahtlosen Aufruf von Lambda-Funktionen, die mit Ressourcen innerhalb Ihrer VPC kommunizieren können. Diese Funktionalität ist sofort verfügbar und erfordert keine zusätzliche Konfiguration durch Kunden. Das Gateway kann sofort Lambda-Funktionen aufrufen, die mit VPC-Zugriff konfiguriert wurden, um Ihre internen Ressourcen wie Datenbanken, APIs oder andere Dienste zu erreichen. Um bewährte Sicherheitsmethoden beizubehalten, wird dringend empfohlen, die AgentCore Gateway-Ausführungsrolle mit minimalen Berechtigungen zu konfigurieren und sie insbesondere darauf zu beschränken, nur die vorgesehene Lambda-Funktion aufzurufen, anstatt umfassende Lambda-Ausführungsberechtigungen zu gewähren. Dieses Prinzip der geringsten Rechte stellt sicher, dass das Gateway oder ein anderer Anrufer, der dieselbe Rolle verwendet, nicht versehentlich unbeabsichtigte Lambda-Funktionen aufrufen kann, wodurch Ihre Sicherheitsangriffsfläche reduziert und strenge Zugriffskontrollen in Ihrer Umgebung aufrechterhalten werden. AWS
Private Identitätsanbieter
AgentCore unterstützt jetzt die Verbindung zu privaten OAuth-Identitätsanbietern sowohl für eingehende JWT-Autorisierungen als auch für ausgehende OAuth-Anmeldeinformationen. Auf diese Weise können Sie selbst gehostete Autorisierungsserver IdPs wie Keycloak oder andere OIDC-compliant Autorisierungsserver verwenden PingFederate, die in Ihrer VPC laufen, ohne sie dem öffentlichen Internet auszusetzen.
Detaillierte Konfigurationsanweisungen finden Sie unter Connect zu privaten Identitätsanbietern in Ihrer VPC herstellen.
Alternativ können Sie eine Interceptor-Lambda-Funktion für die eingehende Authentifizierung verwenden und den Authorization-Header im Interceptor-Lambda für die Verwendung mit ausgehender Authentifizierung überschreiben:
Einschränkungen und Überlegungen
-
Eingehende Autorisierung erforderlich: Gateway-Ziele, die mit a konfiguriert sind,
privateEndpointkönnen nichtNO_AUTHals Autorisierungstyp für eingehenden Datenverkehr verwendet werden, es sei denn, ein Interceptor-Lambda ist auf dem Gateway konfiguriert.
Weitere Einschränkungen im Zusammenhang mit kontoübergreifender Konnektivität und DNS-TTL-Konfiguration finden Sie unter Einschränkungen und Überlegungen unter Connect zu privaten Ressourcen in Ihrer VPC mithilfe von VPC Lattice herstellen.