Richten Sie die ausgehende Autorisierung für Ihr Gateway ein
Mit der ausgehenden Autorisierung können Amazon Bedrock AgentCore Gateways im Namen von Benutzern, die bei der eingehenden Autorisierung authentifiziert und autorisiert wurden, sicher auf Gateway-Ziele zugreifen.
AgentCore Gateway unterstützt die folgenden Arten der ausgehenden Autorisierung:
-
Keine Autorisierung (nicht empfohlen) — Einige Zieltypen bieten Ihnen die Möglichkeit, die ausgehende Autorisierung zu umgehen. Diese weniger sichere Option wird nicht empfohlen.
-
IAM-based ausgehende Autorisierung — Verwenden Sie die Gateway-Servicerolle, um den Zugriff auf das Gateway-Ziel mit AWS Signature Version 4 (Sig V4) zu authentifizieren.
-
IAM-Anmeldeinformationen des Anrufers — Das Gateway verwendet die IAM-Anmeldeinformationen des Anrufers, um Anfragen an das Ziel zu signieren. Das Gateway übernimmt im Namen des Anrufers, der den Federated Access Service (FAS) verwendet, eine Rolle und signiert die ausgehende Anfrage mit der Identität des Anrufers. Dies ist nützlich, wenn der Zieldienst die Autorisierung auf der Grundlage der Identität des ursprünglichen Anrufers und nicht auf der Gateway-Servicerolle durchführen muss.
-
OAuth — Ein offenes Autorisierungsframework, das einer Client-Anwendung den Zugriff auf Ressourcen ermöglicht. Sie können OAuth mit einem integrierten Identitätsanbieter oder mit einem benutzerdefinierten Identitätsanbieter verwenden. Weitere Informationen finden Sie unter OAuth
2.0. Sie können die folgenden Arten von OAuth-Autorisierungsberechtigungen verwenden: -
Erteilung von Kundenanmeldedaten — Machine-to-machine Authentifizierung (auch bekannt als 2-beiniges OAuth). Die Client-Anwendung greift im Namen der Anwendung auf Ressourcen zu, nicht im Namen des Benutzers.
-
Gewährung eines Autorisierungscodes — User-delegated Zugriff (auch bekannt als dreibeiniges OAuth). Der Benutzer erklärt sich damit einverstanden, dass die Client-Anwendung im Namen des Benutzers auf Ressourcen zugreift.
-
Token Exchange Grant (On-behalf-of) — Das Gateway tauscht das Zugriffstoken des eingehenden Benutzers gegen ein neues Zugriffstoken mit Gültigkeitsbereich aus, das auf eine nachgelagerte Ressource abzielt. Das ausgetauschte Token enthält sowohl die Identität des Benutzers als auch die Identität des Agenten, sodass nachgelagerte Dienste bei jedem Hop eine detaillierte Autorisierung erzwingen können, ohne zusätzliche Zustimmungsflüsse auszulösen. Weitere Informationen finden Sie unter Token-Austausch. On-behalf-of
-
-
Token-Passthrough — Das Gateway leitet das eingehende Autorisierungstoken ohne Änderung direkt an das Ziel weiter. Der Zieldienst ist für die Validierung des Tokens verantwortlich. Dazu muss das Gateway die
AUTHENTICATE_ONLYeingehende Autorisierung verwenden, sodass das Token validiert, aber für die Weiterleitung aufbewahrt wird. -
API-Schlüssel — Verwenden Sie den AgentCore Dienst, um einen API-Schlüssel zur Authentifizierung des Zugriffs auf das Gateway-Ziel zu generieren.
Die Art der ausgehenden Autorisierung, die Sie einrichten können, hängt vom Gateway-Zieltyp ab, für den Sie den Zugriff autorisieren:
| Zieltyp | Keine Autorisierung | Gateway-Dienstrolle | IAM-Anmeldeinformationen des Anrufers | OAuth (Client-Anmeldeinformationen) | OAuth (Autorisierungscode) | OAuth (Token-Austausch) | Weiterleitung von Tokens | API-Schlüssel |
|---|---|---|---|---|---|---|---|---|
|
API-Gateway-Phase |
Ja |
Ja |
Nein |
Nein |
Nein |
Nein |
Nein |
Ja |
|
Lambda-Funktion |
Nein |
Ja |
Nein |
Nein |
Nein |
Nein |
Nein |
Nein |
|
MCP-Server |
Ja |
Ja |
Nein |
Ja |
Ja |
Ja |
Nein |
Ja |
|
API-Schema öffnen |
Ja |
Ja |
Nein |
Ja |
Ja |
Ja |
Nein |
Ja |
|
Smithy-Schema |
Nein |
Ja |
Nein |
Ja |
Nein |
Nein |
Nein |
Nein |
|
AgentCore Laufzeit (HTTP) |
Nein |
Ja |
Ja |
Ja |
Nein |
Nein |
Ja |
Nein |
Anmerkung
Wenn Sie eine Integrationsanbieter-Vorlage als Ziel verwenden, überprüfen Sie die unterstützten Autorisierungstypen für verschiedene Vorlagen unter Built-in Vorlagen von Integrationsanbietern als Ziele.
Bevor Sie Ihrem Gateway ein Ziel hinzufügen, müssen Sie die Autorisierung dafür mit einer der unterstützten Methoden einrichten.
Anmerkung
Sie können diese Voraussetzung überspringen, wenn Sie planen, Ihr Gateway mit der AWS Management Console oder AgentCore CLI zu erstellen. Wenn Sie eines dieser Tools verwenden, können Sie sich AgentCore automatisch eine Servicerolle mit den erforderlichen Berechtigungen für den Zugriff auf das Ziel erstellen lassen. Jedes Mal, wenn Sie ein Ziel hinzufügen, werden Ihrer Servicerolle automatisch die erforderlichen Berechtigungen zugewiesen.
Wählen Sie ein Thema aus, um zu erfahren, wie Sie diese Art der Autorisierung einrichten:
Themen
Richten Sie die IAM-based ausgehende Autorisierung mit einer Gateway-Servicerolle ein
IAM-based Mit der ausgehenden Autorisierung können Sie die IAM-Anmeldeinformationen der Gateway-Servicerolle für die Autorisierung mit AWS Signature Version 4 (Sig V4) verwenden. Mit dieser Option kann sich der Amazon AgentCore Bedrock-Service im Namen Ihrer Gateway-Anrufer bei Gateway-Zielen authentifizieren.
Wenn Sie diese Option verwenden, stellen Sie sicher, dass die Gateway-Servicerolle über Berechtigungen verfügt. bedrock-agentcore:InvokeGateway Das Gateway verwendet die Anmeldeinformationen der Servicerolle für die Authentifizierung während des Aufrufs.
Zusätzliche Konfiguration für MCP-Server und OpenAPI-Ziele
Wenn Sie die IAM-based ausgehende Autorisierung mit einem MCP-Server oder einem OpenAPI-Ziel verwenden, müssen Sie eine zusätzliche Konfiguration für die SigV4-Signatur bereitstellen. Fügen Sie in die credentialProviderConfigurations ein iamCredentialProvider mit den folgenden Feldern ein:
-
service (erforderlich) — Der AWS Dienstname, der für die SigV4-Signatur verwendet wird. Zum Beispiel
bedrock-agentcorefür MCP-Server, die auf Amazon AgentCore Bedrock gehostet werden. -
region (optional) — Die AWS Region für die Sigv4-Signatur. Wenn Sie keine Region angeben, verwendet das Gateway seine eigene Region.
Schließen Sie das Feld für Lambda-, API Gateway- und Smithy-Ziele nicht ein. iamCredentialProvider Diese Zieltypen unterstützen nur die GATEWAY_IAM_ROLE Basiskonfiguration mitcredentialProviderType. Weitere Informationen zur Angabe der Konfiguration des Anmeldeinformationsanbieters finden Sie unter Autorisierung der AgentCore Gateway-Servicerolle (IAM).
Bewährte Sicherheitsmethoden für IAM-based die ausgehende Autorisierung
Die Gateway-Ausführungsrolle wird von allen Zielen gemeinsam genutzt, mit GATEWAY_IAM_ROLE denen konfiguriert wurde. Ihre Berechtigungen sind die Obergrenze dafür, was jeder autorisierte Anrufer über das Gateway ausüben kann. Folgen Sie diesen bewährten Methoden, um die Exposition zu begrenzen:
-
Legen Sie für die Ausführungsrolle Mindestberechtigungen fest — Gewähren Sie nur die Berechtigungen, die für alle konfigurierten Ziele benötigt werden. Vermeiden Sie allgemeine Angaben
ActionoderResourcePlatzhalter. -
Verwenden Sie separate Gateways für unterschiedliche Vertrauensgrenzen — Wenn Ziele unterschiedliche Vertraulichkeitsstufen haben oder unterschiedliche Workloads bedienen, stellen Sie sie hinter separaten Gateways mit unterschiedlichen Ausführungsrollen bereit.
-
Verwenden Sie die Policy-Engine, um den Anruferzugriff einzuschränken — Verwenden Sie auf gemeinsam genutzten Gateways die Policy-Engine, um zu kontrollieren, welche Anrufer welche Ziele aufrufen können, wodurch der Explosionsradius der Zugriffsrechte jedes einzelnen Anrufers begrenzt wird.
Richten Sie die ausgehende Autorisierung mit einem OAuth-Client ein
Um die ausgehende Autorisierung mit einem OAuth-Client einzurichten, verwenden Sie den AgentCore Identity-Dienst und geben die Client-Anmeldeinformationen an, die Sie erhalten, wenn Sie einen Client entweder in einem integrierten Identitätsanbieter (siehe Einrichtung und Konfiguration des Anbieters) oder in einem benutzerdefinierten Identitätsanbieter erstellen.
So richten Sie die ausgehende Autorisierung mit einem OAuth-Client ein
-
Registrieren Sie Ihre Client-Anwendung bei einem unterstützten Drittanbieter.
-
Sie erhalten eine Client-ID, einen geheimen Clientschlüssel und möglicherweise weitere Werte, auf die Sie bei der Einrichtung der ausgehenden Autorisierung verweisen.
-
Folgen Sie je nach Ihren Anforderungen einem der folgenden Schritte:
-
Um die ausgehende Autorisierung in der Konsole mithilfe eines integrierten Identitätsanbieters zu konfigurieren, folgen Sie den Schritten unter OAuth-Client mithilfe des mitgelieferten Anbieters hinzufügen.
-
Um die ausgehende Autorisierung in der Konsole mithilfe eines benutzerdefinierten Identitätsanbieters zu konfigurieren, folgen Sie den Schritten unter OAuth-Client mithilfe eines benutzerdefinierten Anbieters hinzufügen.
-
Um die ausgehende Autorisierung mithilfe der API zu konfigurieren, senden Sie eine an einen der CreateOauth2CredentialProviderEndpunkte der AgentCore Kontrollebene. Beispiele finden Sie unter Beispiele für die Einrichtung der OAuth-Clientautorisierung.
Anmerkung
Die Form des JSON-Objekts, dem das
oauth2ProviderConfigInputFeld zugeordnet ist, hängt vom verwendeten Anbieter ab und muss mit dem von Ihnen angegebenencredentialProviderVendorWert übereinstimmen. Beispiele für unterschiedliche Konfigurationen für verschiedene Anmeldeinformationsanbieter finden Sie in den Beispielen für ausgehende Autorisierung bei dem Anbieter Ihrer Wahl unter Anbieterkonfiguration und Konfiguration.
-
-
Notieren Sie sich den generierten Credential-ARN (
credentialProviderArnin der API) und den AWS Secrets Manager Manager-Geheim-ARN (secretArnin der API). Sie werden diese Werte verwenden, wenn Sie Ihr Gateway-Ziel erstellen. -
(Wenn Sie eine benutzerdefinierte Gateway-Servicerolle verwenden) Fügen Sie Ihrer Gateway-Servicerolle die folgende identitätsbasierte Richtlinie hinzu:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetWorkloadAccessToken", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetWorkloadAccessToken", ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default/workload-identity/GatewayName-*" ] }, { "Sid": "GetResourceOauth2Token", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceOauth2Token", ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/TokenVaultId/oauth2credentialprovider/CredentialName" ] }, { "Sid": "GetSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", ], "Resource": [ "arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretId" ] } ] }Ersetzen Sie die Werte der folgenden Felder:
-
Ersetzen Sie in der
GetWorkloadAccessTokenAnweisung dasGatewayNamein derResourceListe durch den Namen Ihres Gateways. -
Ersetzen Sie in der
GetResourceOauth2TokenAnweisung den Wert in derResourceListe durch den ARN der Anmeldeinformationen, die Sie gerade generiert haben. -
Ersetzen Sie in der
GetSecretValueAnweisung den Wert in derResourceListe durch den ARN des AWS Geheimnisses, das in der Antwort zurückgegeben wurde, als Sie die Anmeldeinformationen generiert haben.
-
Beispiele für die Einstellung der OAuth-Clientautorisierung
Die folgenden Beispiele zeigen Ihnen, wie Sie die Autorisierung über einen OAuth-Client für Ihr Gateway-Ziel einrichten:
Beispiel
Richten Sie die ausgehende Autorisierung mit einem API-Schlüssel ein
Um die ausgehende Autorisierung mit einem API-Schlüssel einzurichten, verwenden Sie den AgentCore Identity-Dienst und geben einen API-Schlüssel an, den Sie von einem unterstützten Identitätsanbieter erhalten.
Um die ausgehende Autorisierung mit einem OAuth-Client einzurichten
-
Registrieren Sie Ihre Client-Anwendung bei einem unterstützten Drittanbieter.
-
Richten Sie einen API-Schlüssel für den Dienst des Anbieters ein. Notieren Sie sich die folgenden Werte, die Sie angeben, wenn Sie das Gateway-Ziel hinzufügen:
-
Speicherort der Anmeldeinformationen — Gibt an, ob der API-Schlüssel im Header oder als Abfrageparameter platziert werden soll.
-
Präfix für Anmeldeinformationen — Das Präfix für die Anmeldeinformationen (z. B. Inhaber).
-
-
Folgen Sie je nach Ihren Anforderungen einem der folgenden Schritte:
-
Um einen API-Schlüssel in der AgentCore Konsole zu erstellen, folgen Sie den Schritten unter API-Schlüssel hinzufügen und geben Sie den Wert des API-Schlüssels an.
-
Um einen API-Schlüssel mithilfe der AgentCore API zu erstellen, senden Sie eine CreateApiKeyCredentialProviderAnfrage an einen der Endpunkte der AgentCore Steuerungsebene und geben Sie den Wert des API-Schlüssels in das
apiKeyFeld ein. Beispiele finden Sie unter Beispiele für das Setzen eines API-Schlüssels.
-
-
Notieren Sie sich die folgenden Werte, die Sie angeben, wenn Sie das Gateway-Ziel hinzufügen:
-
Credential Provider ARN — Ein Amazon Resource Name (ARN), der für den Credential Provider generiert wurde.
-
Name — Der Name, den Sie dem API-Schlüssel gegeben haben.
-
Secret ARN — Ein geheimer ARN von AWS Secrets Manager, der für den API-Schlüssel generiert wurde.
-
-
(Wenn Sie eine benutzerdefinierte Gateway-Servicerolle verwenden) Fügen Sie Ihrer Gateway-Servicerolle die folgende identitätsbasierte Richtlinie hinzu:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetWorkloadAccessToken", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetWorkloadAccessToken", ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default/workload-identity/GatewayName-*" ] }, { "Sid": "GetResourceApiKey", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey", ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/TokenVaultId/apikeycredentialprovider/Name" ] }, { "Sid": "GetSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", ], "Resource": [ "arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretId" ] } ] }Ersetzen Sie die Werte der folgenden Felder:
-
Ersetzen Sie in der
GetWorkloadAccessTokenAnweisung dasGatewayNamein derResourceListe durch den Namen Ihres Gateways. -
Ersetzen Sie in der
GetResourceApiKeyAnweisung den Wert in derResourceListe durch den ARN der Anmeldeinformationen, die Sie gerade generiert haben. -
Ersetzen Sie in der
GetSecretValueAnweisung den Wert in derResourceListe durch den ARN des AWS Geheimnisses, das in der Antwort zurückgegeben wurde, als Sie die Anmeldeinformationen generiert haben.
-
Beispiele für das Setzen eines API-Schlüssels
Die folgenden Beispiele zeigen Ihnen, wie Sie einen API-Schlüssel für Ihr Gateway-Ziel festlegen: