Erstellen Sie eine Servicerolle für Amazon Bedrock Flows in Amazon Bedrock - Amazon Bedrock

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen Sie eine Servicerolle für Amazon Bedrock Flows in Amazon Bedrock

Um einen Flow in Amazon Bedrock zu erstellen und zu verwalten, müssen Sie eine Servicerolle mit den erforderlichen Berechtigungen verwenden, die auf dieser Seite beschrieben sind. Sie können eine Servicerolle verwenden, die Amazon Bedrock automatisch für Sie in der Konsole erstellt, oder eine, die Sie selbst anpassen.

Anmerkung

Wenn Sie die Servicerolle verwenden, die Amazon Bedrock automatisch für Sie in der Konsole erstellt, werden Berechtigungen dynamisch angehängt, wenn Sie Ihrem Flow Knoten hinzufügen und den Flow speichern. Wenn Sie Knoten entfernen, werden die Berechtigungen jedoch nicht gelöscht, sodass Sie die Berechtigungen löschen müssen, die Sie nicht mehr benötigen. Um die Berechtigungen für die Rolle zu verwalten, die für Sie erstellt wurde, folgen Sie den Schritten unter Rolle ändern im IAM Benutzerhandbuch.

Um eine benutzerdefinierte Servicerolle für Amazon Bedrock Flows zu erstellen, erstellen Sie eine IAM Rolle, indem Sie die Schritte unter Erstellen einer Rolle zum Delegieren von Berechtigungen für einen AWS Service befolgen. Ordnen Sie der Rolle dann die folgenden Berechtigungen zu.

  • Vertrauensrichtlinie

  • Die folgenden identitätsbasierten Berechtigungen:

    • Zugriff auf die Amazon Bedrock-Basismodelle, die der Flow verwenden wird. Fügen Sie jedes Modell, das im Flow verwendet wird, zur Resource Liste hinzu.

    • Wenn Sie ein Modell mithilfe von Provisioned Throughput aufrufen, Berechtigungen für den Zugriff auf das bereitgestellte Modell und dessen Aufruf. Fügen Sie jedes Modell, das im Flow verwendet wird, der Liste hinzu. Resource

    • Wenn Sie ein benutzerdefiniertes Modell aufrufen, Berechtigungen für den Zugriff und das Aufrufen des benutzerdefinierten Modells. Fügen Sie jedes Modell, das im Flow verwendet wird, der Liste hinzu. Resource

    • Berechtigungen, die auf den Knoten basieren, die Sie dem Flow hinzufügen:

      • Wenn Sie Prompt-Knoten einbeziehen, die Prompts aus der Prompt-Verwaltung verwenden, benötigen Sie Berechtigungen für den Zugriff auf die Aufforderung. Fügen Sie alle Eingabeaufforderungen, die im Flow verwendet werden, der Resource Liste hinzu.

      • Wenn Sie Knotenpunkte in der Wissensdatenbank einbeziehen, benötigen Sie Berechtigungen, um die Wissensdatenbank abzufragen. Fügen Sie jede Wissensdatenbank, die im Flow abgefragt wird, der Liste hinzu. Resource

      • Wenn Sie Agentenknoten einbeziehen, benötigen Sie Berechtigungen, um einen Alias des Agenten aufzurufen. Fügen Sie jeden Agenten, der im Flow aufgerufen wird, der Liste hinzu. Resource

      • Wenn Sie S3-Abrufknoten einbeziehen, benötigen Sie Berechtigungen für den Zugriff auf den Amazon S3 S3-Bucket, aus dem Daten abgerufen werden. Fügen Sie jeden Bucket, aus dem Daten abgerufen werden, zur Resource Liste hinzu.

      • Wenn Sie S3-Speicherknoten einbeziehen, benötigen Sie Berechtigungen, um in den Amazon S3 S3-Bucket zu schreiben, in dem die Ausgabedaten gespeichert werden. Fügen Sie jeden Bucket, in den Daten geschrieben werden, zur Resource Liste hinzu.

      • Wenn Sie Leitplanken für einen Wissensdatenbankknoten oder einen Prompt-Knoten einbeziehen, benötigen Sie Berechtigungen, um die Leitplanken in einem Flow anzuwenden. Fügen Sie der Liste alle Leitplanken hinzu, die im Flow verwendet werden. Resource

      • Wenn Sie Lambda-Knoten einbeziehen, benötigen Sie Berechtigungen, um die Lambda-Funktion aufzurufen. Fügen Sie jede Lambda-Funktion, die aufgerufen werden muss, zur Resource Liste hinzu.

      • Wenn Sie Amazon Lex Lex-Knoten einbeziehen, benötigen Sie Berechtigungen, um den Amazon Lex Lex-Bot zu verwenden. Fügen Sie jeden Bot-Alias, der verwendet werden muss, zur Resource Liste hinzu.

      • Wenn Sie eine in einem Flow aufgerufene Ressource verschlüsselt haben, benötigen Sie Berechtigungen zum Entschlüsseln des Schlüssels. Fügen Sie jeden Schlüssel zur Liste hinzu. Resource

  • Wenn Sie den Flow verschlüsseln, müssen Sie dem Schlüssel, mit dem Sie den Flow verschlüsseln, auch eine KMS Schlüsselrichtlinie hinzufügen.

