

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 Anda untuk menyerap objek yang Anda simpan di sana.

## Fitur yang didukung
<a name="kb-managed-supported-features-s3"></a>
+ Bidang metadata dokumen melalui file metadata terpisah
+ Filter konten inklusi dan pengecualian menggunakan pola file dan awalan kunci S3
+ Sinkronisasi konten tambahan 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 Wilayah yang sama AWS 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 lebih umum, lihat Meng [ onfigurasi akses ke bucket Amazon S3](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 pada kebijakan bucket lintas akun. Tunggu 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 mencakup 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 untuk menggunakan metadata dokumen, tentukan awalan Amazon S3 tempat `.metadata.json` file Anda berada.

1. **Hubungkan sumber data. ** Buat sumber data Amazon S3 di basis pengetahuan menggunakan API Konsol Manajemen AWS atau. 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 ]

**Menyambungkan 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 filter awalan dan 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 berisi yang berikut ini:

```
{
    "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` tidak sinkron: 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 tipe konektor di`connectorParameters`. Untuk bidang yang membungkus `connectorParameters` (seperti `deletionProtectionConfiguration` dan`mediaExtractionConfiguration`), lihat[Menghubungkan sumber data](kb-managed-connect-ds.md).


**KoneksiKonfigurasi**  

| Bidang | Diperlukan | Deskripsi | 
| --- | --- | --- | 
| bucketName | Ya | Nama bucket 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 dicerna. | 
| 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 (.metadata.json) disimpan. | 
| 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 | Ber globalAccessControlListS3Uri isi — URI Amazon S3 dari file JSON yang memetakan awalan kunci ke entri kontrol akses. Diperlukan kapan aclEnabled adatrue; diabaikan aclEnabled kapanfalse. Lihat [Document-level kontrol akses](kb-managed-ds-s3-acl.md). | 

### Berkas metadata dokumen
<a name="kb-managed-s3-metadata-files"></a>

Anda dapat melampirkan metadata ke setiap dokumen dengan mengunggah file sidecar 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 dan pemfilteran](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html).