Creare un ruolo di servizio per Knowledge Base per Amazon Bedrock - 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à.

Creare un ruolo di servizio per Knowledge Base per Amazon Bedrock

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

Nota

Una policy non può essere condivisa tra più ruoli quando viene utilizzato il ruolo di servizio.

  • Relazione di attendibilità

  • Accesso ai modelli base di Amazon Bedrock

  • Accesso all’origine dati in cui sono archiviati i dati

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

  • (Se è stato creato un database vettoriale in Amazon Aurora) Accesso al cluster Aurora

  • (Se crei un database vettoriale in Pinecone oRedis Enterprise Cloud) Autorizzazioni per Gestione dei segreti AWS autenticare il tuo account o Pinecone Redis Enterprise Cloud

  • (Facoltativo) Se una delle seguenti risorse è crittografata con una chiave KMS, le autorizzazioni per decrittografare la chiave (consultare Crittografia delle risorse della knowledge base)

    • La knowledge base

    • Origini dati per la knowledge base

    • Il tuo database vettoriale in Amazon Service OpenSearch

    • Il segreto per il tuo database vettoriale di terze parti in Gestione dei segreti AWS

    • 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 utilizzabile. È possibile 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. Impostare il valore aws:SourceAccount sull’ID dell’account. Utilizzare 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.

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

Autorizzazioni per accedere ai modelli Amazon Bedrock

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

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

Autorizzazioni per accedere alle origini dati

Selezionare una delle seguenti origini dati per collegare le autorizzazioni necessarie per il ruolo.

Autorizzazioni per accedere all’origine dati in Amazon S3

Se l’origine dati è Amazon S3, collegare la seguente policy per fornire al ruolo le autorizzazioni per accedere al bucket S3 utilizzato per connettersi come origine dati.

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

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "S3ListBucketStatement", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "123456789012" } } }, { "Sid": "S3GetObjectStatement", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "123456789012" } } } ] }

Autorizzazioni per accedere all’origine dati in Confluence

Nota

Il connettore dell’origine dati in Confluence è disponibile nella versione di anteprima ed è soggetto a modifiche.

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

Nota

secretsmanager:PutSecretValueè necessario solo se si utilizza 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 il token di accesso scade durante la sincronizzazione dell’origine dati (processo di sincronizzazione), Amazon Bedrock utilizza il token di aggiornamento fornito per rigenerarlo. In questo caso vengono rigenerati sia i token di accesso sia quelli di aggiornamento. Per mantenere i token aggiornati dal processo di sincronizzazione corrente al processo di sincronizzazione successivo, Amazon Bedrock richiede write/put le autorizzazioni per le tue credenziali segrete.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue" ], "Resource": [ "arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretId" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:123456789012:key/KeyId" ], "Condition": { "StringLike": { "kms:ViaService": [ "secretsmanager.us-east-1.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.

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

Autorizzazioni per accedere alle origini dati in Salesforce

Nota

Il connettore delle origini dati in Salesforce è disponibile nella versione di anteprima ed è soggetto a modifiche.

Collegare la seguente policy per fornire al ruolo le autorizzazioni per accedere a Salesforce.

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

Autorizzazioni per decrittografare la AWS KMS chiave per le fonti di dati crittografate in Amazon S3

Se hai crittografato le tue fonti di dati in Amazon S3 con una AWS KMS chiave, allega la seguente policy al tuo ruolo di servizio Amazon Bedrock Knowledge Bases per consentire ad Amazon Bedrock di decrittografare la tua chiave. Sostituisci ${Region} e ${AccountId} con la regione e l'ID dell'account a cui appartiene la chiave. Sostituiscilo ${KeyId} con l'ID della tua AWS KMS chiave.

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

Autorizzazioni per chattare con il documento

Collegare la seguente policy per fornire al ruolo le autorizzazioni per utilizzare i modelli di Amazon Bedrock per chattare con il documento:

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

Per concedere a un utente solo l’accesso per chattare con il documento (e non per RetrieveAndGenerate in tutte le knowledge base), utilizzare la seguente policy:

JSON
{ "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:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:RetrieveAndGenerate" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "bedrock:Retrieve" ], "Resource": "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/$KnowledgeBaseId" } ] }

