View a markdown version of this page

Amazon S3 - 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.

Amazon S3

Amazon S3 ist ein Objektspeicherdienst, der Daten als Objekte in Buckets speichert. Sie können einen Amazon S3-Bucket als Datenquelle für Ihre verwaltete Wissensdatenbank verbinden, um die dort gespeicherten Objekte aufzunehmen.

Unterstützte Features

  • Dokumentieren Sie Metadatenfelder mithilfe separater Metadatendateien

  • Inhaltsfilter für Aufnahme und Ausschluss mithilfe von Dateimustern und S3-Schlüsselpräfixen

  • Inkrementelle Inhaltssynchronisierungen für hinzugefügte, aktualisierte und gelöschte Inhalte

  • Cross-account Zugriff auf Amazon S3-Buckets

  • Document-level Zugriffskontrolle (ACLs) mit vom Kunden bereitgestellten ACL-Dateien

Voraussetzungen

Stellen Sie in Amazon S3 Folgendes sicher:

  • Notieren Sie sich den Amazon S3-Bucket-Namen und die AWS Konto-ID des Bucket-Besitzers. Bei dem Bucket muss es sich um einen Allzweck-Bucket in derselben AWS Region wie Ihre Wissensdatenbank handeln, und Sie müssen berechtigt sein, darauf zuzugreifen.

  • Wenn sich der Bucket in einem anderen AWS Konto als in der Wissensdatenbank befindet oder wenn er mit einem vom Kunden verwalteten KMS-Schlüssel verschlüsselt ist, konfigurieren Sie die Bucket-Richtlinie und (falls zutreffend) die KMS-Schlüsselrichtlinie so, dass der Zugriff von Ihrer Knowledge Base-Servicerolle aus möglich ist. Siehe Bucket-Richtlinien für den kontoübergreifenden Zugriff KMS-encrypted.

Stellen Sie in Ihrem AWS Konto sicher, dass Sie:

  • Nehmen Sie die erforderlichen Berechtigungen zum Herstellen einer Verbindung zu Ihrer Datenquelle in Ihre AWS Identity and Access Management (IAM-) role/permissions Richtlinie für Ihre Wissensdatenbank auf. Informationen zu den erforderlichen Berechtigungen finden Sie unterBerechtigungen für den Zugriff auf Ihre Datenquellen.

Bucket-Richtlinien für den kontoübergreifenden Zugriff KMS-encrypted

Wenn sich Ihr Amazon S3-Bucket in einem anderen AWS Konto als Ihrer Wissensdatenbank befindet oder wenn er mit einem vom Kunden verwalteten KMS-Schlüssel verschlüsselt ist, fügen Sie eine ressourcenbasierte Richtlinie hinzu, um Ihrer Wissensdatenbank-Servicerolle Zugriff zu gewähren. Die folgenden Beispiele zeigen die erforderlichen Mindestanweisungen.

Cross-account Bucket-Richtlinie

Fügen Sie in dem Konto, dem der Amazon S3-Bucket gehört, die folgende Anweisung zur Bucket-Richtlinie hinzu. kb-account-idErsetzen Sie durch die Konto-ID, unter der Ihre Wissensdatenbank erstellt wurde, kb-service-role durch den Namen Ihrer Wissensdatenbank-Servicerolle und bucket-name durch Ihren Bucket-Namen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBedrockKnowledgeBaseAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::kb-account-id:role/kb-service-role" }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }

Eine allgemeinere Anleitung finden Sie unter Konfigurieren des Zugriffs auf Amazon S3-Buckets.

KMS-Schlüsselrichtlinie für verschlüsselte Buckets

Wenn Ihr Amazon S3-Bucket mit einem vom Kunden verwalteten KMS-Schlüssel verschlüsselt ist, fügen Sie der Schlüsselrichtlinie die folgende Anweisung hinzu. Verwenden Sie dieselben Platzhalter wie in der kontoübergreifenden Bucket-Richtlinie. Warten Sie ein paar Minuten, bis wichtige Richtlinienänderungen wirksam werden.

