

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
<a name="kb-managed-ds-s3"></a>

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
<a name="kb-managed-supported-features-s3"></a>
+ 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
<a name="kb-managed-prereqs-s3"></a>

**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](#kb-managed-s3-bucket-policies).

**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, consulte[Permissões para acessar as fontes de dados](kb-permissions.md#kb-permissions-access-ds).

## Políticas de bucket para acesso e KMS-encrypted contas cruzadas
<a name="kb-managed-s3-bucket-policies"></a>

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
<a name="kb-managed-s3-cross-account-policy"></a>

Na conta que possui o bucket do Amazon S3, adicione a seguinte declaração à política do bucket. {{kb-account-id}}Substitua 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](https://docs.aws.amazon.com/bedrock/latest/userguide/s3-bucket-access.html).

### Política de chaves do KMS para buckets criptografados
<a name="kb-managed-s3-kms-policy"></a>

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 name="kb-managed-s3-workflow"></a>

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

1. **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](#kb-managed-ds-s3-create).

1. **(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](kb-managed-ds-s3-acl.md).

## Crie a fonte de dados
<a name="kb-managed-ds-s3-create"></a>

------
#### [ 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.

1. Selecione **Amazon S3 na lista suspensa** da fonte de dados.

1. 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**.

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

1. (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.

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

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

1. (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](kb-managed-ds-s3-acl.md).

------
#### [ API ]

Para criar uma fonte de dados do Amazon S3, envie uma [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)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 em nível de documento, `aclEnabled` defina `true` e adicione um `aclConfiguration` com. `globalAccessControlListS3Uri` Consulte [Document-level controles de acesso](kb-managed-ds-s3-acl.md).

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 name="kb-managed-config-s3"></a>

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` e`mediaExtractionConfiguration`), consulte[Conectar uma fonte de dados](kb-managed-connect-ds.md).


**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](kb-managed-ds-s3-acl.md). | 
| 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](kb-managed-ds-s3-acl.md). | 

### Arquivos de metadados do documento
<a name="kb-managed-s3-metadata-files"></a>

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 lado`report.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](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html) filtragem.