View a markdown version of this page

Document-level kontrol akses - Amazon Bedrock

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

Document-level kontrol akses

Kesadaran ACL bukanlah otorisasi

Basis Pengetahuan Terkelola Batuan Dasar menyediakan ACL-aware penyaringan, bukan batas keamanan. Basis Pengetahuan Terkelola Bedrock tidak mengautentikasi pengguna akhir — aplikasi Anda bertanggung jawab untuk mengautentikasi pengguna dan meneruskan konteks identitas terverifikasi. Karena Basis Pengetahuan Terkelola Bedrock tidak dapat memverifikasi keaslian konteks pengguna yang Anda berikan, fitur ini memfilter hasil berdasarkan identitas yang Anda berikan tetapi bukan merupakan otorisasi yang benar. Anda tidak boleh mengandalkan fitur ini sebagai mekanisme kontrol akses tunggal tanpa otentikasi hulu.

Sumber data khusus secara opsional mendukung kontrol akses tingkat dokumen. Tidak seperti konektor yang dirayapi, sumber data kustom tidak memiliki sistem izin asli, sehingga Anda menyediakan daftar kontrol akses (ACL) untuk setiap dokumen saat Anda menelannya dengan operasi. IngestKnowledgeBaseDocuments Untuk ikhtisar kesadaran ACL di semua konektor, lihatAkses Kontrol Daftar pemberdayaan kesadaran.

Cara kerjanya

Untuk sumber data ACL-enabled kustom, Basis Pengetahuan Terkelola Bedrock menerapkan daftar kontrol akses yang disediakan pelanggan selama pemfilteran pra-pengambilan, hanya mengembalikan dokumen yang diizinkan untuk diakses oleh pengguna kueri. Real-time Verifikasi ACL tidak didukung untuk sumber data khusus karena metadata ACL yang disediakan pelanggan adalah sumber kebenaran.

Aktifkan kesadaran ACL

Untuk mengaktifkan kesadaran ACL untuk sumber data kustom, setel aclEnabled ke true connectorParameters saat Anda membuat atau memperbarui sumber data. Untuk struktur konfigurasi sumber data, lihatKhusus.

"connectorParameters": { "type": "CUSTOM", "version": "1", "aclEnabled": true }

Menyediakan kontrol akses saat Anda menelan dokumen

Anda memberikan ACL dokumen melalui accessControlList bidang pada dokumen metadata dalam IngestKnowledgeBaseDocuments permintaan. Sumber ACL ditentukan olehmetadata.type, bidang yang sama yang mengontrol dari mana atribut metadata berasal:

  • IN_LINE_ATTRIBUTE— ACL dibaca dari accessControlList array di badan permintaan.

  • S3_LOCATION— ACL dibaca dari accessControlList array dalam .metadata.json file dokumen di Amazon S3.

Karena accessControlList hidup di bawah metadata bukan sebagai bidang tingkat atasKnowledgeBaseDocument, dokumen memiliki sumber ACL tunggal, dikendalikan oleh. metadata.type Ini mencegah ACL yang bertentangan disediakan untuk dokumen yang sama (misalnya, ACL sebaris pada permintaan dan ACL dalam file S3). Penggantiannya adalah Anda tidak dapat mencampur ACL sebaris dengan atribut metadata, atau S3-based ACL dengan atribut S3-based metadata sebaris, untuk dokumen yang sama.

Setiap accessControlList entri berisi:

  • name— Alamat email pengguna.

  • type- HarusUSER.

  • access- Entah ALLOW atauDENY. Tolak penggantian memungkinkan.

ACL sebaris (metadata.type = IN_LINE_ATTRIBUTE)

Menyediakan accessControlList langsung di badan permintaan bersama atribut metadata inline.

