

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Amazon S3
<a name="kb-managed-ds-s3"></a>

Amazon S3 adalah layanan penyimpanan objek yang menyimpan data sebagai objek dalam bucket. Anda dapat menghubungkan bucket Amazon S3 sebagai sumber data untuk basis pengetahuan terkelola untuk menelan objek yang Anda simpan di sana.

## Fitur yang didukung
<a name="kb-managed-supported-features-s3"></a>
+ Dokumentasikan bidang metadata melalui file metadata terpisah
+ Filter konten inklusi dan pengecualian menggunakan pola file dan awalan kunci S3
+ Konten tambahan disinkronkan untuk konten yang ditambahkan, diperbarui, dan dihapus
+ Cross-account Akses bucket Amazon S3
+ Document-level kontrol akses (ACL), dengan file ACL yang disediakan pelanggan

## Prasyarat
<a name="kb-managed-prereqs-s3"></a>

**Di Amazon S3, pastikan Anda**:
+ Perhatikan nama bucket Amazon S3 dan ID AWS akun pemilik bucket. Bucket harus berupa bucket Tujuan Umum di AWS Wilayah yang sama dengan basis pengetahuan Anda, dan Anda harus memiliki izin untuk mengaksesnya.
+ Jika bucket berada di AWS akun yang berbeda dari basis pengetahuan, atau jika dienkripsi dengan kunci KMS yang dikelola pelanggan, konfigurasikan kebijakan bucket dan (jika berlaku) kebijakan kunci KMS untuk mengizinkan akses dari peran layanan basis pengetahuan Anda. Lihat [Kebijakan bucket untuk lintas akun dan akses KMS-encrypted](#kb-managed-s3-bucket-policies).

**Di AWS akun Anda, pastikan Anda**:
+ Sertakan izin yang diperlukan untuk terhubung ke sumber data Anda dalam role/permissions kebijakan AWS Identity and Access Management (IAM) untuk basis pengetahuan Anda. Untuk informasi tentang izin yang diperlukan, lihat[Izin untuk mengakses sumber data Anda](kb-permissions.md#kb-permissions-access-ds).

## Kebijakan bucket untuk lintas akun dan akses KMS-encrypted
<a name="kb-managed-s3-bucket-policies"></a>

Jika bucket Amazon S3 Anda berada di AWS akun yang berbeda dari basis pengetahuan Anda, atau jika dienkripsi dengan kunci KMS yang dikelola pelanggan, tambahkan kebijakan berbasis sumber daya untuk memberikan akses peran layanan basis pengetahuan Anda. Contoh berikut menunjukkan pernyataan minimum yang diperlukan.

### Cross-account kebijakan bucket
<a name="kb-managed-s3-cross-account-policy"></a>

Di akun yang memiliki bucket Amazon S3, tambahkan pernyataan berikut ke kebijakan bucket. Ganti {{kb-account-id}} dengan ID akun tempat basis pengetahuan Anda dibuat, {{kb-service-role}} dengan nama peran layanan basis pengetahuan Anda, dan {{bucket-name}} dengan nama bucket Anda.

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

Untuk panduan umum lainnya, lihat [Mengonfigurasi akses ke bucket Amazon S3](https://docs.aws.amazon.com/bedrock/latest/userguide/s3-bucket-access.html).

### Kebijakan kunci KMS untuk bucket terenkripsi
<a name="kb-managed-s3-kms-policy"></a>

Jika bucket Amazon S3 Anda dienkripsi dengan kunci KMS yang dikelola pelanggan, tambahkan pernyataan berikut ke kebijakan kunci. Gunakan placeholder yang sama seperti dalam kebijakan bucket lintas akun. Biarkan beberapa menit agar perubahan kebijakan utama menyebar.

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

Di `"Resource": "*"` sini cakupan kunci yang dilampirkan kebijakan.

## Cara mengatur sumber data Amazon S3
<a name="kb-managed-s3-workflow"></a>

Menyiapkan sumber data Amazon S3 melibatkan langkah-langkah berikut:

1. **Siapkan ember Anda.** Konfirmasikan nama bucket, ID akun, dan (untuk akses lintas akun) kebijakan bucket. Jika Anda berencana menggunakan metadata dokumen, tentukan awalan Amazon S3 tempat file Anda tinggal. `.metadata.json`

1. **Connect sumber data.** Buat sumber data Amazon S3 di basis pengetahuan menggunakan Konsol Manajemen AWS atau API. Lihat [Buat sumber data](#kb-managed-ds-s3-create).

1. **(Opsional) Aktifkan kontrol akses tingkat dokumen.** Filter hasil kueri berdasarkan izin pengguna yang ditentukan dalam file ACL yang disediakan pelanggan. Lihat [Document-level kontrol akses](kb-managed-ds-s3-acl.md).

## Buat sumber data
<a name="kb-managed-ds-s3-create"></a>

------
#### [ Console ]

**Untuk menghubungkan bucket Amazon S3 ke basis pengetahuan terkelola**

1. Di bawah **Sumber data**, berikan nama untuk sumber data Anda.

1. Pilih **Amazon S3 dari dropdown** sumber data.

1. Di bawah **Lokasi sumber data**, pilih apakah bucket Amazon S3 ada di akun **AWS ini atau akun **AWS**** Lainnya.

1. Masukkan URI Amazon S3 dari bucket Anda. Anda dapat memilih **Browse S3** untuk memilih bucket.

1. (Opsional) Masukkan **awalan file Metadata — awalan** Amazon S3 tempat file metadata dokumen () `.metadata.json` disimpan untuk sumber data ini.

1. (Opsional) Perluas **pola filter awalan S3** untuk menyertakan atau mengecualikan jalur tertentu.

1. (Opsional) Perluas **pola filter File** untuk menambahkan pola regex untuk menyertakan atau mengecualikan file tertentu.

1. (Opsional) Untuk mengaktifkan kontrol akses tingkat dokumen, pilih **Kontrol akses dokumen dengan ACL** dan berikan URI Amazon S3 dari file ACL global Anda. Opsi ini tidak dapat diubah setelah pembuatan. Lihat perinciannya di [Document-level kontrol akses](kb-managed-ds-s3-acl.md).

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

Untuk membuat sumber data Amazon S3, kirim [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)permintaan dengan titik akhir waktu pembuatan Agen untuk Amazon Bedrock. AWS Command Line Interface Contoh berikut membuat sumber data untuk bucket di akun yang sama, dengan awalan dan filter pola. Untuk deskripsi setiap bidang, lihat referensi parameter konektor berikut.

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

`s3-managed-connector.json`File tersebut berisi yang berikut:

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

Untuk mengaktifkan kontrol akses tingkat dokumen, atur `aclEnabled` ke `true` dan tambahkan dengan. `aclConfiguration` `globalAccessControlListS3Uri` Lihat [Document-level kontrol akses](kb-managed-ds-s3-acl.md).

Untuk basis pengetahuan terkelola, `CreateDataSource` asinkron: transisi status sumber data dari `CREATING` ke `AVAILABLE` saat operasi selesai.

------

## Parameter konektor
<a name="kb-managed-config-s3"></a>

Konfigurasi sumber data menggunakan parameter konektor berikut. Untuk menyambung ke Amazon S3, tentukan `S3` sebagai konektor ketik. `connectorParameters` Untuk bidang yang membungkus `connectorParameters` (seperti `deletionProtectionConfiguration` dan`mediaExtractionConfiguration`), lihat[Connect sumber data](kb-managed-connect-ds.md).


**ConnectionConfiguration**  

| Bidang | Diperlukan | Deskripsi | 
| --- | --- | --- | 
| bucketName | Ya | Nama ember Amazon S3. | 
| bucketOwnerAccountId | Bersyarat | ID AWS akun pemilik bucket. Diperlukan untuk akses lintas akun. | 


**FilterConfiguration (opsional)**  

| Bidang | Diperlukan | Deskripsi | 
| --- | --- | --- | 
| inclusionPrefixes | Tidak | Daftar awalan kunci Amazon S3 untuk disertakan (misalnya,). documents/ | 
| exclusionPrefixes | Tidak | Daftar awalan kunci Amazon S3 untuk dikecualikan (misalnya,). archive/ | 
| inclusionPatterns | Tidak | Daftar ekspresi reguler. Hanya objek yang kuncinya cocok dengan setidaknya satu pola yang dicerna. | 
| exclusionPatterns | Tidak | Daftar ekspresi reguler. Objek yang kuncinya cocok dengan pola apa pun tidak tertelan. | 
| maxFileSizeInMegaBytes | Tidak | Ukuran maksimum, dalam megabyte, dari setiap file tunggal yang dicerna konektor. Berikan sebagai string numerik (misalnya,"500"). Default ke "500". | 


**Top-level parameter konektor (opsional)**  

| Bidang | Diperlukan | Deskripsi | 
| --- | --- | --- | 
| metadataFilesPrefix | Tidak | Awalan Amazon S3 tempat file metadata dokumen () disimpan. .metadata.json | 
| aclEnabled | Tidak | Setel true untuk mengaktifkan kontrol akses tingkat dokumen. Anda tidak dapat mengubah pengaturan ini setelah Anda membuat sumber data. Lihat perinciannya di [Document-level kontrol akses](kb-managed-ds-s3-acl.md). | 
| aclConfiguration | Bersyarat | Berisi globalAccessControlListS3Uri — URI Amazon S3 dari file JSON yang memetakan awalan kunci untuk mengakses entri kontrol. Diperlukan kapan aclEnabledtrue; diabaikan kapan aclEnabledfalse. Lihat [Document-level kontrol akses](kb-managed-ds-s3-acl.md). | 

### Dokumentasikan file metadata
<a name="kb-managed-s3-metadata-files"></a>

Anda dapat melampirkan metadata ke setiap dokumen dengan mengunggah file sespan di sampingnya. Untuk setiap dokumen, buat file bernama `{{filename.extension}}.metadata.json` di jalur Amazon S3 yang sama. File metadata tidak boleh melebihi 10 KB. Misalnya, di samping`report.pdf`, unggah `report.pdf.metadata.json` dengan konten berikut:

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

Untuk informasi tentang tipe data atribut yang didukung dan operator pemfilteran yang dapat Anda terapkan pada waktu kueri, lihat [Metadata](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html) dan pemfilteran.