Autorizzazioni per contenuti multimodali

Quando si lavora con contenuti multimodali (immagini, audio, video), sono necessarie autorizzazioni aggiuntive a seconda dell'approccio di elaborazione.

Autorizzazioni Nova Multimodal Embeddings

Quando utilizzate Nova Multimodal Embeddings, allegate la seguente politica per fornire le autorizzazioni per la chiamata asincrona del modello:

{ "Sid": "BedrockInvokeModelStatement", "Effect": "Allow", "Action": ["bedrock:InvokeModel"], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-*-multimodal-embeddings-*", "arn:aws:bedrock:us-east-1::async-invoke/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "" } } }, { "Sid": "BedrockGetAsyncInvokeStatement", "Effect": "Allow", "Action": ["bedrock:GetAsyncInvoke"], "Resource": ["arn:aws:bedrock:us-east-1::async-invoke/*"], "Condition": { "StringEquals": { "aws:ResourceAccount": "" } } }

Autorizzazioni Bedrock Data Automation (BDA)

Quando utilizzi BDA per elaborare contenuti multimodali, allega la seguente politica:

{ "Sid": "BDAInvokeStatement", "Effect": "Allow", "Action": ["bedrock:InvokeDataAutomationAsync"], "Resource": [ "arn:aws:bedrock:us-east-1:aws:data-automation-project/public-rag-default", "arn:aws:bedrock:us-east-1::data-automation-profile/*" ] }, { "Sid": "BDAGetStatement", "Effect": "Allow", "Action": ["bedrock:GetDataAutomationStatus"], "Resource": "arn:aws:bedrock:us-east-1::data-automation-invocation/*" }

Se utilizzi AWS KMS chiavi gestite dal cliente con BDA, allega anche la seguente politica. Sostituisci account-id e key-id con region i tuoi valori specifici:

{ "Sid": "KmsPermissionStatementForBDA", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": ["arn:aws:kms:region:account-id:key/key-id"], "Condition": { "StringEquals": { "aws:ResourceAccount": "account-id", "kms:ViaService": "bedrock.region.amazonaws.com" } } }

Autorizzazioni per accedere all’Indice GenAI di Amazon Kendra

Se è stato creato un Indice GenAI di Amazon Kendra per la knowledge base, collegare la seguente policy al ruolo di servizio di Knowledge Base per Amazon Bedrock per consentire l’accesso all’indice. Nella politica, sostituisci${Partition}, ${Region}${AccountId}, e ${IndexId} con i valori del tuo indice. È possibile consentire l’accesso a più cluster di database aggiungendoli all’elenco Resource. Per consentire l'accesso a tutti gli indici del tuoAccount AWS, sostituiscilo ${IndexId} con un carattere jolly (*).

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kendra:Retrieve", "kendra:DescribeIndex" ], "Resource": "arn:aws:kendra:us-east-1:123456789012:index/${IndexId}" } ] }

Autorizzazioni per accedere al tuo database vettoriale in Amazon Serverless OpenSearch

Se hai creato un database vettoriale in OpenSearch Serverless 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}. È possibile consentire l’accesso a più raccolte aggiungendole all’elenco Resource.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "aoss:APIAccessAll" ], "Resource": [ "arn:aws:aoss:us-east-1:123456789012:collection/${CollectionId}" ] } ] }

Autorizzazioni per accedere al tuo database vettoriale in OpenSearch Managed Clusters

Se hai creato un database vettoriale in OpenSearch Managed Cluster per la tua knowledge base, allega la seguente policy al tuo ruolo di servizio Amazon Bedrock Knowledge Bases per consentire l'accesso al dominio. Sostituisci <region> e <accountId> con la regione e l'ID dell'account a cui appartiene il database. È possibile consentire l’accesso a più domini aggiungendoli all’elenco Resource. Per ulteriori informazioni sulla configurazione delle autorizzazioni, consultare Prerequisiti e autorizzazioni richiesti per l’utilizzo di cluster gestiti OpenSearch con Knowledge Base per Amazon Bedrock.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttpGet", "es:ESHttpPost", "es:ESHttpPut", "es:ESHttpDelete" ], "Resource": [ "arn:aws:es:us-east-1:123456789012:domain/domainName/indexName" ] }, { "Effect": "Allow", "Action": [ "es:DescribeDomain" ], "Resource": [ "arn:aws:es:us-east-1:123456789012:domain/domainName" ] } ] }

