Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configurazione del motore di query e delle autorizzazioni per la creazione di una knowledge base con un datastore strutturato
Questo argomento descrive le autorizzazioni necessarie per connettere la knowledge base a un datastore strutturato. Se prevedi di connettere Knowledge Base per Amazon Bedrock a un datastore strutturato, devi soddisfare i prerequisiti. Per i requisiti generali di autorizzazione da soddisfare, consulta Configurazione delle autorizzazioni per un utente o un ruolo per creare e gestire le knowledge base.
Importante
L'esecuzione di query SQL arbitrarie può rappresentare un rischio per la sicurezza di qualsiasi Text-to-SQL applicazione. È consigliabile adottare le precauzioni necessarie, ad esempio utilizzare ruoli limitati, database di sola lettura e sandboxing.
Knowledge Base per Amazon Bedrock supporta Amazon Redshift come motore di query per interrogare il tuo datastore. Un motore di query accede ai metadati da un datastore strutturato e li utilizza per generare query SQL. Amazon Redshift è un servizio di data warehouse che utilizza SQL per analizzare dati strutturati in data warehouse, database e data lake.
Creazione del motore di query Amazon Redshift
Puoi utilizzare Amazon Redshift serverless o Amazon Redshift con provisioning in base al caso d’uso e connetterti a gruppi di lavoro o a cluster per il tuo data warehouse. I dati sottostanti che il motore di Amazon Redshift può interrogare possono essere dati archiviati nativamente in cluster Amazon Redshift o dati che si trovano in modalità predefinita (ad AWS Glue Data Catalog esempio in Amazon S3, tra gli altri).
Se hai già creato un motore di query, puoi ignorare questo prerequisito. Altrimenti, attieniti ai seguenti passaggi per configurare il tuo motore di query Amazon Redshift con provisioning o Amazon Redshift serverless:
Come configurare un motore di query in Amazon Redshift con provisioning
-
Segui la procedura riportata in Fase 1: Creazione di un cluster Amazon Redshift di esempio nella Guida alle operazioni di base di Amazon Redshift.
-
Annota l’ID cluster.
-
(Opzionale) Per ulteriori informazioni riguardanti snapshot cluster Amazon Redshift allocati, consulta Cluster Amazon Redshift allocati nella Guida alla gestione di Amazon Redshift.
Come configurare un motore di query in Amazon Redshift serverless
-
Segui solo la procedura di configurazione descritta in Creazione di un data warehouse con Amazon Redshift serverless nella Guida alle operazioni di base di Amazon Redshift e configuralo con le impostazioni predefinite.
-
Nota l’ARN del gruppo di lavoro.
-
(Opzionale) Per ulteriori informazioni sui gruppi di lavoro Amazon Redshift serverless, consulta Gruppi di lavoro e namespace nella Guida alla gestione di Amazon Redshift.
Configurazione delle autorizzazioni del motore di query Amazon Redshift
A seconda del motore di query Amazon Redshift che scegli, puoi configurare determinate autorizzazioni. Le autorizzazioni che configuri dipendono dal metodo di autenticazione. La tabella seguente mostra i metodi di autenticazione che possono essere utilizzati per diversi motori di query:
| Metodo di autenticazione | Amazon Redshift con provisioning | Amazon Redshift Serverless |
|---|---|---|
| IAM |
|
|
| Nome utente database |
|
|
| AWS Secrets Manager |
|
|
Knowledge Base per Amazon Bedrock utilizza un ruolo di servizio per connettere le knowledge base ai datastore strutturati, recuperare dati da questi datastore e generare query SQL in base alle query degli utenti e alla struttura dei datastore.
Nota
Se prevedi di utilizzare il per Console di gestione AWS creare una knowledge base, puoi ignorare questo prerequisito. La console crea un ruolo di servizio di Knowledge Base per Amazon Bedrock con le autorizzazioni appropriate.
Per creare un ruolo di servizio IAM personalizzato con le autorizzazioni appropriate, segui i passaggi in Creazione di un ruolo per delegare le autorizzazioni a un Servizio AWS e allegare la relazione di attendibilità definita in Relazione di attendibilità.
Quindi, aggiungi le autorizzazioni per la knowledge base per accedere al motore di query e ai database di Amazon Redshift. Espandi la sezione applicabile al tuo caso d’uso:
Allega la seguente policy al ruolo di servizio personalizzato affinché tale ruolo possa accedere ai tuoi dati e generare query utilizzandoli:
È inoltre necessario aggiungere le autorizzazioni per consentire al ruolo di servizio di eseguire l’autenticazione al motore di query. Espandi una sezione per visualizzare le autorizzazioni per quel metodo.
Le autorizzazioni da allegare dipendono dal metodo di autenticazione utilizzato. Espandi una sezione per visualizzare le autorizzazioni per un metodo.
Consenti al ruolo di servizio della knowledge base di accedere al tuo datastore
Assicurati che i tuoi dati siano archiviati in uno dei seguenti datastore strutturati supportati:
Amazon Redshift
AWS Glue Data Catalog(AWS Lake Formation)
La tabella seguente riassume i metodi di autenticazione disponibili per il motore di query, a seconda del data store in uso:
| Metodo di autenticazione | Amazon Redshift | AWS Glue Data Catalog(AWS Lake Formation) |
|---|---|---|
| IAM |
|
|
| Nome utente database |
|
|
| AWS Secrets Manager |
|
|
Per informazioni su come configurare le autorizzazioni per il tuo ruolo di servizio di Knowledge Base per Amazon Bedrock per accedere al datastore e generare query basate su esso, espandi la sezione corrispondente al servizio in cui si trova il datastore:
Per concedere al ruolo di servizio di Knowledge Base per Amazon Bedrock l’accesso al tuo database Amazon Redshift, utilizza Amazon Redshift Query Editor v2 ed esegui questi comandi SQL:
-
(Se esegui l'autenticazione con IAM e non è già stato creato un utente per il tuo database) Esegui il comando seguente, che utilizza CREATE USER per creare un utente del database e consentirgli di autenticarsi tramite IAM, sostituendolo
${service-role}con il nome del ruolo di servizio Amazon Bedrock Knowledge Bases personalizzato che hai creato:CREATE USER "IAMR:${service-role}" WITH PASSWORD DISABLE;Importante
Se utilizzi il ruolo di servizio di Knowledge Base per Amazon Bedrock creato per te nella console e poi sincronizzi il tuo datastore prima di eseguire questa fase, l’utente viene creato, ma la sincronizzazione ha esito negativo perché all’utente non sono state concesse le autorizzazioni per accedere al tuo datastore. Prima della sincronizzazione, devi completare la fase seguente.
-
Concedi a un’identità le autorizzazioni per recuperare informazioni dal tuo database eseguendo il comando GRANT.
Importante
Non concedere un accesso
CREATE,UPDATEoDELETE. La concessione di queste azioni può comportare una modifica involontaria dei dati.Per un controllo più preciso sulle tabelle a cui è possibile accedere, puoi sostituire nomi di tabelle
ALL TABLESspecifici con la seguente notazione:.${schemaName}${tableName}Per ulteriori informazioni su questa notazione, consulta la sezione Oggetti di query in Query tra database. -
Se hai creato un nuovo schema nel database Redshift, esegui il comando seguente per concedere a un’identità le autorizzazioni per il nuovo schema.
GRANT USAGE ON SCHEMA ${schemaName} TO "IAMR:${serviceRole}";
Per concedere al ruolo del servizio Amazon Bedrock Knowledge Bases l'accesso al tuo AWS Glue Data Catalog data store, usa l'editor di query di Amazon Redshift v2 ed esegui i seguenti comandi SQL:
-
Esegui il comando seguente, che utilizza CREATE USER per creare un utente del database e consentirgli l'autenticazione tramite IAM, sostituendolo
${service-role}con il nome del ruolo di servizio Amazon Bedrock Knowledge Bases personalizzato che hai creato:CREATE USER "IAMR:${service-role}" WITH PASSWORD DISABLE;Importante
Se utilizzi il ruolo di servizio di Knowledge Base per Amazon Bedrock creato per te nella console e poi sincronizzi il tuo datastore prima di eseguire questa fase, l’utente viene creato, ma la sincronizzazione ha esito negativo perché all’utente non sono state concesse le autorizzazioni per accedere al tuo datastore. Prima della sincronizzazione, devi completare la fase seguente.
-
Concedi a un ruolo di servizio le autorizzazioni per recuperare informazioni dal tuo database eseguendo il comando GRANT.
GRANT USAGE ON DATABASE awsdatacatalog TO "IAMR:${serviceRole}";Importante
Non concedere un accesso
CREATE,UPDATEoDELETE. La concessione di queste azioni può comportare una modifica involontaria dei dati. -
Per consentire l'accesso ai tuoi AWS Glue Data Catalog database, assegna le seguenti autorizzazioni al ruolo di servizio:
-
Concedi le autorizzazioni per il tuo ruolo di servizio tramite AWS Lake Formation (per ulteriori informazioni su Lake Formation e sulla sua relazione con Amazon Redshift, consulta Fonti di dati per Redshift) procedendo come segue:
-
Accedi aConsole di gestione AWS, e apri la console Lake Formation all'indirizzo https://console.aws.amazon.com/lakeformation/
. -
Seleziona Autorizzazioni dati nel riquadro di navigazione a sinistra.
-
Concedi le autorizzazioni per il ruolo di servizio che utilizzi per Knowledge Base per Amazon Bedrock.
-
Concedi le autorizzazioni Describe e Select per i tuoi database e tabelle.
-
-
A seconda dell'origine dati utilizzataAWS Glue Data Catalog, potrebbe essere necessario aggiungere le autorizzazioni per accedere a tale fonte di dati (per ulteriori informazioni, consulta la sezione AWS GlueDipendenza da altro Servizi AWS). Ad esempio, se la tua origine dati si trova in una ubicazione Amazon S3, devi aggiungere la seguente dichiarazione alla policy di cui sopra.
{ "Sid": "Statement1", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::${BucketName}", "arn:aws:s3:::${BucketName}/*" ] } -
(Facoltativo) Se lo utilizzi AWS KMS per crittografare i dati in Amazon S3 AWS Glue Data Catalog oppure, devi aggiungere le autorizzazioni al ruolo per decrittografare i dati sulla chiave KMS.
{ "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}:${Account}:key/{KmsId}", "arn:aws:kms:${Region}:${Account}:key/{KmsId}" ], "Effect": "Allow" }