Anmerkung

Die folgenden Änderungen wurden kürzlich implementiert:

  • Zuvor AWS Lambda wurden Amazon Lex Lex-Ressourcen mithilfe des Amazon Bedrock Service Principal aufgerufen. Dieses Verhalten ändert sich für Flows, die nach dem 22.11.2024 erstellt wurden, und die Amazon Bedrock Flows-Servicerolle wird verwendet, um die AWS Lambda Ressourcen und Amazon Lex-Ressourcen aufzurufen. Wenn Sie vor dem 22.11.2024 Flows erstellt haben, die eine dieser Ressourcen verwenden, sollten Sie Ihre Amazon Bedrock Flows-Servicerollen mit AWS Lambda und Amazon Lex Lex-Berechtigungen aktualisieren.

  • Bisher wurden Ressourcen zur Prompt-Verwaltung mithilfe der Aktion gerendert. bedrock:GetPrompt Dieses Verhalten ändert sich für Flows, die nach dem 22.11.2024 erstellt wurden, und die bedrock:RenderPrompt Aktion wird zum Rendern der Prompt-Ressource verwendet. Wenn Sie vor dem 22.11.2024 Flows erstellt haben, die eine Prompt-Ressource verwenden, sollten Sie Ihre Amazon Bedrock Flows-Servicerollen mit Berechtigungen aktualisieren. bedrock:RenderPrompt

Wenn Sie eine Servicerolle verwenden, die Amazon Bedrock automatisch für Sie in der Konsole erstellt hat, hängt Amazon Bedrock die korrigierten Berechtigungen dynamisch an, wenn Sie den Flow speichern.

Vertrauensstellung

Fügen Sie der Flow-Ausführungsrolle die folgende Vertrauensrichtlinie hinzu, damit Amazon Bedrock diese Rolle übernehmen und einen Flow verwalten kann. Ersetzen Sie die nach values Bedarf. Die Richtlinie enthält optionale Bedingungsschlüssel (siehe Bedingungsschlüssel für Amazon Bedrock und AWS globale Bedingungskontextschlüssel) in dem Condition Feld, deren Verwendung wir aus Sicherheitsgründen empfehlen.

Anmerkung

Es hat sich bewährt, die * durch eine Flow-ID zu ersetzen, nachdem Sie sie erstellt haben.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "FlowsTrustBedrock", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "${account-id}" }, "ArnLike": { "AWS:SourceArn": "arn:aws:bedrock:${region}:${account-id}:flow/*" } } } ] }

Identitätsbasierte Berechtigungen für die Flows-Dienstrolle.

Fügen Sie die folgende Richtlinie hinzu, um Berechtigungen für die Servicerolle bereitzustellen, und ersetzen Sie values sie bei Bedarf. Die Richtlinie enthält die folgenden Aussagen. Lassen Sie eine Aussage weg, wenn sie auf Ihren Anwendungsfall nicht zutrifft. Die Richtlinie enthält optionale Bedingungsschlüssel (siehe Bedingungsschlüssel für Amazon Bedrock und AWS globale Bedingungskontextschlüssel) in dem Condition Feld, deren Verwendung wir aus Sicherheitsgründen empfehlen.

  • Zugriff auf die Amazon Bedrock-Basismodelle, die der Flow verwenden wird. Fügen Sie jedes Modell, das im Flow verwendet wird, zur Resource Liste hinzu.

  • Wenn Sie ein Modell mithilfe von Provisioned Throughput aufrufen, Berechtigungen für den Zugriff auf das bereitgestellte Modell und dessen Aufruf. Fügen Sie jedes Modell, das im Flow verwendet wird, der Liste hinzu. Resource

  • Wenn Sie ein benutzerdefiniertes Modell aufrufen, Berechtigungen für den Zugriff und das Aufrufen des benutzerdefinierten Modells. Fügen Sie jedes Modell, das im Flow verwendet wird, der Liste hinzu. Resource

  • Berechtigungen, die auf den Knoten basieren, die Sie dem Flow hinzufügen:

    • Wenn Sie Prompt-Knoten einbeziehen, die Prompts aus der Prompt-Verwaltung verwenden, benötigen Sie Berechtigungen für den Zugriff auf die Aufforderung. Fügen Sie alle Eingabeaufforderungen, die im Flow verwendet werden, der Resource Liste hinzu.

    • Wenn Sie Knotenpunkte in der Wissensdatenbank einbeziehen, benötigen Sie Berechtigungen, um die Wissensdatenbank abzufragen. Fügen Sie jede Wissensdatenbank, die im Flow abgefragt wird, der Liste hinzu. Resource

    • Wenn Sie Agentenknoten einbeziehen, benötigen Sie Berechtigungen, um einen Alias des Agenten aufzurufen. Fügen Sie jeden Agenten, der im Flow aufgerufen wird, der Liste hinzu. Resource

    • Wenn Sie S3-Abrufknoten einbeziehen, benötigen Sie Berechtigungen für den Zugriff auf den Amazon S3 S3-Bucket, aus dem Daten abgerufen werden. Fügen Sie jeden Bucket, aus dem Daten abgerufen werden, zur Resource Liste hinzu.

    • Wenn Sie S3-Speicherknoten einbeziehen, benötigen Sie Berechtigungen, um in den Amazon S3 S3-Bucket zu schreiben, in dem die Ausgabedaten gespeichert werden. Fügen Sie jeden Bucket, in den Daten geschrieben werden, zur Resource Liste hinzu.

    • Wenn Sie Leitplanken für einen Wissensdatenbankknoten oder einen Prompt-Knoten einbeziehen, benötigen Sie Berechtigungen, um die Leitplanken in einem Flow anzuwenden. Fügen Sie der Liste alle Leitplanken hinzu, die im Flow verwendet werden. Resource

    • Wenn Sie Lambda-Knoten einbeziehen, benötigen Sie Berechtigungen, um die Lambda-Funktion aufzurufen. Fügen Sie jede Lambda-Funktion, die aufgerufen werden muss, zur Resource Liste hinzu.

    • Wenn Sie Amazon Lex Lex-Knoten einbeziehen, benötigen Sie Berechtigungen, um den Amazon Lex Lex-Bot zu verwenden. Fügen Sie jeden Bot-Alias, der verwendet werden muss, zur Resource Liste hinzu.

    • Wenn Sie eine in einem Flow aufgerufene Ressource verschlüsselt haben, benötigen Sie Berechtigungen zum Entschlüsseln des Schlüssels. Fügen Sie jeden Schlüssel zur Liste hinzu. Resource

