Crea un ruolo di servizio per Amazon Bedrock Knowledge Bases - Amazon Bedrock

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à.

Crea un ruolo di servizio per Amazon Bedrock Knowledge Bases

Per utilizzare un ruolo personalizzato per una knowledge base anziché quello creato automaticamente da Amazon Bedrock, crea un IAM ruolo e assegna le seguenti autorizzazioni seguendo la procedura descritta in Creazione di un ruolo per delegare le autorizzazioni a un servizio. AWS Includi solo le autorizzazioni necessarie per la tua sicurezza.

  • Relazione di attendibilità

  • Accesso ai modelli base di Amazon Bedrock

  • Accesso alla fonte di dati in cui sono archiviati i dati

  • (Se crei un database vettoriale in Amazon OpenSearch Service) Accedi alla tua raccolta di OpenSearch servizi

  • (Se crei un database vettoriale in Amazon Aurora) Accesso al tuo cluster Aurora

  • (Se crei un database vettoriale in Pinecone oppure Redis Enterprise Cloud) Autorizzazioni per AWS Secrets Manager autenticare il tuo Pinecone oppure Redis Enterprise Cloud account

  • (Facoltativo) Se crittografate una delle seguenti risorse con una KMS chiave, autorizzazioni per decrittografare la chiave (vedete). Crittografia delle risorse della knowledge base

    • La tua knowledge base

    • Origini dati per la tua knowledge base

    • Il tuo database vettoriale in Amazon Service OpenSearch

    • Il segreto per il tuo database vettoriale di terze parti in AWS Secrets Manager

    • Un processo di importazione dei dati

Relazione di attendibilità

La seguente policy consente ad Amazon Bedrock di assumere questo ruolo e creare e gestire knowledge base. Di seguito viene riportato un esempio di policy che puoi utilizzare. Puoi limitare l'ambito dell'autorizzazione utilizzando una o più chiavi di contesto delle condizioni globali. Per ulteriori informazioni, consulta Chiavi di contesto delle condizioni globali AWS. Imposta il valore aws:SourceAccount sull'ID del tuo account. Utilizza la condizione ArnEquals o ArnLike per limitare l'ambito a knowledge base specifiche.

Nota

Come best practice per motivi di sicurezza, sostituiscili * con una knowledge base specifica IDs dopo averla creata.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "${AccountId}" }, "ArnLike": { "AWS:SourceArn": "arn:aws:bedrock:${Region}:${AccountId}:knowledge-base/*" } } }] }

Autorizzazioni per accedere ai modelli Amazon Bedrock

Allega la seguente policy per fornire al ruolo le autorizzazioni per utilizzare i modelli di Amazon Bedrock per incorporare i dati di origine.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:ListFoundationModels", "bedrock:ListCustomModels" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:${Region}::foundation-model/amazon.titan-embed-text-v1", "arn:aws:bedrock:${Region}::foundation-model/cohere.embed-english-v3", "arn:aws:bedrock:${Region}::foundation-model/cohere.embed-multilingual-v3" ] } ] }

Autorizzazioni per accedere alle fonti di dati

Seleziona una delle seguenti fonti di dati per allegare le autorizzazioni necessarie per il ruolo.

Autorizzazioni per accedere alla tua fonte di dati Amazon S3

Allega la seguente policy per fornire le autorizzazioni per il ruolo per accedere ad Amazon S3.

