

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

## Políticas de bucket para contas cruzadas e acesso KMS-encrypted
<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 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 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 ](bedrock/latest/userguide/s3-bucket-access.html) buckets do Amazon S3.

### Política de chaves 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 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 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 de documentos, escolha o prefixo Amazon S3 onde seus `.metadata.json` arquivos estão.

1. **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](#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 ** no menu suspenso 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 os padrões de filtro de ** arquivo ** para adicionar padrões regex para incluir ou excluir arquivos específicos.

1. (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](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 no nível do documento, `aclEnabled` defina como `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 o conector digitado. `connectorParameters` Para os campos que envolvem `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 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](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 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 disso`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 filtragem. ](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html)