{ "Sid": "AllowBedrockKnowledgeBaseKmsAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::kb-account-id:role/kb-service-role" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }

Die "Resource": "*" hier aufgeführten Gültigkeitsbereiche beziehen sich auf den Schlüssel, dem die Richtlinie zugeordnet ist.

Wie richte ich eine Amazon S3-Datenquelle ein

Das Einrichten einer Amazon S3-Datenquelle umfasst die folgenden Schritte:

  1. Bereite deinen Eimer vor. Bestätigen Sie den Bucket-Namen, die Konto-ID und (für den kontoübergreifenden Zugriff) die Bucket-Richtlinie. Wenn Sie Dokument-Metadaten verwenden möchten, entscheiden Sie sich für das Amazon S3-Präfix, in dem sich Ihre .metadata.json Dateien befinden.

  2. Verbinden Sie die Datenquelle. Erstellen Sie die Amazon S3-Datenquelle in der Wissensdatenbank mithilfe der AWS-Managementkonsole oder der API. Siehe Erstellen Sie die Datenquelle.

  3. (Optional) Aktivieren Sie die Zugriffskontrolle auf Dokumentebene. Filtern Sie Abfrageergebnisse nach Benutzerberechtigungen, die in vom Kunden bereitgestellten ACL-Dateien definiert sind. Siehe Document-level Zugriffskontrollen.

Erstellen Sie die Datenquelle

Console
Um einen Amazon S3-Bucket mit Ihrer verwalteten Wissensdatenbank zu verbinden
  1. Geben Sie unter Datenquelle einen Namen für Ihre Datenquelle ein.

  2. Wählen Sie Amazon S3 aus dem Drop-down-Menü für die Datenquelle aus.

  3. Wählen Sie unter Speicherort der Datenquelle aus, ob sich der Amazon S3-Bucket unter „Dieses AWS-Konto“ oder „Anderes AWS-Konto“ befindet.

  4. Geben Sie die Amazon S3-URI Ihres Buckets ein. Sie können Browse S3 wählen, um einen Bucket auszuwählen.

  5. (Optional) Geben Sie ein Präfix für Metadatendateien ein — das Amazon S3-Präfix, in dem Dokument-Metadatendateien (.metadata.json) für diese Datenquelle gespeichert werden.

  6. (Optional) Erweitern Sie die Filtermuster für S3-Präfixe, um bestimmte Pfade einzubeziehen oder auszuschließen.

  7. (Optional) Erweitern Sie Dateifiltermuster, um Regex-Muster hinzuzufügen, die bestimmte Dateien ein- oder ausschließen.

  8. (Optional) Um die Zugriffskontrolle auf Dokumentebene zu aktivieren, wählen Sie Dokumentenzugriff mit ACLs kontrollieren aus und geben Sie die Amazon S3-URI Ihrer globalen ACL-Datei an. Diese Option kann nach der Erstellung nicht geändert werden. Details hierzu finden Sie unter Document-level Zugriffskontrollen.

API

Um eine Amazon S3-Datenquelle zu erstellen, senden Sie eine CreateDataSource Anfrage an einen Build-Time-Endpunkt für Agents for Amazon Bedrock. Das folgende AWS Command Line Interface Beispiel erstellt eine Datenquelle für einen Bucket im selben Konto mit Präfix- und Musterfiltern. Eine Beschreibung der einzelnen Felder finden Sie in der folgenden Referenz zu den Connector-Parametern.

aws bedrock-agent create-data-source \ --name "S3-connector" \ --knowledge-base-id "your-knowledge-base-id" \ --data-source-configuration file://s3-managed-connector.json

Die s3-managed-connector.json Datei enthält Folgendes:

{ "type": "MANAGED_KNOWLEDGE_BASE_CONNECTOR", "managedKnowledgeBaseConnectorConfiguration": { "connectorParameters": { "type": "S3", "version": "1", "connectionConfiguration": { "bucketName": "my-knowledge-base-bucket", "bucketOwnerAccountId": "123456789012" }, "filterConfiguration": { "inclusionPrefixes": ["documents/"], "inclusionPatterns": [".*\\.pdf", ".*\\.txt"], "exclusionPatterns": [".*\\.tmp"] }, "metadataFilesPrefix": "metadata/" } } }

