Gesaan dan Konteks
Platform anda menyimpan imej dalam registri OCI, manakala saluran paip pelepasan (release pipeline) mesti melampirkan tandatangan, SBOM, dan laporan kerentanan. Reka perkhidmatan penemuan dan pengesahan: berdasarkan repositori dan digest imej yang diberikan, kembalikan artifak yang dilampirkan, tapis mengikut artifactType, sokong registri yang tidak mempunyai Referrers API, dan sekat imej yang tidak disahkan sebelum pelaksanaan (deployment). Sasarkan jurutera backend atau platform; fokus pada protokol registri dan sempadan perkhidmatan dan bukannya satu SDK awan.
Perkara yang Dinilai oleh Penemu Bual
Jawapan yang kukuh menganggap digest imej sebagai subject yang tidak boleh diubah (immutable), bukan teg. Ia memahami bahawa subject mencipta perkaitan, artifactType menerangkan tujuan, dan Referrers API mengembalikan OCI Index. Ia juga merangkumi teg sandaran legasi, penomboran halaman, ketekalan cache, dan fakta bahawa penemuan artifak adalah berasingan daripada mengesahkan tandatangan. "Membaca teg imej" atau "SBOM membuktikan kepercayaan" mendedahkan model keselamatan yang tidak lengkap.
Penjelasan untuk Ditanya Terlebih Dahulu
- Adakah input itu merupakan teg atau digest? Jika ia adalah teg, selesaikan dan pin digest sebelum pengesahan.
- Adakah registri yang mengembalikan 404 mesti disokong? Jika ya, laksanakan teg sandaran OCI dan kendalikan kemas kini serentak.
- Adakah keputusannya akan mengawal pelaksanaan (deployment)? Jika ya, sahkan tandatangan, identiti penerbit, dan digest di dalam sempadan kepercayaan.
- Bolehkah senarai perkaitan melebihi satu halaman? Jika ya, salurkan
nextTokenyang legap (opaque) tanpa mentafsirkannya.
Rangka Kerja Jawapan 30 Saat
"Saya menyelesaikan teg kepada digest terlebih dahulu dan menggunakan digest tersebut sebagai subject untuk setiap perkaitan. Saya memanggil /v2/{name}/referrers/{digest} dan menapis tandatangan, SBOM, atau laporan mengikut jenis artifak. Respons 404 daripada registri yang lebih lama mencetuskan teg sandaran yang diterbitkan daripada digest. Penemuan diikuti oleh pengesahan tandatangan dan penerbit sebelum dasar memutuskan sama ada pelaksanaan dibenarkan. API senarai dipaginasi dan dicache dengan TTL singkat menggunakan kunci yang merangkumi digest dan penapis."
Panduan Terperinci Langkah demi Langkah
OCI 1.1 menggunakan manifes subject untuk menunjuk kepada manifes yang dirujuk, manakala artifactType menerangkan artifak yang dilampirkan. Referrers API mengembalikan OCI Index yang mana deskriptornya merangkumi digest, jenis media, dan jenis artifak:
GET /v2/{name}/referrers/{subject-digest}?artifactType={type}Tolak permintaan pengesahan tanpa digest. Teg ialah penunjuk yang boleh berubah (mutable) dan tidak boleh menjadi kunci utama untuk pengesahan tandatangan. Selesaikan sekali, rekod digest yang terhasil, dan salurkan digest tersebut melalui penemuan, caching, dan penerimaan (admission).
Dengan registri yang menyokong API tersebut, respons 200 yang mengandungi Index kosong bermakna tiada artifak yang dilampirkan. Dengan pelaksanaan lama yang mengembalikan 404, klien membaca teg sandaran yang dibentuk dengan menggantikan sha256: dengan sha256-. Klien mengekalkan teg sandaran tersebut, jadi penambahan perujuk (referrer) baharu ialah keadaan perlumbaan baca-ubah-tulis (read-modify-write race). Penulis memerlukan penulisan bersyarat, percubaan semula optimistik, atau baris gilir penulis tunggal; pembaca tidak boleh menganggap sandaran sebagai konsisten secara kukuh (strongly consistent).
Proses tandatangan, SBOM, dan laporan imbasan yang ditemui dalam tiga peringkat: tapis mengikut artifactType dan dasar; dapatkan manifes dan kandungan yang dirujuk; sahkan bahawa tandatangan merangkumi digest sasaran, penerbit dipercayai, dan status artifak dibenarkan. Panduan Microsoft memisahkan integriti, ketulenan, dan penyekatan sebelum penggunaan, jadi "tandatangan ditemui" tidak sama dengan "imej dipercayai."
API ini boleh memaginasi. Kekalkan dan salurkan nextToken yang legap, hadkan saiz halaman, dan sertakan registri, repositori, digest subject, jenis artifak, dan konteks kebenaran dalam kunci cache. Oleh kerana digest tidak boleh diubah, hasil penemuan boleh dicache secara ringkas; pembatalan dan perubahan status masih memerlukan TTL yang jelas dan dasar pengesahan semula. Pada laluan penerimaan, cache boleh mempercepatkan penemuan tetapi tidak boleh melangkau pengesahan akhir.
Contoh Jawapan Berkualiti Tinggi
Saya akan menjadikan digest sebagai satu-satunya identiti subject. Klien menyelesaikan teg, memanggil OCI Referrers API, dan menggunakan artifactType untuk memisahkan tandatangan, SBOM, dan laporan imbasan. Registri yang menyokong mengembalikan OCI Index; respons 404 daripada registri yang lebih lama mencetuskan teg sandaran terbitan digest dengan percubaan semula untuk kemas kini serentak. Penemuan sahaja tidak pernah membenarkan pelaksanaan. Perkhidmatan penerimaan mengesahkan digest sasaran tandatangan, identiti penerbit, dan punca kepercayaan (trust root), kemudian menggunakan dasar. Titik akhir menyalurkan token penomboran halaman legap dan mencache mengikut digest serta penapis, manakala setiap pelaksanaan mengesahkan semula dan bukannya menganggap entri cache sebagai keputusan kepercayaan.
Kesilapan Biasa
- Kesilapan → menggunakan teg sebagai kunci tandatangan → Mengapa ia gagal: teg boleh disasarkan semula → Pembetulan: selesaikan dan pin digest terlebih dahulu.
- Kesilapan → menganggap setiap 404 sebagai "tiada artifak dilampirkan" → Mengapa ia gagal: registri lama mungkin tidak melaksanakan Referrers → Pembetulan: baca teg sandaran spesifikasi.
- Kesilapan → membenarkan pelaksanaan sebaik sahaja tandatangan ditemui → Mengapa ia gagal: identiti penerbit, liputan, dan digest sasaran kekal tidak disahkan → Pembetulan: asingkan penemuan daripada pengesahan kriptografi.
- Kesilapan → menghuraikan atau membina
nextToken→ Mengapa ia gagal: token ialah kursor pelayan yang legap → Pembetulan: salurkannya tanpa perubahan dan hadkan saiz halaman serta masa tamat (timeouts).
Soalan Susulan dan Maklum Balas
Soalan Susulan 1: Dua binaan mengemas kini teg sandaran secara serentak. Apakah yang anda lakukan?
Anggap Index sandaran sebagai transaksi baca-ubah-tulis. Gunakan penulisan bersyarat registri, percubaan semula optimistik, atau baris gilir penulis tunggal. Sekiranya berlaku konflik, baca Index terkini dan gabungkan deskriptor baharu; jangan sekali-kali menimpa perkaitan binaan lain.
Soalan Susulan 2: Tandatangan wujud, tetapi SBOM merujuk kepada digest yang lebih lama. Apakah yang berlaku?
Semak ketekalan terhadap digest subject semasa. Tandatangan, SBOM, dan laporan setiap satunya mesti merujuk kepada digest yang sama. Tandakan rujukan yang lebih lama sebagai tidak berkenaan dan sekat kemasukan; memadankan teg imej sahaja adalah tidak selamat.
Soalan Susulan 3: Registri mengembalikan beribu-ribu perujuk. Bagaimanakah anda melindungi perkhidmatan?
Hadkan maxResults, salurkan token legap, dan gunakan cache TTL pendek yang dikunci oleh digest dan jenis artifak. Buat pertanyaan hanya untuk jenis yang diperlukan oleh dasar pada laluan penerimaan. Pengindeksan latar belakang boleh memanaskan hasil, tetapi pelaksanaan masih mengesahkan digest manifes yang dikembalikan dan status kepercayaan.