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

  • Documente campos de metadados 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ções incrementais 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 do KMS para permitir o acesso a partir da sua função de serviço da base de conhecimento. Consulte Políticas de bucket para acesso e KMS-encrypted contas cruzadas.

Em sua AWS conta, certifique-se de:

  • Inclua as permissões necessárias para se conectar à sua fonte de dados na role/permissions política AWS Identity and Access Management (IAM) da 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 acesso e KMS-encrypted contas cruzadas

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 do 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 função de serviço da base de conhecimento e bucket-name pelo nome do 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 mais orientações gerais, consulte Configurar o acesso aos buckets do Amazon S3.

Política de chaves do 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 compartimento entre contas. Aguarde alguns minutos para que as principais mudanças na 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": "*" }

O "Resource": "*" aqui abrange a 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 do documento, escolha o prefixo do Amazon S3 em que seus arquivos residem.metadata.json.

  2. Conecte a fonte de dados. Crie a fonte de dados do Amazon S3 na base de conhecimento usando a 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 na lista suspensa 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 Padrões de filtro de arquivo para adicionar padrões de regex para incluir ou excluir arquivos específicos.

  8. (Opcional) Para habilitar o controle de acesso em nível de documento, selecione Controlar acesso a documentos 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 CreateDataSourcesolicitaçã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 em nível de documento, aclEnabled defina 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 tipo de conector. connectorParameters Para os campos que são agrupados 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 correspondem 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 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 do 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 ao lado dele. 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, ao ladoreport.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.