Crie uma função de serviço para bases de conhecimento do Amazon Bedrock - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Crie uma função de serviço para bases de conhecimento do Amazon Bedrock

Para usar uma função personalizada para uma base de conhecimento em vez da que o Amazon Bedrock cria automaticamente, crie uma IAM função e anexe as seguintes permissões seguindo as etapas em Criar uma função para delegar permissões a um AWS serviço. Inclua somente as permissões necessárias para sua própria segurança.

  • Relação de confiança

  • Acesso aos modelos básicos do Amazon Bedrock

  • Acesso à fonte de dados onde você armazena seus dados

  • (Se você criar um banco de dados vetoriais no Amazon OpenSearch Service) Acesso à sua coleção OpenSearch de serviços

  • (Se você criar um banco de dados vetorial no Amazon Aurora) Acesso ao seu cluster Aurora

  • (Se você criar um banco de dados vetoriais em Pinecone ouRedis Enterprise Cloud) Permissões AWS Secrets Manager para autenticar sua conta Pinecone ou Redis Enterprise Cloud

  • (Opcional) Se você criptografar qualquer um dos seguintes recursos com uma KMS chave, permissões para descriptografar a chave (consulte). Criptografia de recursos da base de conhecimento

    • Sua base de conhecimento

    • Fontes de dados para sua base de conhecimento

    • Seu banco de dados vetoriais no Amazon OpenSearch Service

    • O segredo do seu banco de dados vetoriais de terceiros em AWS Secrets Manager

    • Um trabalho de ingestão de dados

Relação de confiança

A política a seguir permite que o Amazon Bedrock assuma esse perfil e crie e gerencie bases de conhecimento. Veja a seguir um exemplo de política que você pode usar. Você pode restringir o escopo da permissão usando uma ou mais chaves de contexto de condição global. Para obter mais informações, consulte Chaves de contexto de condição globais da AWS. Defina o valor aws:SourceAccount para o ID da sua conta. Use a condição ArnEquals ou ArnLike para restringir o escopo a bases de conhecimento específicas.

nota

Como melhor prática para fins de segurança, substitua o * com uma base de conhecimento específica IDs depois de criá-los.

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

Permissões para acessar os modelos do Amazon Bedrock

Anexe a política a seguir para fornecer permissões para que o perfil use os modelos do Amazon Bedrock para incorporar os dados de origem.

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

Permissões para acessar suas fontes de dados

Selecione uma das seguintes fontes de dados para anexar as permissões necessárias para a função.

Permissões para acessar sua fonte de dados do Amazon S3

Anexe a política a seguir para fornecer permissões para que a função acesse o Amazon S3.

Se você criptografou a fonte de dados com uma AWS KMS chave, anexe permissões para descriptografar a chave à função seguindo as etapas em. Permissões para descriptografar sua AWS KMS chave para suas fontes de dados no 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": "account-id" } } }] }

Permissões para acessar sua fonte de dados do Confluence

nota

O conector de fonte de dados do Confluence está na versão prévia e está sujeito a alterações.

Anexe a política a seguir para fornecer permissões para que a função acesse o Confluence.

nota

secretsmanager:PutSecretValuesó é necessário se você usar a autenticação OAuth 2.0 com um token de atualização.

O token de acesso do Confluence OAuth2 4.0 tem um tempo de expiração padrão de 60 minutos. Se esse token expirar enquanto sua fonte de dados estiver sincronizando (trabalho de sincronização), o Amazon Bedrock usará o token de atualização fornecido para regenerar esse token. Essa regeneração atualiza os tokens de acesso e atualização. Para manter os tokens atualizados da tarefa de sincronização atual para a próxima tarefa de sincronização, o Amazon Bedrock exige permissões de gravação/colocação para suas credenciais secretas.

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

Permissões para acessar sua fonte de SharePoint dados da Microsoft

nota

SharePoint o conector da fonte de dados está na versão prévia e está sujeito a alterações.

Anexe a política a seguir para fornecer permissões para o acesso da função SharePoint.

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

Permissões para acessar sua fonte de dados do Salesforce

nota

O conector de fonte de dados do Salesforce está na versão prévia e está sujeito a alterações.

Anexe a política a seguir para fornecer permissões para que a função acesse o Salesforce.

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

Permissões para conversar com seu documento

Anexe a seguinte política para fornecer permissões para que a função use os modelos do Amazon Bedrock para conversar com seu documento:

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

Se você quiser conceder a um usuário acesso apenas para conversar com seu documento (e não RetrieveAndGenerate em todas as bases de conhecimento), use a seguinte política:

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

Se você quiser conversar com seu documento e usá-lo RetrieveAndGenerate em uma Base de Conhecimento específica, forneça insert KB ARNe use a seguinte política:

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

