Berechtigungen für AgentCore Gateway einrichten
Um Amazon Bedrock AgentCore Gateway und seine Funktionen nutzen zu können, müssen Sie die folgenden Berechtigungen berücksichtigen:
-
builder/user Gateway-Berechtigungen — Berechtigungen, die einem Gateway-Builder oder -Benutzer gewährt werden, damit er AgentCore Gateways erstellen, verwalten und/oder verwenden kann.
-
Berechtigungen für Gateway-Dienstrollen — Berechtigungen, die für eine Servicerolle bereitgestellt werden, die Sie für Ihr Gateway erstellen werden. Diese Berechtigungen ermöglichen es dem Amazon AgentCore Bedrock-Service, Aktionen im Namen der Identität durchzuführen, die das Gateway aufruft.
-
Resource-based Berechtigungen — Mit Ressourcen verknüpfte Berechtigungen, um der Gateway-Servicerolle den Zugriff darauf zu ermöglichen. Sie nehmen den Amazon-Ressourcennamen (ARN) der Gateway-Servicerolle als Teil der
Principalressourcenbasierten Richtlinie auf. -
Ressourcenbasierte Gateway-Richtlinien — Richtlinien, die direkt an Ihre Gateway-Ressourcen angehängt sind, um zu kontrollieren, welche Prinzipale sie aufrufen können. Weitere Informationen finden Sie in den Resource-based Richtlinien für Amazon Bedrock AgentCore.
Anmerkung
Wenn Sie keine benutzerdefinierten Berechtigungen einrichten möchten, können Sie die folgenden Optionen zur einfachen Einrichtung verwenden: * Hängen Sie das BedrockAgentCoreFullAccessan eine IAM-Identität an, damit diese Gateways erstellen, verwalten und aufrufen kann. * Verwenden Sie die AWS Management Console oder AgentCore CLI, um eine AgentCore Gateway-Servicerolle mit den richtigen Berechtigungen und Gateway-Ziele mit den richtigen ressourcenbasierten Richtlinien zu erstellen, damit die Servicerolle auf sie zugreifen kann.
Wählen Sie ein Thema aus, um mehr zu erfahren:
Themen
Gateway Builder und Benutzerberechtigungen
Damit eine Identität Gateways erstellen, verwalten oder verwenden kann, müssen Sie der IAM-Identität eine identitätsbasierte Richtlinie hinzufügen, damit sie Amazon Bedrock-Aktionen ausführen kann. AgentCore-related Für umfassende Berechtigungen können Sie die verwaltete Richtlinie verwenden. BedrockAgentCoreFullAccess
Für mehr Sicherheit und Kontrolle können Sie Ihre eigene benutzerdefinierte Richtlinie erstellen, indem Sie die Berechtigungen in der Vollzugriffsrichtlinie reduzieren. Mit der folgenden Richtlinie kann eine Identität beispielsweise Aktionen ausführen, die sich auf das AgentCore Gateway beziehen, aber nicht auf andere AgentCore Dienste wie AgentCore Runtime oder AgentCore Browser:
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock-agentcore:*Gateway*", "bedrock-agentcore:*WorkloadIdentity", "bedrock-agentcore:*CredentialProvider", "bedrock-agentcore:*Token*", "bedrock-agentcore:*Access*" ], "Resource": "arn:aws:bedrock-agentcore:*:*:*gateway*" } ] }
- Die folgende benutzerdefinierte Richtlinie ist restriktiver und erlaubt nur Lesezugriff auf Gateways und Gateway-Ziele
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock-agentcore:ListGateways", "bedrock-agentcore:GetGateway", "bedrock-agentcore:ListGatewayTargets", "bedrock-agentcore:GetGatewayTarget" ], "Resource": "arn:aws:bedrock-agentcore:*:*:*gateway*" } ] }
Gateway-Zugriffsberechtigungen (eingehende Autorisierung)
Zusätzlich zu den Gateway-bezogenen Berechtigungen müssen Sie auch Berechtigungen für Identitäten konfigurieren, um während des Aufrufs auf das Gateway zugreifen zu können. Sie konfigurieren diese Berechtigungen, wenn Sie die eingehende Autorisierung einrichten.
AgentCore Berechtigungen für die Gateway-Dienstrolle
Wenn Sie ein Gateway erstellen, benötigen Sie eine Servicerolle, die berechtigt ist, eine IAM-Rolle anzunehmen und im Namen der IAM-Rolle auf AWS Ressourcen und externe Dienste zuzugreifen. Sie können die Servicerolle auf folgende Weise erstellen:
-
Wenn Sie ein Gateway in der AWS Management Console oder über die AgentCore CLI erstellen, können Sie festlegen, dass AgentCore automatisch eine Servicerolle mit den erforderlichen Berechtigungen für Sie erstellt wird. Wenn Sie diese Methode bevorzugen, können Sie diese Voraussetzung überspringen.
-
Wenn Sie es vorziehen, zur besseren Anpassung Ihre eigene Servicerolle zu erstellen, müssen Sie die Rolle mit den in diesem Thema beschriebenen Berechtigungen konfigurieren. Informationen dazu, wie Sie eine Servicerolle erstellen und ihr Berechtigungen zuweisen, finden Sie unter Eine Rolle erstellen, um Berechtigungen für einen AWS Dienst zu delegieren.
Die erforderlichen Berechtigungen für eine Servicerolle finden Sie in den folgenden Themen:
Themen
Berechtigungen vertrauen
Einer Servicerolle muss eine Vertrauensrichtlinie beigefügt sein, die es dem AgentCore Dienst ermöglicht, eine IAM-Identität anzunehmen und in seinem Namen Aktionen auszuführen.
Im Folgenden finden Sie ein Beispiel für eine Vertrauensrichtlinie, die Sie verwenden können.
{ "Version":"2012-10-17", "Statement": [ { "Sid": "GatewayAssumeRolePolicy", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:gateway/gateway-name-*" } } } ] }
Anmerkung
Da Sie den Gateway-ARN nicht kennen, bevor Sie ihn erstellen, können Sie das Condition Feld weglassen, wenn Sie die Servicerolle zum ersten Mal erstellen. Nachdem Sie das Gateway erstellt haben, fügen Sie das Condition Feld aus Sicherheitsgründen wieder der Richtlinie hinzu und gehen Sie wie folgt vor: * Ersetzen Sie den Wert des aws:SourceAccount Bedingungsschlüssels durch die ID des Kontos, zu dem das Gateway gehört. * Ersetzen Sie den aws:SourceArn Bedingungsschlüssel durch den ARN des Gateways.
Autorisierungsberechtigungen für ausgehende Nachrichten
Abhängig von der Art der ausgehenden Autorisierung, die Sie für Ihre Gateway-Ziele verwenden, müssen Sie der Servicerolle Berechtigungen hinzufügen, damit sie das Ziel aufrufen kann. Diese Berechtigungen ermöglichen es der Gateway-Servicerolle, Autorisierungsdaten für den Aufruf des Ziels abzurufen. Sie können dies bei der Einrichtung der ausgehenden Autorisierung tun.
Zugriffsberechtigungen AWS Ressourcen
Abhängig von Ihrer Gateway-Konfiguration oder den Zielen, die Sie dem Gateway hinzufügen möchten, müssen Sie der Gateway-Dienstrolle möglicherweise Berechtigungen hinzufügen, damit sie auf AWS Ressourcen zugreifen kann. In den folgenden Themen werden einige Ressourcen behandelt, auf die Ihre Gateway-Servicerolle möglicherweise Zugriff benötigt:
Wenn Sie ein Lambda-Ziel an Ihr Gateway anhängen, müssen Sie Berechtigungen für die AgentCore Gateway-Dienstrolle hinzufügen, um die Funktion aufrufen zu können, indem Sie wie folgt vorgehen:
-
Fügen Sie der AgentCore Gateway-Dienstrolle eine identitätsbasierte Richtlinie hinzu, die die
lambda:InvokeFunctionAktion auf der Lambda-Funktionsressource ermöglicht. -
(Wenn sich die Funktion in einem anderen Konto als die Gateway-Servicerolle befindet) Fügen Sie der Lambda-Funktion eine ressourcenbasierte Richtlinie hinzu, die es dem Gateway-Dienstrollenprinzipal ermöglicht, die
lambda:InvokeFunctionAktion auf der Lambda-Funktionsressource auszuführen.
Wählen Sie ein Thema aus, um zu erfahren, wie Sie die Berechtigungen einrichten:
Themen
===== Hängen Sie eine identitätsbasierte Richtlinie an die Gateway-Servicerolle an
Um der Gateway-Servicerolle den Zugriff auf ein Lambda-Ziel zu ermöglichen, fügen Sie Ihrer AgentCore Gateway-Servicerolle die folgende identitätsbasierte Richtlinie hinzu, indem Sie das Thema unter Hinzufügen und Entfernen von IAM-Identitätsberechtigungen auswählen, das zu Ihrem Anwendungsfall passt, und folgen Sie den Schritten.
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AmazonBedrockAgentCoreGatewayLambdaProd", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:us-east-1:123456789012:function:FunctionName" ] }] }
Ersetzen Sie den ARN im Resource Feld durch den ARN Ihres Lambda Function Gateway-Ziels. Wenn Ihr Gateway mehrere Lambda-Ziele hat, können Sie den ARN jeder Funktion zur Resource Liste hinzufügen.
===== (Wenn die Funktion in einem anderen Konto ist) Hängen Sie eine ressourcenbasierte Richtlinie an die Lambda-Funktion an
Wenn sich das Lambda-Funktionsziel in einem anderen Konto als die Gateway-Servicerolle befindet, müssen Sie eine ressourcenbasierte Richtlinie anhängen, damit die Gateway-Servicerolle darauf zugreifen kann. Im Folgenden finden Sie ein Beispiel für eine Richtlinie, die Sie verwenden können:
{ "Version":"2012-10-17", "Statement": [ { "Sid": "LambdaAllowGatewayServiceRoleMyFunction", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/MyGatewayExecutionRole" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction" } ] }
Ersetzen Sie die Werte der folgenden Felder:
-
AWS— Verwenden Sie den ARN Ihrer Gateway-Servicerolle. -
Resource— Verwenden Sie den ARN Ihrer Lambda-Funktion.- Um zu erfahren, wie Sie eine ressourcenbasierte Richtlinie an die Lambda-Funktion anhängen, die es Ihrer Gateway-Servicerolle ermöglicht, auf die Funktion zuzugreifen, wählen Sie eine der folgenden Methoden
Beispiel
Wenn Sie planen, eine Gateway-Ziel-Tool-Definition aus einer Amazon S3 S3-URI einzubeziehen, müssen Sie Berechtigungen für die Gateway-Servicerolle angeben, um auf den Bucket zuzugreifen. Die AmazonS3ReadOnlyAccessRichtlinie ist ein Beispiel für eine Richtlinie, die Sie der Servicerolle zuordnen können. Für mehr Sicherheit können Sie Resource den Bereich auf den S3-Standort ausweiten.
Wenn Sie vorhaben, ein Smithy-Ziel hinzuzufügen, müssen Sie Berechtigungen für die Gateway-Dienstrolle hinzufügen, um auf AWS Dienste zuzugreifen, auf die sich Ihre Smithy-Modelle beziehen. Informationen darüber, welche Berechtigungen mit der Servicerolle verknüpft werden müssen, finden Sie in der Dokumentation des jeweiligen Dienstes.
Sie können der Servicerolle Berechtigungen hinzufügen, indem Sie unter Hinzufügen und Entfernen von IAM-Identitätsberechtigungen das Thema auswählen, das sich auf Ihren Anwendungsfall bezieht, und die folgenden Schritte ausführen.
Wenn Ihr Smithy-Modellziel beispielsweise auf eine DynamoDB-Tabelle zugreift, können Sie die folgende Richtlinie anhängen, damit die Servicerolle DynamoDB-Operationen an der Tabelle ausführen kann:
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:Query", "dynamodb:Scan" ], "Resource": "arn:aws:dynamodb:*:*:table/*" } ] }
Bewährte Methoden für Gateway-Berechtigungen
- Folgen Sie dem Prinzip der geringsten Rechte
-
-
Gewähren Sie nur die Berechtigungen, die für den Betrieb Ihres Gateways erforderlich sind
-
Verwenden Sie nach Möglichkeit spezifische Ressourcen-ARNs anstelle von Platzhaltern
-
Überprüfen und prüfen Sie die Berechtigungen regelmäßig
-
- Trennen Sie die Rollen nach Funktionen
-
-
Verwenden Sie unterschiedliche Rollen für Verwaltung und Ausführung
-
Erstellen Sie separate Rollen für verschiedene Gateways mit unterschiedlichen Zwecken
-
- Sicherer Speicher für Anmeldeinformationen
-
-
Speichern Sie API-Schlüssel und OAuth-Anmeldeinformationen in Secrets Manager AWS
-
Regelmäßiges Auswechseln der Anmeldeinformationen
-
- Überwachen und Prüfen
-
-
Aktivieren Sie die CloudTrail Protokollierung für Gateway-Operationen
-
Überprüfen Sie regelmäßig die Zugriffsmuster und die Verwendung von Berechtigungen
-
- Verwenden Sie Bedingungen in Richtlinien
-
-
Fügen Sie Bedingungen hinzu, um einzuschränken, wann und wie Berechtigungen verwendet werden können
-
Erwägen Sie die Verwendung von Quell-IP-Einschränkungen für Verwaltungsvorgänge
-