Erstellen einer Servicerolle für Agenten für Amazon Bedrock - Amazon Bedrock

Erstellen einer Servicerolle für Agenten für Amazon Bedrock

Erstellen Sie eine IAM-Rolle und fügen Sie die folgenden Berechtigungen hinzu, indem Sie die Schritte unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS-Service befolgen, um anstelle der von Amazon Bedrock automatisch erstellten Rolle eine benutzerdefinierte Servicerolle für die Modellanpassung zu verwenden.

  • Vertrauensrichtlinie

  • Eine Richtlinie mit den folgenden identitätsbasierten Berechtigungen:

    • Zugriff auf die Amazon-Bedrock-Basismodelle

    • Zugriff auf die Amazon-S3-Objekte, die die OpenAPI-Schemas für die Aktionsgruppen in Ihren Agenten enthalten

    • Berechtigungen für Amazon Bedrock, um Wissensdatenbanken abzufragen, die Sie an Ihre Agenten anfügen möchten

    • Wenn eine der folgenden Situationen auf Ihren Anwendungsfall zutrifft, fügen Sie die Anweisung der Richtlinie hinzu oder fügen Sie der Servicerolle eine Richtlinie mit der Anweisung hinzu:

      • (Optional) Wenn Sie die Zusammenarbeit mehrerer Agenten aktivieren, Berechtigungen zum Abrufen der Aliase und zum Aufrufen von Agenten-Partner.

      • (Optional) Wenn Sie Ihrem Agentenalias einen bereitgestellten Durchsatz zuordnen, Berechtigungen zum Durchführen eines Modellaufrufs mit diesem bereitgestellten Durchsatz.

      • (Optional) Wenn Sie Ihrem Agenten einen Integritätsschutz zuordnen, Berechtigungen zum Anwenden dieses Integritätsschutzes. Wenn der Integritätsschutz mit einem KMS-Schlüssel verschlüsselt ist, benötigt die Servicerolle auch Berechtigungen zum Entschlüsseln des Schlüssels

      • (Optional) Wenn Sie Ihren Agenten mit einem KMS-Schlüssel verschlüsseln, Berechtigungen zum Entschlüsseln des Schlüssels.

Unabhängig davon, ob Sie eine benutzerdefinierte Rolle verwenden oder nicht, müssen Sie den Lambda-Funktionen für die Aktionsgruppen in Ihren Agenten auch eine ressourcenbasierte Richtlinie hinzufügen, um der Servicerolle Berechtigungen für den Zugriff auf die Funktionen zu erteilen. Weitere Informationen finden Sie unter Ressourcenbasierte Richtlinie, die es Amazon Bedrock erlaubt, die Lambda-Funktion einer Aktionsgruppe aufzurufen.

Vertrauensstellung

Die folgende Vertrauensrichtlinie ermöglicht es Amazon Bedrock, diese Rolle zu übernehmen und Agenten zu erstellen und zu verwalten. Ersetzen Sie die ${values} nach Bedarf. Die Richtlinie enthält optionale Bedingungsschlüssel (siehe Bedingungsschlüssel für Amazon Bedrock und Globale AWS-Bedingungskontextschlüssel) im Feld Condition, deren Verwendung wir aus Sicherheitsgründen empfehlen.

Anmerkung

Aus Sicherheitsgründen empfiehlt es sich, das Sternchen * nach der Erstellung durch spezifische Agenten-IDs zu ersetzen.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "AWS:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:agent/*" } } } ] }

Identitätsbasierte Berechtigungen für die Agenten-Servicerolle

Fügen Sie die folgende Richtlinie an, um Berechtigungen für die Servicerolle bereitzustellen, indem Sie $ {values} nach Bedarf ersetzen. Die Richtlinie enthält die folgenden Anweisungen: Lassen Sie eine Anweisung weg, wenn sie auf Ihren Anwendungsfall nicht zutrifft. Die Richtlinie enthält optionale Bedingungsschlüssel (siehe Bedingungsschlüssel für Amazon Bedrock und Globale AWS-Bedingungskontextschlüssel) im Feld Condition, deren Verwendung wir aus Sicherheitsgründen empfehlen.

Anmerkung

