View a markdown version of this page

Amazon S3 - 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á.

Amazon S3

O Amazon S3 é um serviço de armazenamento de objetos que armazena dados como objetos em buckets. Você pode conectar um bucket do Amazon S3 como fonte de dados para sua base de conhecimento gerenciada para ingerir os objetos que você armazena lá.

Recursos compatíveis

  • Campos de metadados do documento por meio de arquivos de metadados separados

  • Filtros de conteúdo de inclusão e exclusão usando padrões de arquivo e prefixos de chave do S3

  • Sincronização incremental de conteúdo para conteúdo adicionado, atualizado e excluído

  • Cross-account Acesso ao bucket do Amazon S3

  • Document-level controle de acesso (ACLs), com arquivos ACL fornecidos pelo cliente

Pré-requisitos

No Amazon S3, verifique se:

  • Anote o nome do bucket do Amazon S3 e o ID da AWS conta do proprietário do bucket. O bucket deve ser um bucket de uso geral na mesma AWS região da sua base de conhecimento e você deve ter permissão para acessá-lo.

  • Se o bucket estiver em uma AWS conta diferente da base de conhecimento ou se estiver criptografado com uma chave KMS gerenciada pelo cliente, configure a política do bucket e (se aplicável) a política de chaves KMS para permitir o acesso da sua função de serviço da base de conhecimento. Consulte Políticas de bucket para contas cruzadas e acesso KMS-encrypted.

Em sua AWS conta, certifique-se de:

  • Inclua as permissões necessárias para se conectar à sua fonte de dados em sua role/permissions política AWS Identity and Access Management (IAM) para sua base de conhecimento. Para obter informações sobre as permissões necessárias, consultePermissões para acessar as fontes de dados.

Políticas de bucket para contas cruzadas e acesso KMS-encrypted

Se o bucket do Amazon S3 estiver em uma AWS conta diferente da sua base de conhecimento ou se estiver criptografado com uma chave KMS gerenciada pelo cliente, adicione uma política baseada em recursos para conceder acesso à função de serviço da sua base de conhecimento. Os exemplos a seguir mostram as declarações mínimas necessárias.

Cross-account política de bucket

Na conta que possui o bucket Amazon S3, adicione a seguinte declaração à política do bucket. kb-account-idSubstitua pelo ID da conta em que sua base de conhecimento foi criada, kb-service-role pelo nome da sua função de serviço da base de conhecimento e bucket-name pelo nome do seu bucket.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBedrockKnowledgeBaseAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::kb-account-id:role/kb-service-role" }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }

Para obter orientações mais gerais, consulte Configurar o acesso aos buckets do Amazon S3.

Política de chaves KMS para buckets criptografados

Se seu bucket do Amazon S3 estiver criptografado com uma chave KMS gerenciada pelo cliente, adicione a seguinte declaração à política de chaves. Use os mesmos espaços reservados da política de bucket entre contas. Aguarde alguns minutos para que as principais mudanças de política se propaguem.

{ "Sid": "AllowBedrockKnowledgeBaseKmsAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::kb-account-id:role/kb-service-role" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }

"Resource": "*"Aqui está o escopo da chave à qual a política está anexada.

Como configurar uma fonte de dados do Amazon S3

A configuração de uma fonte de dados do Amazon S3 envolve as seguintes etapas:

  1. Prepare seu balde. Confirme o nome do bucket, o ID da conta e (para acesso entre contas) a política do bucket. Se você planeja usar metadados de documentos, escolha o prefixo Amazon S3 onde seus .metadata.json arquivos estão.

  2. Conecte a fonte de dados. Crie a fonte de dados do Amazon S3 na base de conhecimento usando o Console de gerenciamento da AWS ou a API. Consulte Crie a fonte de dados.

  3. (Opcional) Ative o controle de acesso em nível de documento. Filtre os resultados da consulta por permissões de usuário definidas nos arquivos ACL fornecidos pelo cliente. Consulte Document-level controles de acesso.

Crie a fonte de dados

Console
Para conectar um bucket do Amazon S3 à sua base de conhecimento gerenciada
  1. Em Fonte de dados, forneça um nome para sua fonte de dados.

  2. Selecione Amazon S3 no menu suspenso da fonte de dados.

  3. Em Localização da fonte de dados, escolha se o bucket do Amazon S3 está em Esta conta da AWS ou em outra conta da AWS.

  4. Insira o URI do Amazon S3 do seu bucket. Você pode escolher Browse S3 para selecionar um bucket.

  5. (Opcional) Insira um prefixo de arquivos de metadados — o prefixo do Amazon S3 em que os arquivos de metadados do documento (.metadata.json) são armazenados para essa fonte de dados.

  6. (Opcional) Expanda os padrões de filtro de prefixo do S3 para incluir ou excluir caminhos específicos.

  7. (Opcional) Expanda os padrões de filtro de arquivo para adicionar padrões regex para incluir ou excluir arquivos específicos.

  8. (Opcional) Para habilitar o controle de acesso no nível do documento, selecione Controlar o acesso ao documento com ACLs e forneça o URI do Amazon S3 do seu arquivo ACL global. Essa opção não pode ser alterada após a criação. Para obter detalhes, consulte Document-level controles de acesso.