Um die Zugriffskontrolle auf Dokumentebene zu aktivieren, setzen Sie aclEnabled auf true und fügen Sie ein aclConfiguration mit hinzu. globalAccessControlListS3Uri Siehe Document-level Zugriffskontrollen.

Bei verwalteten Wissensdatenbanken CreateDataSource ist dies asynchron: Der Status der Datenquelle wechselt von CREATING zu, AVAILABLE wenn der Vorgang abgeschlossen ist.

Connector-Parameter

Die Datenquellenkonfiguration verwendet die folgenden Connector-Parameter. Um eine Verbindung zu Amazon S3 herzustellen, geben Sie S3 als Connector Folgendes einconnectorParameters. Informationen zu Feldern, die connectorParameters umbrechen (wie deletionProtectionConfiguration undmediaExtractionConfiguration), finden Sie unterVerbinden einer Datenquelle.

connectionConfiguration
Feld Erforderlich Beschreibung
bucketName Ja Der Name des Amazon S3-Buckets.
bucketOwnerAccountId Bedingt Die AWS Konto-ID des Bucket-Besitzers. Erforderlich für den kontoübergreifenden Zugriff.
Filterkonfiguration (optional)
Feld Erforderlich Description
inclusionPrefixes Nein Liste der einzuschließenden Amazon S3-Schlüsselpräfixe (z. B.documents/).
exclusionPrefixes Nein Liste der Amazon S3-Schlüsselpräfixe, die ausgeschlossen werden sollen (z. B.archive/).
inclusionPatterns Nein Liste regulärer Ausdrücke. Nur Objekte, deren Schlüssel mindestens einem Muster entsprechen, werden aufgenommen.
exclusionPatterns Nein Liste regulärer Ausdrücke. Objekte, deren Schlüssel einem Muster entsprechen, werden nicht aufgenommen.
maxFileSizeInMegaBytes Nein Maximale Größe in Megabyte jeder einzelnen Datei, die der Connector aufnimmt. Geben Sie eine numerische Zeichenfolge an (z. B.). "500" Standardeinstellung: "500".
Top-level Connector-Parameter (optional)
Feld Erforderlich Description
metadataFilesPrefix Nein Das Amazon S3-Präfix, in dem die Metadatendateien des Dokuments (.metadata.json) gespeichert werden.
aclEnabled Nein Stellen Sie diese Option auf true ein, um die Zugriffskontrolle auf Dokumentebene zu aktivieren. Sie können diese Einstellung nicht ändern, nachdem Sie die Datenquelle erstellt haben. Details hierzu finden Sie unter Document-level Zugriffskontrollen.
aclConfiguration Bedingt Enthält globalAccessControlListS3Uri — die Amazon S3-URI einer JSON-Datei, die Schlüsselpräfixe Zugriffskontrolleinträgen zuordnet. Erforderlich, wenn aclEnabled es isttrue; wird ignoriert, wenn aclEnabled es istfalse. Siehe Document-level Zugriffskontrollen.

Metadatendateien des Dokuments

Sie können Metadaten an jedes Dokument anhängen, indem Sie neben dem Dokument eine Sidecar-Datei hochladen. Erstellen Sie für jedes Dokument eine Datei, die filename.extension.metadata.json im gleichen Amazon S3-Pfad benannt ist. Die Metadatendatei darf 10 KB nicht überschreiten. Laden Sie report.pdf beispielsweise gleichzeitig report.pdf.metadata.json den folgenden Inhalt hoch:

{ "metadataAttributes": { "company": { "value": { "type": "STRING", "stringValue": "BioPharm Innovations" } }, "created_date": { "value": { "type": "NUMBER", "numberValue": 20221205 } }, "author": { "value": { "type": "STRING", "stringValue": "Lisa Thompson" } } } }

Informationen zu den unterstützten Attributdatentypen und den Filteroperatoren, die Sie bei der Abfrage anwenden können, finden Sie unter Metadaten und Filterung.