Autorizzazioni per accedere al cluster di database di Amazon Aurora

Nota

Il cluster Amazon Aurora deve risiedere nello stesso in cui viene Account AWS creata la knowledge base per Amazon Bedrock.

Se è stato creato un cluster di database (DB) in Amazon Aurora per la knowledge base, collegare la seguente policy al ruolo di servizio di Knowledge Base per Amazon Bedrock per consentire l’accesso al cluster di database e fornire autorizzazioni in 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} È possibile consentire l’accesso a più cluster di database aggiungendole all’elenco Resource.

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

Autorizzazioni per accedere al database vettoriale in Analisi Amazon Neptune

Se è stato creato un grafo di Analisi Amazon Neptune per la knowledge base, collegare la seguente policy al ruolo di servizio di Knowledge Base per Amazon Bedrock per consentire l’accesso al grafo. Nella policy, sostituisci ${Region} e ${AccountId} con la regione e l'ID dell'account a cui appartiene il database. Sostituiscilo ${GraphId} con i valori del tuo database grafico.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "NeptuneAnalyticsAccess", "Effect": "Allow", "Action": [ "neptune-graph:GetGraph", "neptune-graph:ReadDataViaQuery", "neptune-graph:WriteDataViaQuery", "neptune-graph:DeleteDataViaQuery" ], "Resource": [ "arn:aws:neptune-graph:us-east-1:123456789012:graph/${GraphId}" ] } ] }

Autorizzazioni per accedere all’archivio vettoriale in Amazon S3 Vectors

Se si è scelto di utilizzare Amazon S3 Vectors per la knowledge base, collegare la seguente policy al ruolo di servizio di Knowledge Base per Amazon Bedrock per consentire l’accesso all’indice vettoriale.

Nella policy, sostituisci ${Region} e ${AccountId} con la regione e l'ID dell'account a cui appartiene l'indice vettoriale. Sostituiscilo ${BucketName} con il nome del tuo bucket vettoriale S3 e ${IndexName} con il nome del tuo indice vettoriale. Per ulteriori informazioni su Amazon S3 Vectors, consultare Configurazione per utilizzare Amazon S3 Vectors.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "S3VectorBucketReadAndWritePermission", "Effect": "Allow", "Action": [ "s3vectors:PutVectors", "s3vectors:GetVectors", "s3vectors:DeleteVectors", "s3vectors:QueryVectors", "s3vectors:GetIndex" ], "Resource": "arn:aws:s3vectors:us-east-1:123456789012:bucket/${BucketName}/index/${IndexName}" } ] }

Autorizzazioni per accedere a un database vettoriale configurato con un segreto Gestione dei segreti AWS

Se il tuo database vettoriale è configurato con un Gestione dei segreti AWS segreto, allega la seguente policy al tuo ruolo di servizio Amazon Bedrock Knowledge Bases Gestione dei segreti AWS 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.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:us-east-1:123456789012: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 Gestione dei segreti AWS segreto per il vector store contenente la tua knowledge base

Autorizzazioni per la gestione AWS di una AWS KMS chiave 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}.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:123456789012:key/${KeyId}" ] } ] }

Autorizzazioni AWS per gestire un'origine dati dall'AWSaccount di un altro utente.

Per consentire l'accesso all'AWSaccount 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.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "S3ListBucketStatement", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "123456789012" } } }, { "Sid": "S3GetObjectStatement", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "123456789012" } } } ] }

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 di bucket Amazon S3 multi-account

Il bucket nell’altro account richiede la seguente policy di bucket Amazon S3. Sostituire ${KbRoleArn}${BucketName}, e ${BucketNameAndPrefix} con i valori appropriati.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ListBucket", "Effect": "Allow", "Principal": { "AWS": "123456789012" }, "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "GetObject", "Effect": "Allow", "Principal": { "AWS": "123456789012" }, "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }

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}" }