Apache Ozone adalah toko objek terdistribusi yang dibangun di atas layanan Hadoop Distributed Data Store. Itu dapat mengelola miliaran file kecil dan besar yang sulit ditangani oleh sistem file terdistribusi lainnya. Ozone mendukung API yang kaya seperti Amazon S3, Kubernetes CSI, serta API Sistem File Hadoop asli. Hal ini membuat Ozone mudah dikonsumsi oleh berbagai jenis beban kerja data besar seperti gudang data di Apache Hive, penyerapan data dengan Apache Nifi, streaming dengan Apache Spark/Flink, dan pembelajaran mesin dengan Tensorflow.
Dengan jejak data yang berkembang dan beban kerja beragam yang membutuhkan kolaborasi antara berbagai kelompok, keamanan data menjadi sangat penting. Keamanan ozon telah ditambahkan sejak Apache Hadoop Ozone 0.4.0 dirilis dengan kontribusi dari komunitas. Itu juga telah dimasukkan sebagai pratinjau teknologi dalam rilis CDP Data Center 7.0 Cloudera. Keamanan dapat diklasifikasikan menjadi empat blok penyusun:Otentikasi, Otorisasi, Audit, dan Enkripsi. Kami akan membahas bagian Otentikasi di blog ini bersama dengan sisanya di bagian selanjutnya.
Otentikasi adalah proses mengenali identitas pengguna untuk komponen Ozon. Ozone kompatibel dengan arsitektur keamanan Apache Hadoop, mendukung otentikasi kuat menggunakan Kerberos serta token keamanan.
Otentikasi Berbasis Kerberos
Seperti yang ditunjukkan pada Gambar 1 di bawah, komponen Layanan termasuk OM (Ozone Manager), SCM (Storage Container Manager) dan Datandoes semuanya diautentikasi satu sama lain melalui Kerberos. Setiap layanan harus dikonfigurasi dengan Nama Utama Kerberos dan file keytab yang valid, yang akan digunakan oleh layanan untuk login saat memulai layanan dalam mode aman. Detail lebih lanjut tentang konfigurasi OM/SCM/Datanode Kerberos dapat ditemukan di dokumen Apache Hadoop Ozone. Sejalan dengan itu, klien Ozone harus menyediakan tiket Kerberos atau token keamanan yang valid untuk mengakses layanan Ozone seperti Ozone Manager untuk metadata dan Datanode untuk blok baca/tulis.
Token Keamanan
Seperti token delegasi Hadoop, token keamanan Ozon memiliki pengidentifikasi token bersama dengan tanda tangan yang ditandatangani dari penerbit. Manajer ozon mengeluarkan token delegasi dan token blok untuk pengguna atau aplikasi klien yang diautentikasi dengan Kerberos. Tanda tangan token dapat divalidasi oleh validator token untuk memverifikasi identitas penerbit. Dengan cara ini, pemegang token yang valid dapat menggunakan token untuk melakukan operasi terhadap layanan cluster seolah-olah mereka memiliki tiket Kerberos dari penerbit.
Token delegasi dikeluarkan oleh Ozone Manager memungkinkan pemegang token untuk mengakses layanan metadata yang disediakan oleh Ozone Manager seperti membuat volume atau membuat daftar objek dalam ember. Setelah menerima permintaan dari klien dengan token delegasi, manajer Ozon memvalidasi token delegasi dengan memeriksa tanda tangan penandatangan melalui kunci publiknya. Operasi token delegasi seperti untuk mendapatkan, memperbarui, dan membatalkan hanya dapat dilakukan melalui koneksi yang diautentikasi Kerberos.
Blokir token mirip dengan token delegasi dalam arti dikeluarkan/ditandatangani oleh manajer Ozon. Mereka dikeluarkan oleh manajer Ozon ketika permintaan klien melibatkan blok baca atau tulis di Datanode. Tidak seperti token delegasi yang diminta dengan API get/renew/cancel yang eksplisit, token tersebut diberikan secara transparan kepada klien bersama dengan informasi lokasi kunci/blokir. Token blok divalidasi oleh Datanodes saat menerima permintaan baca/tulis dari klien menggunakan kunci publik penyanyi Ozone manager. Token blok tidak dapat diperbarui secara eksplisit oleh klien. Setelah kedaluwarsa, klien harus mengambil kembali lokasi kunci/blok untuk mendapatkan token blok baru.
Rahasia S3
Ozone mendukung protokol Amazon S3 melalui Ozone S3 Gateway. Dalam mode aman, Manajer Ozon mengeluarkan rahasia s3 untuk pengguna yang diautentikasi Kerberos atau aplikasi klien yang mengakses Ozon menggunakan API S3. Kami akan membahasnya di blog selanjutnya di Ozone S3 Gateway.
Bagaimana cara kerja Token Keamanan Ozon?
Seperti yang ditunjukkan pada Gambar 2, token delegasi dan token blok Apache Hadoop tradisional bergantung pada rahasia bersama antara penerbit token dan validator token untuk menandatangani dan memvalidasi token. Oleh karena itu, ketika penerbit dan validator berbeda, misalnya, dalam kasus token blok, kunci master bersama harus ditransfer secara berkala melalui kabel untuk menyinkronkan antara penerbit token (namenode) dan validator token (datanodes).
Sebagai gantinya, token keamanan Ozon mengambil pendekatan berbasis sertifikat. Seperti yang ditunjukkan pada Gambar 3, ini benar-benar memisahkan penerbit token dan validator token dengan tanda tangan berbasis sertifikat. Dengan cara ini, token lebih aman karena rahasia yang dibagikan tidak pernah dipindahkan melalui kabel.
Dalam mode aman, SCM mem-bootstrap dirinya sebagai CA (Otoritas Sertifikat) dan membuat sertifikat CA yang ditandatangani sendiri. Datanode dan Manajer Ozon harus mendaftar ke SCM CA melalui CSR (permintaan penandatanganan sertifikat). SCM memvalidasi identitas Datanode dan Ozone Manager melalui Kerberos dan menandatangani sertifikat komponen. Sertifikat yang ditandatangani digunakan oleh Ozone Manager dan Datanode untuk membuktikan identitasnya. Ini sangat berguna untuk penandatanganan dan validasi token/blok token delegasi.
Dalam kasus token blok, Manajer Ozon (penerbit token) menandatangani token dengan kunci pribadinya dan Datanodes (validator token) menggunakan sertifikat Manajer Ozon untuk memvalidasi token blok karena Manajer Ozon dan datanode memercayai sertifikat yang ditandatangani SCM CA.
Dalam kasus token delegasi saat Ozone Manager (penerbit token dan validator) berjalan dalam mode HA (Ketersediaan Tinggi). Ada beberapa instance Ozone Manager yang berjalan secara bersamaan. Token delegasi yang dikeluarkan dan ditandatangani oleh Ozone Manager instans 1 dapat divalidasi oleh Ozone Manager instans 2 saat pemimpin Ozone Manager berubah karena kedua instans memercayai sertifikat yang ditandatangani SCM CA. Rincian lebih lanjut dari dokumen desain Ozon HA dapat ditemukan di sini.
Kesimpulan
Otentikasi adalah salah satu blok bangunan terpenting dari keamanan Apache Hadoop Ozone. Anda sekarang harus memiliki pemahaman yang lebih baik tentang mekanisme otentikasi apa yang didukung oleh Apache Hadoop Ozone dan cara kerjanya. Ini akan membantu memahami pilar keamanan Ozon lainnya seperti otorisasi dan audit.
Nantikan artikel lanjutan tentang Otorisasi Keamanan Ozon, Audit, Enkripsi, dan GDPR. Jika Anda tertarik untuk menyelam lebih dalam, Anda dapat menemukan lebih banyak detail teknis dari dokumen desain keamanan Ozon.
Referensi
[1] Arsitektur Ozon Apache Hadoop
[2] Tolok Ukur Ozon:Penyimpanan Cloudera generasi berikutnya untuk CDP
[3] Apa itu Kerberos? · Hadoop dan Kerberos:Kegilaan di Luar Gerbang
[4] Dokumen Ozon Apache Hadoop
[5] Menambahkan Keamanan ke Apache Hadoop
[6] Dokumen Desain Apache Hadoop Ozone HA pada HDDS-505.
[7] Dokumen Desain Keamanan Ozon Apache Hadoop pada HDDS-4.