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à.
Prerequisiti per la creazione di una knowledge base Amazon Bedrock con un data store strutturato
Se prevedi di connettere una knowledge base Amazon Bedrock a un data store strutturato, devi soddisfare i prerequisiti descritti in questo argomento.
Importante
L'esecuzione di query SQL arbitrarie può rappresentare un rischio per la sicurezza di qualsiasi applicazione. Text-to-SQL Si consiglia di adottare le precauzioni necessarie, ad esempio utilizzando ruoli limitati, database di sola lettura e sandboxing.
Consulta i seguenti argomenti per assicurarti di avere configurato tutte le autorizzazioni necessarie.
Argomenti
Crea e configura le autorizzazioni per il tuo ruolo di servizio Amazon Bedrock Knowledge Bases
Concedi l'accesso al database al ruolo che utilizzi per l'autenticazione
(Se i dati sono archiviati in AWS Glue Data Catalog) Autorizzazioni aggiuntive richieste
Richiedi l'accesso ai modelli di base per RetrieveAndGenerate
Configura un motore di query Amazon Redshift
Amazon Bedrock Knowledge Bases utilizza Amazon Redshift come motore di query per interrogare il tuo data store. Se i tuoi dati si trovano già in un motore di query serverless o fornito da Amazon Redshift, puoi ignorare questo prerequisito. Altrimenti, configura uno dei seguenti tipi di motori di query:
Per configurare un motore di query in Amazon Redshift, è stato fornito
-
Segui la procedura nella Fase 1: Crea un cluster Amazon Redshift di esempio nella Amazon Redshift Getting Started Guide.
-
Prendi nota dell'ID del cluster.
-
(Facoltativo) Per ulteriori informazioni sui cluster con provisioning di Amazon Redshift, consulta Amazon Redshift provisioned clusters nella Amazon Redshift Management Guide.
Per configurare un motore di query in Amazon Redshift Serverless
-
Segui solo la procedura di configurazione descritta in Creazione di un data warehouse with Amazon Redshift Serverless nella Amazon Redshift Getting Started Guide e configuralo con le impostazioni predefinite.
-
Nota l'ARN del gruppo di lavoro.
-
(Facoltativo) Per ulteriori informazioni sui gruppi di lavoro Serverless di Amazon Redshift, consulta Workgroups and namespace nella Amazon Redshift Management Guide.
Raccogli informazioni sul tuo database
Assicurati che i tuoi dati siano archiviati in uno dei seguenti archivi di dati strutturati supportati:
Amazon Redshift
AWS Glue Data Catalog (AWS Lake Formation)
Nota
Se i tuoi dati non si trovano in una delle fonti di dati di cui sopra, ma si trovano in un data store supportato per la scansione da AWS Glue, puoi configurare un crawler per scrivere il tuo data store su una AWS Glue tabella seguendo i passaggi descritti nella Configurazione di un crawler nella Guida per gli sviluppatori. AWS Glue
Tieni presente le seguenti informazioni per quando crei la knowledge base:
-
Se i dati sono archiviati in un database Amazon Redshift, annota il nome del database.
-
Se i tuoi dati sono archiviati in AWS Glue Data Catalog (Amazon SageMaker AI Lakehouse), annota i nomi delle tabelle a cui desideri che la tua knowledge base abbia accesso.
Assegna le autorizzazioni al tuo ruolo utente
Affinché un ruolo IAM possa eseguire azioni relative alle Knowledge Base di Amazon Bedrock, è necessario allegare politiche al ruolo che concedono le autorizzazioni per eseguire le azioni. Questo argomento descrive le autorizzazioni che consentono a un utente di creare e gestire una knowledge base connessa a un archivio dati strutturato. Descrive inoltre le autorizzazioni che consentono a un utente di recuperare informazioni da queste knowledge base e generare risposte da esse.
Espandi le seguenti sezioni per scoprire come configurare le autorizzazioni per casi d'uso specifici:
Per consentire a un ruolo IAM di creare una knowledge base, collegarla a un data store strutturato, gestire la knowledge base e avviare e gestire i processi di inserimento dalla fonte di dati alla knowledge base, devi fornire le autorizzazioni per e le KnowledgeBase
azioni. DataSource
IngestionJob
Nota
Se al ruolo è associata la policy AmazonBedrockFullAccess AWS gestita, puoi ignorare questo prerequisito.
Per fornire le autorizzazioni per etichettare le knowledge base, includi le autorizzazioni per e. bedrock:TagResource
bedrock:UntagResource
Per consentire a un ruolo di eseguire queste azioni, allega la seguente politica al ruolo:
{ "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/*
" ] } ] }
Dopo aver creato una knowledge base, ti consigliamo di ridurre l'ambito delle autorizzazioni nello KBDataSourceManagement
statuto sostituendo il carattere jolly (*
) con l'ID della knowledge base che hai creato.
Per consentire a un ruolo IAM di interrogare una knowledge base connessa a un data store strutturato, allega la seguente policy al ruolo:
{ "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": [ "*" ] } ] }
Puoi rimuovere le istruzioni che non ti servono, a seconda del caso d'uso:
-
GenerateQuery
Le istruzioniGetKB
and sono necessarie per la chiamata GenerateQueryper generare query SQL che tengano conto delle query degli utenti e dell'origine dati connessa. -
La
Retrieve
dichiarazione è necessaria per chiamare Retrieveper recuperare dati dal tuo archivio dati strutturato. -
La
RetrieveAndGenerate
dichiarazione è necessaria per chiamare RetrieveAndGenerateper recuperare dati dal tuo archivio di dati strutturato e generare risposte basate sui dati.
Per limitare ulteriormente le autorizzazioni, puoi omettere le azioni oppure puoi specificare risorse e chiavi di condizione in base alle quali filtrare le autorizzazioni. Per ulteriori informazioni su azioni, risorse e chiavi di condizione, vedere i seguenti argomenti nel Service Authorization Reference:
-
Azioni definite da Amazon Bedrock: scopri le azioni, i tipi di risorse a cui puoi assegnarle
Resource
sul campo e le chiavi di condizione in base alle quali puoi filtrare le autorizzazioni sul campo.Condition
-
Tipi di risorse definiti da Amazon Bedrock: scopri i tipi di risorse in Amazon Bedrock.
-
Chiavi di condizione per Amazon Bedrock: scopri le chiavi di condizione in Amazon Bedrock.
Crea e configura le autorizzazioni per il tuo ruolo di servizio Amazon Bedrock Knowledge Bases
Amazon Bedrock Knowledge Bases utilizza un ruolo di servizio per connettere le knowledge base agli archivi di dati strutturati, recuperare dati da questi archivi di dati e generare query SQL basate sulle query degli utenti e sulla struttura degli archivi dati.
Nota
Se prevedi di utilizzare il per AWS Management Console creare una knowledge base, puoi ignorare questo prerequisito. La console creerà un ruolo del servizio Amazon Bedrock Knowledge Bases con le autorizzazioni appropriate.
Per creare un ruolo di servizio IAM personalizzato con le autorizzazioni appropriate, segui i passaggi in Creare un ruolo per delegare le autorizzazioni a una relazione di trust definita in Servizio AWS e allegare la relazione di fiducia definita in. Relazione di attendibilità
Quindi, aggiungi le autorizzazioni per la tua knowledge base per accedere al motore di query e ai database di Amazon Redshift. Espandi la sezione relativa al tuo caso d'uso:
Allega la seguente policy al tuo ruolo di servizio personalizzato per consentirgli di accedere ai tuoi dati e generare query utilizzandoli:
{ "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": "*" } ] }
È inoltre necessario aggiungere le autorizzazioni per consentire al ruolo di servizio di autenticarsi nel motore di query. Espandi una sezione per visualizzare le autorizzazioni per il caso d'uso.
Per consentire al tuo ruolo di servizio di autenticarsi sul tuo motore di query fornito da Amazon Redshift con IAM, collega la seguente policy al tuo ruolo di servizio personalizzato:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetCredentialsWithFederatedIAMCredentials", "Effect": "Allow", "Action": "redshift:GetClusterCredentialsWithIAM", "Resource": [ "arn:aws:redshift:
${region}
:${account}
:dbname:${cluster}
/${database}
" ] } }
Nota
Se i tuoi dati sono archiviati in AWS Glue Data Catalog, sostituiscili con. ${database}
dev
Per autenticarti come utente del database Amazon Redshift, collega la seguente policy al ruolo di servizio:
{ "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}
" ] } ] }
Per consentire al tuo ruolo di servizio di autenticarsi sul motore di query fornito da Amazon Redshift con AWS Secrets Manager un segreto, procedi come segue:
-
Allega la seguente politica al ruolo:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetSecretPermissions", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:
${region}
:${account}
:secret:${secretName}
" ] } ] }
Le autorizzazioni da allegare dipendono dal metodo di autenticazione utilizzato. Espandi una sezione per visualizzare le autorizzazioni per il caso d'uso.
Per consentire al tuo ruolo di servizio di autenticarsi sul tuo motore di query fornito da Amazon Redshift con IAM, collega la seguente policy al tuo ruolo di servizio personalizzato:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RedshiftServerlessGetCredentials", "Effect": "Allow", "Action": "redshift-serverless:GetCredentials", "Resource": [ "arn:aws:redshift-serverless:
${Region}
:${Account}
:workgroup:${WorkgroupId}
" ] } }
Per consentire al tuo ruolo di servizio di autenticarsi sul motore di query fornito da Amazon Redshift con AWS Secrets Manager un segreto, procedi come segue:
-
Allega la seguente politica al ruolo:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetSecretPermissions", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:
${region}
:${account}
:secret:${secretName}
" ] } ] }
Concedi l'accesso al database al ruolo che utilizzi per l'autenticazione
Per concedere l'accesso al database al ruolo utilizzato per l'autenticazione, utilizzando Amazon Redshift query editor v2, esegui i seguenti 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 Amazon Bedrock Knowledge Bases creato per te nella console e poi sincronizzi il tuo data store prima di eseguire questo passaggio, l'utente verrà creato per te, ma la sincronizzazione avrà esito negativo perché all'utente non sono state concesse le autorizzazioni per accedere al tuo data store. Prima della sincronizzazione, devi eseguire il seguente passaggio.
-
Concedi all'utente del database le autorizzazioni per recuperare informazioni dal tuo database eseguendo il comando GRANT. È possibile definire l'ambito di database, tabelle o righe o colonne specifici nelle tabelle
${tableName}
sostituendo o.${dbName}
Esegui il comando che corrisponde al servizio in cui sono archiviati i tuoi dati:
-
Se i tuoi dati sono archiviati in Amazon Redshift, esegui il comando corrispondente al tuo metodo di autenticazione.
-
Se i dati sono archiviati in AWS Glue Data Catalog, esegui il comando corrispondente al metodo di autenticazione.
Importante
Non concedere
CREATE
oDELETE
accedere.UPDATE
La concessione di queste azioni può comportare una modifica involontaria dei dati. -
(Se i dati sono archiviati in AWS Glue Data Catalog) Autorizzazioni aggiuntive richieste
Sia che utilizzi il ruolo di servizio Amazon Bedrock Knowledge Bases AWS Management Console creato per te o un ruolo personalizzato creato da te, devi configurare le seguenti autorizzazioni per consentire l'accesso ai tuoi dati se sono archiviati in: AWS Glue Data Catalog
-
Per consentire l'accesso ai tuoi AWS Glue Data Catalog database, assegna le seguenti autorizzazioni al ruolo di servizio:
{ "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" ] } ] } -
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 Redshift Spectrum AWS Lake Formation e) procedendo come segue:
-
Accedi a AWS Management Console, e apri la console Lake Formation all'indirizzo https://console.aws.amazon.com/lakeformation/
. -
Seleziona Autorizzazioni dati dal riquadro di navigazione a sinistra.
-
Concedi le autorizzazioni per il ruolo di servizio che stai utilizzando per Amazon Bedrock Knowledge Bases.
-
Concedi le autorizzazioni Descrivi e Seleziona per i tuoi database e tabelle.
-
-
A seconda dell'origine dati utilizzata AWS Glue Data Catalog, potrebbe essere necessario aggiungere anche le autorizzazioni per accedere a tale origine dati (per ulteriori informazioni, consulta la sezione AWS Glue Dipendenza da altre fonti). Servizi AWS Ad esempio, se la tua origine dati si trova in una posizione Amazon S3, dovrai aggiungere la seguente dichiarazione alla politica di cui sopra.
{ "Sid": "Statement1", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
${BucketName}
", "arn:aws:s3:::${BucketName}
/*" ] }
Richiedi l'accesso ai modelli di base per RetrieveAndGenerate
Se prevedi di utilizzare RetrieveAndGenerateper generare risposte basate sui dati recuperati dalla tua fonte di dati, richiedi l'accesso ai modelli di base da utilizzare per la generazione seguendo la procedura riportata Accedi ai modelli di base Amazon Bedrock qui.