{ "Version": "2012-10-17", "Statement": [ { "Sid": "InvokeModel", "Effect": "Allow", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:${region}::foundation-model/${model-id}" ] }, { "Sid": "InvokeProvisionedThroughput", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:GetProvisionedModelThroughput" ], "Resource": [ "arn:aws:bedrock:${region}:${account-id}:provisioned-model/${model-id}" ] }, { "Sid": "InvokeCustomModel", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:GetCustomModel" ], "Resource": [ "arn:aws:bedrock:${region}:${account-id}:custom-model/${model-id}" ] }, { "Sid": "UsePromptFromPromptManagement", "Effect": "Allow", "Action": [ "bedrock:RenderPrompt" ], "Resource": [ "arn:aws:bedrock:${region}:${account-id}:prompt/${prompt-id}" ] }, { "Sid": "QueryKnowledgeBase", "Effect": "Allow", "Action": [ "bedrock:Retrieve", "bedrock:RetrieveAndGenerate" ], "Resource": [ "arn:aws:bedrock:${region}:${account-id}:knowledge-base/knowledge-base-id" ] }, { "Sid": "InvokeAgent", "Effect": "Allow", "Action": [ "bedrock:InvokeAgent" ], "Resource": [ "arn:aws:bedrock:${region}:${account-id}:agent-alias/${agent-alias-id}" ] }, { "Sid": "AccessS3Bucket", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::${bucket-name}/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${account-id}" } } }, { "Sid": "WriteToS3Bucket", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::${bucket-name}", "arn:aws:s3:::${bucket-name}/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${account-id}" } } }, { "Sid": "GuardrailPermissions", "Effect": "Allow", "Action": "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:${Partition}:bedrock:${Region}:${Account}:guardrail/${GuardrailId}" ] }, { "Sid": "LambdaPermissions", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:${region}:${account-id}:function:${function-name}" ] }, { "Sid": "AmazonLexPermissions", "Effect": "Allow", "Action": [ "lex:RecognizeUtterance" ], "Resource": [ "arn:aws:lex:${region}:${account-id}:bot-alias/${bot-id}/${bot-alias-id}" ] }, { "Sid": "KMSPermissions", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${region}:${account-id}:key/${key-id}" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${account-id}" } } } ] }

Wichtige Richtlinie, die es Amazon Bedrock ermöglicht, einen Datenfluss zu verschlüsseln und zu entschlüsseln

Folgen Sie den Schritten unter Erstellen einer Schlüsselrichtlinie und hängen Sie die folgende Schlüsselrichtlinie an einen KMS Schlüssel an, damit Amazon Bedrock einen Datenfluss mit dem Schlüssel ver- und entschlüsseln kann und den Schlüssel nach Bedarf ersetzt. values Die Richtlinie enthält optionale Bedingungsschlüssel (siehe Bedingungsschlüssel für Amazon Bedrock und AWS globale Bedingungskontextschlüssel) in dem Condition Feld, deren Verwendung wir aus Sicherheitsgründen empfehlen.

{ "Sid": "EncryptFlowKMS", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:bedrock-flows:arn": "arn:${partition}:bedrock:${region}:${account-id}:flow/${flow-id}" } } }