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.
Wenn Sie eine Amazon Bedrock-Wissensdatenbank mit einem strukturierten Datenspeicher verbinden möchten, müssen Sie die in diesem Thema beschriebenen Voraussetzungen erfüllen.
Wichtig
Die Ausführung beliebiger SQL-Abfragen kann ein Sicherheitsrisiko für jede Text-to-SQL Anwendung darstellen. Es wird empfohlen, bei Bedarf Vorsichtsmaßnahmen zu treffen, z. B. eingeschränkte Rollen, schreibgeschützte Datenbanken und Sandboxing zu verwenden.
Lesen Sie sich die folgenden Themen durch, um sicherzustellen, dass Sie alle erforderlichen Berechtigungen eingerichtet haben.
Themen
Berechtigungen für Ihre Amazon Bedrock Knowledge Bases-Servicerolle erstellen und einrichten
Gewähren Sie der Rolle, die Sie für die Authentifizierung verwenden, Datenbankzugriff
(Wenn Ihre Daten gespeichert sind AWS Glue Data Catalog) Zusätzliche erforderliche Berechtigungen
Beantragen Sie Zugriff auf Basismodelle für RetrieveAndGenerate
Eine Amazon Redshift Redshift-Abfrage-Engine einrichten
Amazon Bedrock Knowledge Bases verwendet Amazon Redshift als Abfrage-Engine für die Abfrage Ihres Datenspeichers. Wenn sich Ihre Daten bereits in einer von Amazon Redshift bereitgestellten oder serverlosen Abfrage-Engine befinden, können Sie diese Voraussetzung überspringen. Andernfalls richten Sie eine der folgenden Arten von Abfrage-Engines ein:
Um eine Abfrage-Engine in Amazon Redshift einzurichten, bereitgestellt
-
Folgen Sie dem Verfahren in Schritt 1: Erstellen eines Amazon Redshift-Beispiel-Clusters im Amazon Redshift Getting Started Guide.
-
Notieren Sie sich die Cluster-ID.
-
(Optional) Weitere Informationen zu von Amazon Redshift bereitgestellten Clustern finden Sie unter Bereitgestellte Amazon Redshift-Cluster im Amazon Redshift Management Guide.
So richten Sie eine Abfrage-Engine in Amazon Redshift Serverless ein
-
Folgen Sie nur dem Einrichtungsverfahren unter Creating a Data Warehouse with Amazon Redshift Serverless im Amazon Redshift Getting Started Guide und konfigurieren Sie es mit Standardeinstellungen.
-
Notieren Sie sich den ARN der Arbeitsgruppe.
-
(Optional) Weitere Informationen zu Amazon Redshift Serverless-Arbeitsgruppen finden Sie unter Arbeitsgruppen und Namespaces im Amazon Redshift Management Guide.
Sammeln Sie Informationen über Ihre Datenbank
Stellen Sie sicher, dass Ihre Daten in einem der folgenden unterstützten strukturierten Datenspeicher gespeichert sind:
Amazon Redshift
AWS Glue Data Catalog (AWS Lake Formation)
Anmerkung
Wenn sich Ihre Daten nicht in einer der oben genannten Datenquellen befinden, sondern in einem Datenspeicher, von dem das Crawlen unterstützt wird AWS Glue, können Sie einen Crawler einrichten, der Ihren Datenspeicher in eine AWS Glue Tabelle schreibt. Folgen Sie dazu den Schritten unter Konfiguration eines Crawlers im AWS Glue Entwicklerhandbuch.
Beachten Sie bei der Erstellung der Wissensdatenbank die folgenden Informationen:
-
Wenn Ihre Daten in einer Amazon Redshift Redshift-Datenbank gespeichert sind, notieren Sie sich den Namen der Datenbank.
-
Wenn Ihre Daten in AWS Glue Data Catalog (Amazon SageMaker AI Lakehouse) gespeichert sind, notieren Sie sich die Namen der Tabellen, auf die Ihre Wissensdatenbank Zugriff haben soll.
Ordnen Sie Ihrer Benutzerrolle Berechtigungen zu
Damit eine IAM-Rolle Aktionen im Zusammenhang mit Amazon Bedrock Knowledge Bases ausführen kann, müssen Sie der Rolle Richtlinien zuordnen, die Berechtigungen zur Ausführung der Aktionen gewähren. In diesem Thema werden Berechtigungen beschrieben, die es einem Benutzer ermöglichen, eine Wissensdatenbank zu erstellen und zu verwalten, die mit einem strukturierten Datenspeicher verbunden ist. Außerdem werden Berechtigungen beschrieben, die es einem Benutzer ermöglichen, Informationen aus diesen Wissensdatenbanken abzurufen und daraus Antworten zu generieren.
Erweitern Sie die folgenden Abschnitte, um zu erfahren, wie Sie Berechtigungen für bestimmte Anwendungsfälle einrichten:
Damit eine IAM-Rolle eine Wissensdatenbank erstellen, sie mit einem strukturierten Datenspeicher verbinden, die Wissensdatenbank verwalten und Aufnahmeaufträge von der Datenquelle bis zur Wissensdatenbank starten und verwalten kann, müssen Sie Berechtigungen für die Aktionen KnowledgeBase
DataSource
, und bereitstellen. IngestionJob
Anmerkung
Wenn der Rolle die AmazonBedrockFullAccess AWS verwaltete Richtlinie zugewiesen ist, können Sie diese Voraussetzung überspringen.
Wenn Sie Berechtigungen für das Markieren von Wissensdatenbanken bereitstellen möchten, müssen Sie auch Berechtigungen für bedrock:TagResource
und angebenbedrock:UntagResource
. Damit eine Rolle diese Aktionen ausführen kann, fügen Sie der Rolle die folgende Richtlinie hinzu:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CreateKB",
"Effect": "Allow",
"Action": [
"bedrock:CreateKnowledgeBase"
],
"Resource": "*"
},
{
"Sid": "KBDataSourceManagement",
"Effect": "Allow",
"Action": [
"bedrock:GetKnowledgeBase",
"bedrock:ListKnowledgeBases",
"bedrock:UpdateKnowledgeBase",
"bedrock:DeleteKnowledgeBase",
"bedrock:StartIngestionJob",
"bedrock:GetIngestionJob",
"bedrock:ListIngestionJobs",
"bedrock:StopIngestionJob",
"bedrock:TagResource",
"bedrock:UntagResource"
],
"Resource": [
"arn:${Partition}
:bedrock:${Region}
:${Account}
:knowledge-base/*
"
]
}
]
}
Nachdem Sie eine Wissensdatenbank erstellt haben, empfehlen wir, die Berechtigungen in der KBDataSourceManagement
Anweisung nach unten zu beschränken, indem Sie den Platzhalter (*
) durch die ID der Wissensdatenbank ersetzen, die Sie erstellt haben.
Damit eine IAM-Rolle eine Wissensdatenbank abfragen kann, die mit einem strukturierten Datenspeicher verbunden ist, fügen Sie der Rolle die folgende Richtlinie hinzu:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GetKB",
"Effect": "Allow",
"Action": [
"bedrock:GetKnowledgeBase"
],
"Resource": [
"arn:${Partition}
:bedrock:${Region}
:${Account}
:knowledge-base/${KnowledgeBaseId}
"
]
},
{
"Sid": "GenerateQueryAccess",
"Effect": "Allow",
"Action": [
"bedrock:GenerateQuery",
"sqlworkbench:GetSqlRecommendations"
],
"Resource": "*"
},
{
"Sid": "Retrieve",
"Effect": "Allow",
"Action": [
"bedrock:Retrieve",
]
"Resource": [
"arn:${Partition}
:bedrock:${Region}
:${Account}
:knowledge-base/${KnowledgeBaseId}
"
]
},
{
"Sid": "RetrieveAndGenerate",
"Effect": "Allow",
"Action": [
"bedrock:RetrieveAndGenerate",
]
"Resource": [
"*"
]
}
]
}
Je nach Anwendungsfall können Sie Anweisungen entfernen, die Sie nicht benötigen:
-
Die
GenerateQuery
AnweisungenGetKB
und müssen aufgerufen werden, GenerateQueryum SQL-Abfragen zu generieren, die Benutzerabfragen und Ihre verbundene Datenquelle berücksichtigen. -
Die
Retrieve
Anweisung ist zum Aufrufen erforderlich Retrieveum Daten aus Ihrem strukturierten Datenspeicher abzurufen. -
Die
RetrieveAndGenerate
Anweisung ist für den Anruf erforderlich RetrieveAndGenerateum Daten aus Ihrem strukturierten Datenspeicher abzurufen und Antworten auf der Grundlage der Daten zu generieren.
Um die Berechtigungen weiter einzuschränken, können Sie Aktionen auslassen oder Ressourcen und Bedingungsschlüssel angeben, nach denen Berechtigungen gefiltert werden sollen. Weitere Informationen zu Aktionen, Ressourcen und Bedingungsschlüsseln finden Sie unter den folgenden Themen in der Service Authorization Reference:
-
Von Amazon Bedrock definierte Aktionen — Erfahren Sie mehr über Aktionen, die Ressourcentypen, auf die Sie sie im
Resource
Feld beschränken können, und die Bedingungsschlüssel, nach denen Sie Berechtigungen imCondition
Feld filtern können. -
Von Amazon Bedrock definierte Ressourcentypen — Erfahren Sie mehr über die Ressourcentypen in Amazon Bedrock.
-
Zustandsschlüssel für Amazon Bedrock — Erfahren Sie mehr über die Zustandsschlüssel in Amazon Bedrock.
Berechtigungen für Ihre Amazon Bedrock Knowledge Bases-Servicerolle erstellen und einrichten
Amazon Bedrock Knowledge Bases verwendet eine Service-Rolle, um Wissensdatenbanken mit strukturierten Datenspeichern zu verbinden, Daten aus diesen Datenspeichern abzurufen und SQL-Abfragen auf der Grundlage von Benutzeranfragen und der Struktur der Datenspeicher zu generieren.
Anmerkung
Wenn Sie planen, mit dem eine Wissensdatenbank AWS Management Console zu erstellen, können Sie diese Voraussetzung überspringen. Die Konsole erstellt eine Amazon Bedrock Knowledge Bases-Servicerolle mit den entsprechenden Berechtigungen.
Um eine benutzerdefinierte IAM-Servicerolle mit den entsprechenden Berechtigungen zu erstellen, folgen Sie den Schritten unter Erstellen Sie eine Rolle, um Berechtigungen an eine zu delegieren AWS-Service und die unter definierte Vertrauensstellung anzuhängen. Vertrauensstellung
Fügen Sie anschließend Berechtigungen für Ihre Wissensdatenbank hinzu, um auf Ihre Amazon Redshift Redshift-Abfrage-Engine und Datenbanken zuzugreifen. Erweitern Sie den Abschnitt, der für Ihren Anwendungsfall gilt:
Fügen Sie Ihrer benutzerdefinierten Servicerolle die folgende Richtlinie hinzu, damit sie auf Ihre Daten zugreifen und damit Abfragen generieren kann:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "RedshiftDataAPIStatementPermissions",
"Effect": "Allow",
"Action": [
"redshift-data:GetStatementResult",
"redshift-data:DescribeStatement",
"redshift-data:CancelStatement"
],
"Resource": [
"*"
],
"Condition": {
"StringEquals": {
"redshift-data:statement-owner-iam-userid": "${aws:userid}
"
}
}
},
{
"Sid": "RedshiftDataAPIExecutePermissions",
"Effect": "Allow",
"Action": [
"redshift-data:ExecuteStatement"
],
"Resource": [
"arn:aws:redshift:${Region}
:${Account}
:cluster:${Cluster}
"
]
},
{
"Sid": "SqlWorkbenchAccess",
"Effect": "Allow",
"Action": [
"sqlworkbench:GetSqlRecommendations",
"sqlworkbench:PutSqlGenerationContext",
"sqlworkbench:GetSqlGenerationContext",
"sqlworkbench:DeleteSqlGenerationContext"
],
"Resource": "*"
},
{
"Sid": "GenerateQueryAccess",
"Effect": "Allow",
"Action": [
"bedrock:GenerateQuery"
],
"Resource": "*"
}
]
}
Sie müssen außerdem Berechtigungen hinzufügen, damit sich Ihre Servicerolle bei der Abfrage-Engine authentifizieren kann. Erweitern Sie einen Abschnitt, um die Berechtigungen für den Anwendungsfall anzuzeigen.
Damit sich Ihre Servicerolle bei Ihrer von Amazon Redshift bereitgestellten Abfrage-Engine mit IAM authentifizieren kann, fügen Sie Ihrer benutzerdefinierten Servicerolle die folgende Richtlinie bei:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GetCredentialsWithFederatedIAMCredentials",
"Effect": "Allow",
"Action": "redshift:GetClusterCredentialsWithIAM",
"Resource": [
"arn:aws:redshift:${region}
:${account}
:dbname:${cluster}
/${database}
"
]
}
}
Anmerkung
Wenn Ihre Daten in AWS Glue Data Catalog gespeichert sind, ersetzen Sie sie durch. ${database}
dev
Um sich als Amazon Redshift Redshift-Datenbankbenutzer zu authentifizieren, fügen Sie der Servicerolle die folgende Richtlinie hinzu:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GetCredentialsWithClusterCredentials",
"Effect": "Allow",
"Action": [
"redshift:GetClusterCredentials"
],
"Resource": [
"arn:aws:redshift:${region}
:${account}
:dbuser:${cluster}
/${dbuser}
",
"arn:aws:redshift:${region}
:${account}
:dbname:${cluster}
/${database}
"
]
}
]
}
Gehen Sie wie folgt vor, damit sich Ihre Servicerolle bei Ihrer von Amazon Redshift bereitgestellten Abfrage-Engine mit einem AWS Secrets Manager geheimen Schlüssel authentifizieren kann:
-
Fügen Sie der Rolle die folgende Richtlinie hinzu:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetSecretPermissions", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:
${region}
:${account}
:secret:${secretName}
" ] } ] }
Die Berechtigungen zum Anhängen hängen hängen von Ihrer Authentifizierungsmethode ab. Erweitern Sie einen Abschnitt, um die Berechtigungen für den Anwendungsfall zu sehen.
Damit sich Ihre Servicerolle bei Ihrer von Amazon Redshift bereitgestellten Abfrage-Engine mit IAM authentifizieren kann, fügen Sie Ihrer benutzerdefinierten Servicerolle die folgende Richtlinie bei:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "RedshiftServerlessGetCredentials",
"Effect": "Allow",
"Action": "redshift-serverless:GetCredentials",
"Resource": [
"arn:aws:redshift-serverless:${Region}
:${Account}
:workgroup:${WorkgroupId}
"
]
}
}
Gehen Sie wie folgt vor, damit sich Ihre Servicerolle bei Ihrer von Amazon Redshift bereitgestellten Abfrage-Engine mit einem AWS Secrets Manager geheimen Schlüssel authentifizieren kann:
-
Fügen Sie der Rolle die folgende Richtlinie hinzu:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetSecretPermissions", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:
${region}
:${account}
:secret:${secretName}
" ] } ] }
Gewähren Sie der Rolle, die Sie für die Authentifizierung verwenden, Datenbankzugriff
Um der Rolle, die Sie für die Authentifizierung verwenden, mit dem Amazon Redshift Query Editor v2 Datenbankzugriff zu gewähren, führen Sie die folgenden SQL-Befehle aus:
-
(Wenn Sie sich mit IAM authentifizieren und noch kein Benutzer für Ihre Datenbank erstellt wurde) Führen Sie den folgenden Befehl aus, der CREATE USER verwendet, um einen Datenbankbenutzer zu erstellen und ihm die Authentifizierung über IAM zu ermöglichen, und
${service-role}
ersetzen Sie ihn durch den Namen der benutzerdefinierten Amazon Bedrock Knowledge Bases-Servicerolle, die Sie erstellt haben:CREATE USER "IAMR:
${service-role}
" WITH PASSWORD DISABLE;Wichtig
Wenn Sie die für Sie in der Konsole erstellte Amazon Bedrock Knowledge Bases-Servicerolle verwenden und dann Ihren Datenspeicher synchronisieren, bevor Sie diesen Schritt ausführen, wird der Benutzer für Sie erstellt, aber die Synchronisierung schlägt fehl, da dem Benutzer keine Zugriffsberechtigungen für Ihren Datenspeicher erteilt wurden. Vor der Synchronisierung müssen Sie den folgenden Schritt ausführen.
-
Erteilen Sie dem Datenbankbenutzer Berechtigungen zum Abrufen von Informationen aus Ihrer Datenbank, indem Sie den Befehl GRANT ausführen. Sie können den Bereich auf bestimmte Datenbanken, Tabellen oder Zeilen oder Spalten in Tabellen beschränken, indem Sie
${tableName}
oder ersetzen${dbName}
.Führen Sie den Befehl aus, der dem Dienst entspricht, in dem Ihre Daten gespeichert sind:
-
Wenn Ihre Daten in Amazon Redshift gespeichert sind, führen Sie den Befehl aus, der Ihrer Authentifizierungsmethode entspricht.
GRANT SELECT ON
${tableName}
TO "IAMR:${serviceRole}
"; -
Wenn Ihre Daten in gespeichert sind AWS Glue Data Catalog, führen Sie den Befehl aus, der Ihrer Authentifizierungsmethode entspricht.
GRANT USAGE ON DATABASE
${schemaName}
TO "IAMR:${serviceRole}
";
Wichtig
Gewähren
CREATE
oderDELETE
greifen Sie nicht zu.UPDATE
Wenn Sie diese Aktionen gewähren, kann dies zu unbeabsichtigten Änderungen Ihrer Daten führen. -
(Wenn Ihre Daten gespeichert sind AWS Glue Data Catalog) Zusätzliche erforderliche Berechtigungen
Unabhängig davon, ob Sie die Amazon Bedrock Knowledge Bases-Servicerolle verwenden, die der für Sie AWS Management Console erstellt, oder eine benutzerdefinierte Rolle, die Sie selbst erstellt haben, müssen Sie die folgenden Berechtigungen konfigurieren, um den Zugriff auf Ihre Daten zu ermöglichen, wenn diese gespeichert sind: AWS Glue Data Catalog
-
Um den Zugriff auf Ihre AWS Glue Data Catalog Datenbanken zu ermöglichen, fügen Sie der Servicerolle die folgenden Berechtigungen zu:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "glue:GetDatabases", "glue:GetDatabase", "glue:GetTables", "glue:GetTable", "glue:GetPartitions", "glue:GetPartition", "glue:SearchTables" ], "Resource": [ "arn:aws:glue:
${Region}
:${Account}
:table/${DatabaseName}
/${TableName}
", "arn:aws:glue:${Region}
:${Account}
:database/${DatabaseName}
", "arn:aws:glue:${Region}
:${Account}
:catalog" ] } ] } -
Gewähren Sie Ihrer Servicerolle Berechtigungen AWS Lake Formation (weitere Informationen zu Lake Formation und seiner Beziehung zu Amazon Redshift finden Sie unter Redshift Spectrum und AWS Lake Formation), indem Sie wie folgt vorgehen:
-
Melden Sie sich bei an AWS Management Console und öffnen Sie die Lake Formation Formation-Konsole unter https://console.aws.amazon.com/lakeformation/
. -
Wählen Sie im linken Navigationsbereich Datenberechtigungen aus.
-
Erteilen Sie der Servicerolle, die Sie für Amazon Bedrock Knowledge Bases verwenden, Berechtigungen.
-
Erteilen Sie Beschreib - und Auswahlberechtigungen für Ihre Datenbanken und Tabellen.
-
-
Abhängig von der Datenquelle, die Sie verwenden AWS Glue Data Catalog, müssen Sie möglicherweise auch Berechtigungen für den Zugriff auf diese Datenquelle hinzufügen (weitere Informationen finden Sie unter AWS Glue Abhängigkeit von anderen AWS-Services). Wenn sich Ihre Datenquelle beispielsweise an einem Amazon S3 S3-Standort befindet, müssen Sie der obigen Richtlinie die folgende Erklärung hinzufügen.
{ "Sid": "Statement1", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
${BucketName}
", "arn:aws:s3:::${BucketName}
/*" ] }
Beantragen Sie Zugriff auf Basismodelle für RetrieveAndGenerate
Wenn Sie Folgendes verwenden möchten RetrieveAndGenerateUm Antworten auf der Grundlage der abgerufenen Daten aus Ihrer Datenquelle zu generieren, fordern Sie Zugriff auf die Basismodelle an, die Sie für die Generierung verwenden können. Gehen Sie dazu wie unter beschrieben vorGreifen Sie auf Amazon Bedrock Foundation-Modelle zu.