(Opcional) Permissões para acessar seu banco de dados vetoriais no Amazon OpenSearch Service

Se você criou um banco de dados vetoriais no Amazon OpenSearch Service para sua base de conhecimento, anexe a seguinte política às suas bases de conhecimento para a função de serviço Amazon Bedrock para permitir o acesso à coleção. Substituir region e account-id com a região e o ID da conta aos quais o banco de dados pertence. Insira o ID da sua coleção de OpenSearch serviços da Amazon em collection-id. Você pode permitir o acesso a várias coleções adicionando-as à Resource lista.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "aoss:APIAccessAll" ], "Resource": [ "arn:aws:aoss:region:account-id:collection/collection-id" ] }] }

(Opcional) Permissões para acessar o cluster de banco de dados do Amazon Aurora

Se você criou um cluster de banco de dados (DB) no Amazon Aurora para sua base de conhecimento, anexe a seguinte política às suas bases de conhecimento para a função de serviço Amazon Bedrock para permitir acesso ao cluster de banco de dados e fornecer permissões de leitura e gravação nele. Substituir region e account-id com a região e o ID da conta aos quais o cluster de banco de dados pertence. Insira o ID do seu cluster de banco de dados Amazon Aurora em db-cluster-id. Você pode permitir o acesso a vários clusters de banco de dados adicionando-os à Resource lista.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RdsDescribeStatementID", "Effect": "Allow", "Action": [ "rds:DescribeDBClusters" ], "Resource": [ "arn:aws:rds:region:account-id:cluster:db-cluster-id" ] }, { "Sid": "DataAPIStatementID", "Effect": "Allow", "Action": [ "rds-data:BatchExecuteStatement", "rds-data:ExecuteStatement" ], "Resource": [ "arn:aws:rds:region:account-id:cluster:db-cluster-id" ] }] }

(Opcional) Permissões para acessar um banco de dados vetorial configurado com um AWS Secrets Manager segredo

Se seu banco de dados vetoriais estiver configurado com um AWS Secrets Manager segredo, anexe a seguinte política à função de serviço da sua base de conhecimento do Amazon Bedrock AWS Secrets Manager para permitir a autenticação de sua conta para acessar o banco de dados. Substituir region e account-id com a região e o ID da conta aos quais o banco de dados pertence. Substituir secret-id com o ID do seu segredo.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:region:account-id:secret:secret-id" ] }] }

Se você criptografou seu segredo com uma AWS KMS chave, anexe permissões para descriptografar a chave à função seguindo as etapas em. Permissões para descriptografar um AWS Secrets Manager segredo para o armazenamento de vetores que contém sua base de conhecimento

(Opcional) Permissões AWS para gerenciar uma AWS KMS chave para armazenamento transitório de dados durante a ingestão de dados

Para permitir a criação de uma AWS KMS chave para armazenamento transitório de dados no processo de ingestão de sua fonte de dados, anexe a seguinte política às suas bases de conhecimento para a função de serviço Amazon Bedrock. Substitua o region, account-id e key-id com os valores apropriados.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ] } ] }

(Opcional) Permissões AWS para gerenciar fontes de dados da AWS conta de outro usuário.

Para permitir o acesso à AWS conta de outro usuário, você deve criar uma função que permita o acesso entre contas a um bucket do Amazon S3 na conta de outro usuário. Substitua o bucketName, bucketOwnerAccountId e bucketNameAndPrefix com os valores apropriados.

Permissões necessárias na função da Base de Conhecimento

A função da base de conhecimento fornecida durante a criação da base de conhecimento createKnowledgeBase requer as seguintes permissões do 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 o bucket do Amazon S3 for criptografado usando uma AWS KMS chave, o seguinte também precisará ser adicionado à função da base de conhecimento. Substitua o bucketOwnerAccountId e region com os valores apropriados.

{ "Sid": "KmsDecryptStatement", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:region:bucketOwnerAccountId:key/keyId" ], "Condition": { "StringEquals": { "kms:ViaService": [ "s3.region.amazonaws.com" ] } } }

Permissões necessárias em uma política de bucket do Amazon S3 entre contas

O bucket na outra conta exige a seguinte política de bucket do Amazon S3. Substitua o kbRoleArn, bucketName e bucketNameAndPrefix com os valores apropriados.

{ "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/*" ] } ] }

Permissões necessárias na política de AWS KMS chaves entre contas

Se o bucket do Amazon S3 entre contas for criptografado usando AWS KMS uma chave nessa conta, a política da chave exigirá AWS KMS a seguinte política. Substitua o kbRoleArn e kmsKeyArn com os valores apropriados.

{ "Sid": "Example policy", "Effect": "Allow", "Principal": { "AWS": [ "kbRoleArn" ] }, "Action": [ "kms:Decrypt" ], "Resource": "kmsKeyArn" }