API

Para criar uma fonte de dados do Amazon S3, envie uma CreateDataSource solicitação com um endpoint de tempo de construção do Agents for Amazon Bedrock. O AWS Command Line Interface exemplo a seguir cria uma fonte de dados para um bucket na mesma conta, com filtros de prefixo e padrão. Para obter uma descrição de cada campo, consulte a referência de parâmetros do conector a seguir.

aws bedrock-agent create-data-source \ --name "S3-connector" \ --knowledge-base-id "your-knowledge-base-id" \ --data-source-configuration file://s3-managed-connector.json

O s3-managed-connector.json arquivo contém o seguinte:

{ "type": "MANAGED_KNOWLEDGE_BASE_CONNECTOR", "managedKnowledgeBaseConnectorConfiguration": { "connectorParameters": { "type": "S3", "version": "1", "connectionConfiguration": { "bucketName": "my-knowledge-base-bucket", "bucketOwnerAccountId": "123456789012" }, "filterConfiguration": { "inclusionPrefixes": ["documents/"], "inclusionPatterns": [".*\\.pdf", ".*\\.txt"], "exclusionPatterns": [".*\\.tmp"] }, "metadataFilesPrefix": "metadata/" } } }

Para ativar o controle de acesso no nível do documento, aclEnabled defina como true e adicione um aclConfiguration com. globalAccessControlListS3Uri Consulte Document-level controles de acesso.

Para bases de conhecimento gerenciadas, CreateDataSource é assíncrono: o status da fonte de dados muda de CREATING para AVAILABLE quando a operação é concluída.

Parâmetros do conector

A configuração da fonte de dados usa os seguintes parâmetros do conector. Para se conectar ao Amazon S3, especifique S3 como o conector digitado. connectorParameters Para os campos que envolvem connectorParameters (como deletionProtectionConfiguration emediaExtractionConfiguration), consulteConectar uma fonte de dados.

connectionConfiguration
Campo Obrigatório Descrição
bucketName Sim O nome do bucket do Amazon S3.
bucketOwnerAccountId Condicional O ID da AWS conta do proprietário do bucket. Necessário para acesso entre contas.
Configuração do filtro (opcional)
Campo Obrigatório Description
inclusionPrefixes Não Lista de prefixos de chave do Amazon S3 a serem incluídos (por exemplo,). documents/
exclusionPrefixes Não Lista de prefixos de chave do Amazon S3 a serem excluídos (por exemplo,). archive/
inclusionPatterns Não Lista de expressões regulares. Somente objetos cujas chaves correspondam a pelo menos um padrão são ingeridos.
exclusionPatterns Não Lista de expressões regulares. Objetos cujas chaves correspondem a qualquer padrão não são ingeridos.
maxFileSizeInMegaBytes Não Tamanho máximo, em megabytes, de qualquer arquivo individual que o conector ingere. Forneça como uma string numérica (por exemplo,"500"). O padrão é "500".
Top-level parâmetros do conector (opcional)
Campo Obrigatório Description
metadataFilesPrefix Não O prefixo Amazon S3 em que os arquivos de metadados do documento (.metadata.json) são armazenados.
aclEnabled Não Defina como true para ativar o controle de acesso em nível de documento. Você não pode alterar essa configuração depois de criar a fonte de dados. Para obter detalhes, consulte Document-level controles de acesso.
aclConfiguration Condicional Contém globalAccessControlListS3Uri — o URI do Amazon S3 de um arquivo JSON que mapeia prefixos de chave para entradas de controle de acesso. Obrigatório quando aclEnabled étrue; ignorado quando aclEnabled éfalse. Consulte Document-level controles de acesso.

Arquivos de metadados do documento

Você pode anexar metadados a cada documento fazendo o upload de um arquivo auxiliar junto com ele. Para cada documento, crie um arquivo nomeado filename.extension.metadata.json no mesmo caminho do Amazon S3. O arquivo de metadados não deve exceder 10 KB. Por exemplo, além dissoreport.pdf, faça o upload report.pdf.metadata.json com o seguinte conteúdo:

{ "metadataAttributes": { "company": { "value": { "type": "STRING", "stringValue": "BioPharm Innovations" } }, "created_date": { "value": { "type": "NUMBER", "numberValue": 20221205 } }, "author": { "value": { "type": "STRING", "stringValue": "Lisa Thompson" } } } }

Para obter informações sobre os tipos de dados de atributos suportados e os operadores de filtragem que você pode aplicar no momento da consulta, consulte Metadados e filtragem.