Se hai crittografato l'origine dati con una AWS KMS chiave, assegna le autorizzazioni per decrittografare la chiave al ruolo seguendo la procedura riportata qui. Autorizzazioni per decrittografare la AWS KMS chiave per le fonti di dati in Amazon S3

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${bucket/path/to/folder}", "arn:aws:s3:::${bucket/path/to/folder}/*" ], "Condition": { "StringEquals": { "aws:PrincipalAccount": "${AccountId}" } } }] }

Autorizzazioni per accedere alla fonte di dati Confluence

Nota

Il connettore di origine dati Confluence è in versione di anteprima ed è soggetto a modifiche.

Allega la seguente policy per fornire le autorizzazioni necessarie al ruolo per accedere a Confluence.

Nota

secretsmanager:PutSecretValueè necessario solo se utilizzi l'autenticazione OAuth 2.0 con un token di aggiornamento.

Il token di accesso Confluence OAuth2 2.0 ha una scadenza predefinita di 60 minuti. Se questo token scade durante la sincronizzazione dell'origine dati (processo di sincronizzazione), Amazon Bedrock utilizzerà il token di aggiornamento fornito per rigenerare questo token. Questa rigenerazione aggiorna sia i token di accesso che quelli di aggiornamento. Per mantenere i token aggiornati dal processo di sincronizzazione corrente al processo di sincronizzazione successivo, Amazon Bedrock richiede autorizzazioni di scrittura/immissione per le tue credenziali segrete.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue" ], "Resource": [ "arn:aws:secretsmanager:${Region}:${AccountId}:secret:${secret-id}" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}:${AccountId}:key/${KeyId}" ], "Condition": { "StringLike": { "kms:ViaService": [ "secretsmanager.${Region}.amazonaws.com" ] } } }, }

Autorizzazioni per accedere all'origine SharePoint dati Microsoft

Nota

SharePoint Data Source Connector è in versione di anteprima ed è soggetto a modifiche.

Allega la seguente politica per fornire le autorizzazioni di accesso SharePoint al ruolo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:${Region}:${AccountId}:secret:${SecretId}" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}:${AccountId}:key/${KeyId}" ], "Condition": { "StringLike": { "kms:ViaService": [ "secretsmanager.${Region}.amazonaws.com" ] } } }, }

Autorizzazioni per accedere alla fonte di dati Salesforce

Nota

Il connettore di origine dati Salesforce è in versione di anteprima ed è soggetto a modifiche.

Allega la seguente politica per fornire le autorizzazioni necessarie al ruolo per accedere a Salesforce.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:${Region}:${AccountId}:secret:${SecretId}" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}:${AccountId}:key/${KeyId}" ], "Condition": { "StringLike": { "kms:ViaService": [ "secretsmanager.${Region}.amazonaws.com" ] } } }, }

Autorizzazioni per chattare con il documento

Allega la seguente politica per fornire le autorizzazioni per il ruolo a utilizzare i modelli Amazon Bedrock per chattare con il tuo documento:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:RetrieveAndGenerate" ], "Resource": "*" } ] }

Se desideri concedere a un utente solo l'accesso alla chat con il tuo documento (e non a RetrieveAndGenerate tutte le Knowledge Base), utilizza la seguente politica:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:RetrieveAndGenerate" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "bedrock:Retrieve" ], "Resource": "*" } ] }

Se desideri utilizzare il documento tramite chat e utilizzarlo RetrieveAndGenerate su una Knowledge Base specifica${KnowledgeBaseArn}, fornisci e utilizza la seguente politica:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:RetrieveAndGenerate" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "bedrock:Retrieve" ], "Resource": ${KnowledgeBaseArn} } ] }

(Facoltativo) Autorizzazioni per accedere al tuo indice Amazon Kendra GenAI

Se hai creato un indice Amazon Kendra GenAI per la tua knowledge base, allega la seguente policy al tuo ruolo di servizio Amazon Bedrock Knowledge Bases per consentire l'accesso all'indice. Nella policy, sostituisci ${Partition} ${Region}${AccountId}, e ${IndexId} con i valori del tuo indice. Puoi consentire l'accesso a più indici aggiungendoli all'Resourceelenco. Per consentire l'accesso a tutti gli indici del tuo indice Account AWS, sostituiscilo ${IndexId} con un carattere jolly (*).

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kendra:Retrieve", // To call their Retrieve API "kendra:DescribeIndex" // For validation when creating the KB ], "Resource": "arn:${${Partition}}:kendra:${${Region}}:${${AccountId}}:index/${${IndexId}}" } ] }

(Facoltativo) Autorizzazioni per accedere al tuo database vettoriale in Amazon Service OpenSearch

Se hai creato un database vettoriale in Amazon OpenSearch Service per la tua knowledge base, allega la seguente policy al tuo ruolo di servizio Amazon Bedrock Knowledge Bases per consentire l'accesso alla raccolta. Sostituisci ${Region} e ${AccountId} con la regione e l'ID dell'account a cui appartiene il database. Inserisci l'ID della tua collezione Amazon OpenSearch Service${CollectionId}. Puoi consentire l'accesso a più raccolte aggiungendole all'elenco Resource.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "aoss:APIAccessAll" ], "Resource": [ "arn:aws:aoss:${Region}:${AccountId}:collection/${CollectionId}" ] }] }

(Facoltativo) Autorizzazioni per accedere al cluster di database Amazon Aurora

Se hai creato un cluster di database (DB) in Amazon Aurora per la tua knowledge base, allega la seguente policy al tuo ruolo di servizio Amazon Bedrock Knowledge Bases per consentire l'accesso al cluster DB e fornire autorizzazioni di lettura e scrittura su di esso. Sostituisci ${Region} e ${AccountId} con la regione e l'ID dell'account a cui appartiene il cluster DB. Inserisci l'ID del tuo cluster di database Amazon Aurora. ${DbClusterId} Puoi consentire l'accesso a più cluster di database aggiungendole all'elenco Resource.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RdsDescribeStatementID", "Effect": "Allow", "Action": [ "rds:DescribeDBClusters" ], "Resource": [ "arn:aws:rds:${Region}:${AccountId}:cluster:${DbClusterId}" ] }, { "Sid": "DataAPIStatementID", "Effect": "Allow", "Action": [ "rds-data:BatchExecuteStatement", "rds-data:ExecuteStatement" ], "Resource": [ "arn:aws:rds:${Region}:${AccountId}:cluster:${DbClusterId}" ] }] }

(Facoltativo) Autorizzazioni per accedere a un database vettoriale configurato con un segreto AWS Secrets Manager

Se il tuo database vettoriale è configurato con un AWS Secrets Manager segreto, allega la seguente policy al tuo ruolo di servizio Amazon Bedrock Knowledge Bases AWS Secrets Manager per consentire l'autenticazione del tuo account per accedere al database. Sostituisci ${Region} e ${AccountId} con la regione e l'ID dell'account a cui appartiene il database. Sostituiscilo ${SecretId} con l'ID del tuo segreto.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:${Region}:${AccountId}:secret:${SecretId}" ] }] }

Se hai crittografato il tuo segreto con una AWS KMS chiave, assegna le autorizzazioni per decrittografare la chiave al ruolo seguendo la procedura riportata qui. Autorizzazioni per decrittografare un AWS Secrets Manager segreto per l'archivio vettoriale contenente la tua knowledge base

(Facoltativo) Autorizzazioni per la gestione di una AWS KMS chiave AWS per l'archiviazione temporanea dei dati durante l'ingestione dei dati

Per consentire la creazione di una AWS KMS chiave per l'archiviazione temporanea dei dati durante il processo di acquisizione della fonte di dati, allega la seguente policy al tuo ruolo di servizio Amazon Bedrock Knowledge Bases. Sostituisci${Region}, e con i ${AccountId} valori appropriati${KeyId}.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}:${AccountId}:key/${KeyId}" ] } ] }

(Facoltativo) Autorizzazioni AWS per gestire un'origine dati dall' AWS account di un altro utente.

Per consentire l'accesso all' AWS account di un altro utente, devi creare un ruolo che consenta l'accesso tra account a un bucket Amazon S3 nell'account di un altro utente. Sostituisci ${BucketName}${BucketOwnerAccountId}, e ${BucketNameAndPrefix} con i valori appropriati.

Autorizzazioni richieste per il ruolo della Knowledge Base

Il ruolo della knowledge base fornito durante la creazione della knowledge base createKnowledgeBase richiede le seguenti autorizzazioni Amazon S3.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "S3ListBucketStatement", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${BucketName}" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${BucketOwnerAccountId}" } } },{ "Sid": "S3GetObjectStatement", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::${BucketNameAndPrefix}/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${BucketOwnerAccountId}" } }] }

Se il bucket Amazon S3 è crittografato utilizzando una AWS KMS chiave, è necessario aggiungere anche quanto segue al ruolo della knowledge base. Sostituisci ${BucketOwnerAccountId} e ${Region} con i valori appropriati.

{ "Sid": "KmsDecryptStatement", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}:${BucketOwnerAccountId}:key/${KeyId}" ], "Condition": { "StringEquals": { "kms:ViaService": [ "s3.${Region}.amazonaws.com" ] } } }

Autorizzazioni richieste per una policy sui bucket Amazon S3 per più account

Il bucket dell'altro account richiede la seguente policy sui bucket di Amazon S3. Sostituisci ${KbRoleArn}${BucketName}, e ${BucketNameAndPrefix} con i valori appropriati.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Example ListBucket permissions", "Effect": "Allow", "Principal": { "AWS": "${KbRoleArn}" }, "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${BucketName}" ] }, { "Sid": "Example GetObject permissions", "Effect": "Allow", "Principal": { "AWS": "${KbRoleArn}" }, "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::${BucketNameAndPrefix}/*" ] } ] }

Autorizzazioni richieste per la politica delle chiavi tra account AWS KMS

Se il bucket Amazon S3 per più account è crittografato utilizzando AWS KMS una chiave in quell'account, la politica della chiave richiede AWS KMS la seguente politica. Sostituisci ${KbRoleArn} e ${KmsKeyArn} con i valori appropriati.

{ "Sid": "Example policy", "Effect": "Allow", "Principal": { "AWS": [ "${KbRoleArn}" ] }, "Action": [ "kms:Decrypt" ], "Resource": "${KmsKeyArn}" }