PUT /knowledgebases/KB12345678/datasources/DS12345678/documents HTTP/1.1 Content-type: application/json { "documents": [ { "content": { "dataSourceType": "CUSTOM", "custom": { "customDocumentIdentifier": { "id": "hr-policy-2026" }, "inlineContent": { "textContent": { "data": "Annual leave policy: All full-time employees are entitled to..." }, "type": "TEXT" }, "sourceType": "IN_LINE" } }, "metadata": { "type": "IN_LINE_ATTRIBUTE", "inlineAttributes": [ { "key": "department", "value": { "stringValue": "HR", "type": "STRING" } } ], "accessControlList": [ { "name": "alice@example.com", "type": "USER", "access": "ALLOW" }, { "name": "bob@example.com", "type": "USER", "access": "DENY" } ] } } ] }

S3-based ACL (metadata.type = S3_LOKASI)

Arahkan metadata dokumen ke .metadata.json file di Amazon S3. Baik atribut metadata dan dibaca dari file itu. accessControlList

"metadata": { "type": "S3_LOCATION", "s3Location": { "uri": "s3://amzn-s3-demo-bucket/hr-policy-2026.metadata.json" } }

.metadata.jsonFile menggunakan format yang sama dengan file metadata per dokumen untuk sumber data Amazon S3. File ini menggunakan nama bidang ACL yang dikapitalisasi (NameType,,Access), yang berbeda dari nama bidang huruf kecil (name,type,access) yang digunakan dalam permintaan sebaris.

{ "metadataAttributes": {}, "accessControlList": [ { "Name": "alice@example.com", "Type": "USER", "Access": "ALLOW" }, { "Name": "bob@example.com", "Type": "USER", "Access": "DENY" } ] }

Verifikasi konfigurasi Anda

Karena ACL Kustom disediakan oleh pelangganIngestKnowledgeBaseDocuments, validasi sebelum Anda melakukan kueri:

  1. Konfirmasi aclEnabled ada true di sumber data connectorParameters (typeCUSTOM).

  2. Konfirmasikan setiap dokumen yang dicerna menyertakan accessControlList undermetadata, dan yang metadata.type cocok dengan sumber ACL (IN_LINE_ATTRIBUTEuntuk inline, S3_LOCATION untuk file S3).

  3. Konfirmasikan casing bidang entri ACL cocok dengan sumber: huruf kecilname/type/accessuntuk ACL sebaris, dikapitalisasiName//Typeuntuk file S3. Access .metadata.json

  4. Konfirmasikan email pengguna pengujian sama persis dengan ALLOW entri name dalam dokumen yang Anda harapkan untuk diambil.

Pemecahan masalah

catatan

Kesalahan konfigurasi ACL tidak menghasilkan kesalahan eksplisit selama pengambilan. Pengambilan gagal ditutup: dokumen yang terpengaruh dihilangkan secara diam-diam, sehingga kueri mengembalikan hasil yang lebih sedikit atau nol daripada kesalahan. Gunakan pemeriksaan verifikasi di atas untuk mendiagnosis masalah ini.

ACL-enabled Gejala, penyebab, dan perbaikan khusus
Gejala Kemungkinan penyebabnya Perbaiki
Retrieve mengembalikan 0 hasil untuk pengguna yang seharusnya memiliki akses. userIdEmail tidak cocok dengan accessControlList entri apa pun. Sejajarkan email pengguna dengan ALLOW entri name dalam.
ACL inline ditolak atau diabaikan. Casing lapangan salah, atau metadata.type tidakIN_LINE_ATTRIBUTE. Gunakan huruf kecilname/type/accessdan atur metadata.type ke. IN_LINE_ATTRIBUTE
S3-based ACL tidak diterapkan. metadata.typetidakS3_LOCATION, atau .metadata.json filenya hilangaccessControlList. Setel metadata.type ke S3_LOCATION dan sertakan accessControlList dalam file.
Dokumen tidak pernah dikembalikan kepada siapa pun. Dokumen itu dicerna tanpa file. accessControlList Re-ingest dokumen denganaccessControlList.