Weitere Berechtigungen, die Sie hinzufügen müssen, wenn Sie Ihren Agenten mit einem vom Kunden verwalteten KMS-Schlüssel verschlüsseln, finden Sie unter Verschlüsselung von Agentenressourcen für Agenten, die vor dem 22. Januar 2025 erstellt wurden.

  • Berechtigungen für die Verwendung von Amazon-Bedrock-Basismodellen, um Modellinferenzen anhand von Prompts auszuführen, die bei der Orchestrierung Ihres Agenten verwendet wurden

  • Berechtigungen für den Zugriff auf die Aktionsgruppen-API-Schemas Ihres Agenten in Amazon S3 Lassen Sie diese Anweisung weg, wenn Ihr Agent über keine Aktionsgruppen verfügt.

  • Berechtigung für den Zugriff auf Wissensdatenbanken, die einem Agenten zugeordnet sind Lassen Sie diese Anweisung weg, wenn Ihrem Agenten keine Wissensdatenbanken zugeordnet sind.

  • Berechtigungen für den Zugriff auf Wissensdatenbanken von Drittanbietern (Pinecone oder Redis Enterprise Cloud), die einem Agenten zugeordnet sind Lassen Sie diese Anweisung weg, wenn es sich bei Ihrer Wissensdatenbank um die Datenbank eines Erstanbieters (Amazon OpenSearch Serverless oder Amazon Aurora) handelt oder wenn Ihrem Agent keine Wissensdatenbanken zugeordnet sind.

  • Berechtigungen für den Zugriff auf einen Prompt über das Prompt-Management Lassen Sie diese Anweisung weg, wenn Sie nicht vorhaben, einen Prompt über das Prompt-Management mit Ihrem Agenten in der Amazon-Bedrock-Konsole zu testen.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AgentModelInvocationPermissions", "Effect": "Allow", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2", "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2:1", "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-instant-v1" ] }, { "Sid": "AgentActionGroupS3", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/SchemaJson" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "123456789012" } } }, { "Sid": "AgentKnowledgeBaseQuery", "Effect": "Allow", "Action": [ "bedrock:Retrieve", "bedrock:RetrieveAndGenerate" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/knowledge-base-id" ] }, { "Sid": "Agent3PKnowledgeBase", "Effect": "Allow", "Action": [ "bedrock:AssociateThirdPartyKnowledgeBase" ], "Resource": "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/knowledge-base-id", "Condition": { "StringEquals": { "bedrock:ThirdPartyKnowledgeBaseCredentialsSecretArn": "arn:aws:kms:us-east-1:123456789012:key/KeyId" } } }, { "Sid": "AgentPromptManagementConsole", "Effect": "Allow", "Action": [ "bedrock:GetPrompt" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:prompt/prompt-id" ] } ] }

(Optional) Identitätsbasierte Richtlinie, die es Amazon Bedrock erlaubt, bereitgestellten Durchsatz mit Ihrem Agentenalias zu verwenden

Wenn Sie einen bereitgestellten Durchsatz mit einem Alias Ihres Agenten verknüpfen, fügen Sie der Servicerolle die folgende identitätsbasierte Richtlinie hinzu oder fügen Sie die Anweisung der Richtlinie in Identitätsbasierte Berechtigungen für die Agenten-Servicerolle hinzu.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "UseProvisionedThroughput", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:GetProvisionedModelThroughput" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:provisioned-model/${provisioned-model-id}" ] } ] }

(Optional) Identitätsbasierte Richtlinie, die es Amazon Bedrock erlaubt, Agenten-Partner zuzuordnen und aufzurufen

Wenn Sie die Zusammenarbeit mehrerer Agenten aktivieren, fügen Sie der Servicerolle die folgende identitätsbasierte Richtlinie bei oder fügen Sie die Erklärung der Richtlinie unter Identitätsbasierte Berechtigungen für die Agenten-Servicerolle hinzu.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AmazonBedrockAgentMultiAgentsPolicyProd", "Effect": "Allow", "Action": [ "bedrock:GetAgentAlias", "bedrock:InvokeAgent" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:agent-alias/${agent-id}/${agent-alias-id}" ] } ] }

(Optional) Identitätsbasierte Richtlinie, die Amazon Bedrock die Verwendung von Integritätsschutz mit Ihrem Agenten erlaubt

Wenn Sie Ihrem Agenten einen Integritätsschutz zuordnen, fügen Sie der Servicerolle die folgende identitätsbasierte Richtlinie hinzu oder fügen Sie die Anweisung der Richtlinie unter Identitätsbasierte Berechtigungen für die Agenten-Servicerolle hinzu.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": "bedrock:ApplyGuardrail", "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:guardrail/${guardrail-id}" ] } ] }

(Optional) Identitätsbasierte Richtlinie, die es Amazon Bedrock erlaubt, auf Dateien aus S3 zuzugreifen, um sie mit Codeinterpretation zu verwenden

Wenn Sie Aktivieren der Codeinterpretation in Amazon Bedrock aktivieren, fügen Sie der Servicerolle die folgende identitätsbasierte Richtlinie hinzu oder fügen Sie der Richtlinie die Anweisung unter Identitätsbasierte Berechtigungen für die Servicerolle von Agenten hinzu.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AmazonBedrockAgentFileAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectVersionAttributes", "s3:GetObjectAttributes" ], "Resource": [ "arn:aws:s3:::[[customerProvidedS3BucketWithKey]]" ] } ] }

Ressourcenbasierte Richtlinie, die es Amazon Bedrock erlaubt, die Lambda-Funktion einer Aktionsgruppe aufzurufen

Führen Sie die Schritte unter Verwenden von ressourcenbasierten Richtlinien für Lambda aus und fügen Sie die folgende ressourcenbasierte Richtlinie einer Lambda-Funktion hinzu, damit Amazon Bedrock auf die Lambda-Funktion für die Aktionsgruppen Ihres Agenten zugreifen kann. Ersetzen Sie dabei $ {values} nach Bedarf. Die Richtlinie enthält optionale Bedingungsschlüssel (siehe Bedingungsschlüssel für Amazon Bedrock und Globale AWS-Bedingungskontextschlüssel) im Feld Condition, deren Verwendung wir aus Sicherheitsgründen empfehlen.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AccessLambdaFunction", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:123456789012:function:function-name", "Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012" }, "ArnLike": { "AWS:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:agent/${agent-id}" } } } ] }