Bagaimana Basis Data Vektor Milvus Memastikan Keamanan Data?
Gambar sampul depan
Dengan mempertimbangkan keamanan data Anda sepenuhnya, otentikasi pengguna dan koneksi keamanan lapisan transport (TLS) sekarang secara resmi tersedia di Milvus 2.1. Tanpa otentikasi pengguna, siapa pun dapat mengakses semua data dalam basis data vektor Anda dengan SDK. Namun, mulai dari Milvus 2.1, hanya mereka yang memiliki nama pengguna dan kata sandi yang valid yang dapat mengakses basis data vektor Milvus. Selain itu, di Milvus 2.1 keamanan data lebih terlindungi oleh TLS, yang memastikan komunikasi yang aman dalam jaringan komputer.
Artikel ini bertujuan untuk menganalisis bagaimana Milvus database vektor memastikan keamanan data dengan otentikasi pengguna dan koneksi TLS dan menjelaskan bagaimana Anda dapat memanfaatkan kedua fitur ini sebagai pengguna yang ingin memastikan keamanan data saat menggunakan database vektor.
Langsung ke:
- Apa yang dimaksud dengan keamanan basis data dan mengapa hal ini penting?
- Bagaimana database vektor Milvus memastikan keamanan data?
Apa yang dimaksud dengan keamanan basis data dan mengapa hal ini penting?
Keamanan basis data mengacu pada langkah-langkah yang diambil untuk memastikan bahwa semua data dalam basis data aman dan dijaga kerahasiaannya. Kasus pembobolan data dan kebocoran data baru-baru ini di Twitter, Marriott, dan Departemen Asuransi Texas, dan lain-lain membuat kita semakin waspada terhadap masalah keamanan data. Semua kasus ini terus-menerus mengingatkan kita bahwa perusahaan dan bisnis dapat mengalami kerugian besar jika data tidak terlindungi dengan baik dan database yang mereka gunakan aman.
Bagaimana database vektor Milvus memastikan keamanan data?
Dalam rilis 2.1 saat ini, basis data vektor Milvus berusaha memastikan keamanan basis data melalui otentikasi dan enkripsi. Lebih khusus lagi, pada tingkat akses, Milvus mendukung otentikasi pengguna dasar untuk mengontrol siapa yang dapat mengakses basis data. Sementara itu, pada tingkat basis data, Milvus mengadopsi protokol enkripsi transport layer security (TLS) untuk melindungi komunikasi data.
Otentikasi pengguna
Fitur otentikasi pengguna dasar di Milvus mendukung pengaksesan basis data vektor menggunakan nama pengguna dan kata sandi demi keamanan data. Ini berarti klien hanya dapat mengakses instance Milvus dengan memberikan nama pengguna dan kata sandi yang telah diautentikasi.
Alur kerja otentikasi dalam basis data vektor Milvus
Semua permintaan gRPC ditangani oleh proksi Milvus, sehingga otentikasi diselesaikan oleh proksi. Alur kerja untuk masuk dengan kredensial untuk menyambung ke instance Milvus adalah sebagai berikut.
- Buat kredensial untuk setiap instans Milvus dan kata sandi terenkripsi disimpan dalam etcd. Milvus menggunakan bcrypt untuk enkripsi karena mengimplementasikan algoritma hashing adaptif Provos dan Mazières.
- Di sisi klien, SDK mengirimkan ciphertext ketika terhubung ke layanan Milvus. Ciphertext base64 (
: ) dilampirkan ke metadata dengan kunci authorization
. - Proksi Milvus mencegat permintaan dan memverifikasi kredensial.
- Kredensial disimpan secara lokal di dalam proksi.
alur_kerja_otentikasi
Ketika kredensial diperbarui, alur kerja sistem di Milvus adalah sebagai berikut
- Root coord bertanggung jawab atas kredensial ketika API insert, query, delete dipanggil.
- Ketika Anda memperbarui kredensial karena Anda lupa kata sandi misalnya, kata sandi baru akan disimpan di etcd. Kemudian semua kredensial lama dalam cache lokal proxy akan dibatalkan.
- Pencegat autentikasi mencari catatan dari cache lokal terlebih dahulu. Jika kredensial dalam cache tidak benar, panggilan RPC untuk mengambil catatan yang paling baru dari root coord akan dipicu. Dan kredensial di cache lokal akan diperbarui.
alur_kerja_pembaruan_kredensial
Cara mengelola autentikasi pengguna dalam basis data vektor Milvus
Untuk mengaktifkan autentikasi, Anda harus terlebih dahulu mengatur common.security.authorizationEnabled
ke true
saat mengonfigurasi Milvus di file milvus.yaml
.
Setelah diaktifkan, pengguna root akan dibuat untuk instans Milvus. Pengguna root ini dapat menggunakan kata sandi awal Milvus
untuk terhubung ke basis data vektor Milvus.
from pymilvus import connections
connections.connect(
alias='default',
host='localhost',
port='19530',
user='root_user',
password='Milvus',
)
Kami sangat menyarankan untuk mengganti kata sandi pengguna root ketika memulai Milvus untuk pertama kalinya.
Kemudian pengguna root dapat membuat lebih banyak pengguna baru untuk akses yang terautentikasi dengan menjalankan perintah berikut untuk membuat pengguna baru.
from pymilvus import utility
utility.create_credential('user', 'password', using='default')
Ada dua hal yang perlu diingat saat membuat pengguna baru:
Untuk nama pengguna baru, panjangnya tidak boleh lebih dari 32 karakter dan harus diawali dengan huruf. Hanya garis bawah, huruf, atau angka yang diperbolehkan dalam nama pengguna. Sebagai contoh, nama pengguna "2abc!" tidak dapat diterima.
Sedangkan untuk kata sandi, panjangnya harus 6-256 karakter.
Setelah kredensial baru disiapkan, pengguna baru dapat terhubung ke instans Milvus dengan nama pengguna dan kata sandi tersebut.
from pymilvus import connections
connections.connect(
alias='default',
host='localhost',
port='19530',
user='user',
password='password',
)
Seperti semua proses autentikasi, Anda tidak perlu khawatir jika Anda lupa kata sandi. Kata sandi untuk pengguna yang sudah ada dapat diatur ulang dengan perintah berikut.
from pymilvus import utility
utility.reset_password('user', 'new_password', using='default')
Baca dokumentasi Milvus untuk mempelajari lebih lanjut tentang autentikasi pengguna.
Koneksi TLS
Transport layer security (TLS) adalah jenis protokol autentikasi untuk menyediakan keamanan komunikasi dalam jaringan komputer. TLS menggunakan sertifikat untuk menyediakan layanan autentikasi antara dua atau lebih pihak yang berkomunikasi.
Cara mengaktifkan TLS di basis data vektor Milvus
Untuk mengaktifkan TLS di Milvus, pertama-tama Anda harus menjalankan perintah berikut untuk membagi dua file untuk menghasilkan sertifikat: file konfigurasi OpenSSL default bernama openssl.cnf
dan file bernama gen.sh
yang digunakan untuk menghasilkan sertifikat yang relevan.
mkdir cert && cd cert
touch openssl.cnf gen.sh
Kemudian Anda cukup menyalin dan menempelkan konfigurasi yang kami sediakan di sini ke dua berkas tersebut. Atau Anda juga dapat melakukan modifikasi berdasarkan konfigurasi kami agar lebih sesuai dengan aplikasi Anda.
Ketika kedua berkas tersebut sudah siap, Anda dapat menjalankan berkas gen.sh
untuk membuat sembilan berkas sertifikat. Demikian juga, Anda juga dapat memodifikasi konfigurasi dalam sembilan file sertifikat sesuai dengan kebutuhan Anda.
chmod +x gen.sh
./gen.sh
Ada satu langkah terakhir sebelum Anda dapat terhubung ke layanan Milvus dengan TLS. Anda harus mengatur tlsEnabled
ke true
dan mengonfigurasi jalur berkas server.pem
, server.key
, dan ca.pem
untuk server di config/milvus.yaml
. Kode di bawah ini adalah sebuah contoh.
tls:
serverPemPath: configs/cert/server.pem
serverKeyPath: configs/cert/server.key
caPemPath: configs/cert/ca.pem
common:
security:
tlsEnabled: true
Kemudian Anda sudah siap dan dapat terhubung ke layanan Milvus dengan TLS selama Anda menentukan jalur file client.pem
, client.key
, dan ca.pem
untuk klien saat menggunakan SDK koneksi Milvus. Kode di bawah ini juga merupakan contoh.
from pymilvus import connections
_HOST = '127.0.0.1'
_PORT = '19530'
print(f"\nCreate connection...")
connections.connect(host=_HOST, port=_PORT, secure=True, client_pem_path="cert/client.pem",
client_key_path="cert/client.key",
ca_pem_path="cert/ca.pem", server_name="localhost")
print(f"\nList connections:")
print(connections.list_connections())
Apa selanjutnya
Dengan dirilisnya Milvus 2.1 secara resmi, kami telah menyiapkan serangkaian blog yang memperkenalkan fitur-fitur baru. Baca lebih lanjut dalam seri blog ini:
- Cara Menggunakan Data String untuk Memberdayakan Aplikasi Pencarian Kemiripan Anda
- Menggunakan Milvus yang Disematkan untuk Menginstal dan Menjalankan Milvus secara Instan dengan Python
- Tingkatkan Throughput Pembacaan Basis Data Vektor Anda dengan Replika Dalam Memori
- Memahami Tingkat Konsistensi dalam Basis Data Vektor Milvus
- Memahami Tingkat Konsistensi dalam Basis Data Vektor Milvus (Bagian II)
- Bagaimana Basis Data Vektor Milvus Memastikan Keamanan Data?
- Apa yang dimaksud dengan keamanan basis data dan mengapa hal ini penting?
- Bagaimana database vektor Milvus memastikan keamanan data?
- Apa selanjutnya
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word