Otentikasi Akses Pengguna

Panduan ini menjelaskan cara mengelola otentikasi pengguna di Milvus, termasuk mengaktifkan otentikasi, masuk sebagai pengguna, dan mengubah kredensial pengguna.

  • TLS dan otentikasi pengguna adalah dua pendekatan keamanan yang berbeda. Jika Anda telah mengaktifkan baik otentikasi pengguna maupun TLS di sistem Milvus Anda, Anda harus menyediakan nama pengguna, kata sandi, dan jalur file sertifikat. Untuk informasi tentang cara mengaktifkan TLS, lihat Enkripsi Selama Transmisi.

  • Potongan kode pada halaman ini menggunakan `new MilvusClient ` (Python) untuk berinteraksi dengan Milvus. SDK MilvusClient baru untuk bahasa pemrograman lain akan dirilis pada pembaruan mendatang.

Mengaktifkan otentikasi pengguna

Untuk mengaktifkan otentikasi pengguna pada server Milvus Anda, atur common.security.authorizationEnabled menjadi true di berkas konfigurasi Milvus milvus.yaml. Untuk informasi lebih lanjut mengenai konfigurasi, lihat Konfigurasi Milvus dengan Docker Compose.

...
common:
...
  security:
    authorizationEnabled: true
...

Untuk mengaktifkan otentikasi pengguna pada server Milvus Anda, atur `authorizationEnabled` menjadi `true` di berkas konfigurasi Milvus ` values.yaml`. Untuk informasi lebih lanjut mengenai konfigurasi, lihat Konfigurasi Milvus dengan Helm Charts.

...
extraConfigFiles:
  user.yaml: |+
    common:
      security:
        authorizationEnabled: true
...

Untuk mengaktifkan otentikasi, atur ` spec.config.common.security.authorizationEnabled ` menjadi ` true ` di CRD ` Milvus `. Untuk informasi lebih lanjut mengenai CRD Milvus, lihat Konfigurasi Milvus dengan Milvus Operator.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  # Omit other fields ...
  config:
    common:
      security:
        authorizationEnabled: true

Menghubungkan ke Milvus dengan otentikasi

Setelah mengaktifkan otentikasi, Anda perlu terhubung ke Milvus menggunakan nama pengguna dan kata sandi. Secara default, pengguna root dibuat dengan kata sandi Milvus saat Milvus dimulai. Berikut adalah contoh cara terhubung ke Milvus dengan otentikasi diaktifkan menggunakan pengguna root default:

# use default `root` user to connect to Milvus

from pymilvus import MilvusClient

client = MilvusClient(
    uri='http://localhost:19530', # replace with your own Milvus server address
    token="root:Milvus"
) 
Jika Anda gagal memberikan token yang valid saat terhubung ke Milvus dengan otentikasi yang diaktifkan, Anda akan menerima kesalahan gRPC.

Buat pengguna baru

Saat terhubung sebagai root, buat pengguna dengan create_user(). Pilih kata sandi berpanjang 6–72 byte UTF-8, kecuali jika deployment Anda menggunakan batasan panjang kata sandi khusus.

# create a user
client.create_user(
    user_name="user_1",
    password="P@ssw0rd",
)

# verify the user has been created

client.describe_user("user_1")

# output
# {'user_name': 'user_1', 'roles': ()}

Untuk informasi lebih lanjut tentang membuat pengguna, lihat create_user().

Terhubung ke Milvus dengan pengguna baru

Terhubung menggunakan kredensial pengguna yang baru dibuat:

# connect to milvus with the newly created user

client = MilvusClient(
    uri="http://localhost:19530",
    token="user_1:P@ssw0rd"
)

Perbarui kata sandi pengguna

Untuk mengubah kata sandi pengguna, masukkan kata sandi saat ini dan kata sandi baru yang memenuhi persyaratan kata sandi yang sama.

# update password

client.update_password(
    user_name="user_1",
    old_password="P@ssw0rd",
    new_password="P@ssw0rd123"
)

Untuk informasi lebih lanjut mengenai pembaruan kata sandi pengguna, lihat fungsi ` update_password()`.

Jika Anda lupa kata sandi lama, Milvus menyediakan opsi konfigurasi yang memungkinkan Anda menunjuk pengguna tertentu sebagai pengguna super. Hal ini menghilangkan kebutuhan akan kata sandi lama saat Anda mereset kata sandi.

Secara default, kolom ` common.security.superUsers ` dalam berkas konfigurasi Milvus kosong, artinya semua pengguna harus memasukkan kata sandi lama saat mereset kata sandi mereka. Namun, Anda dapat menunjuk pengguna tertentu sebagai pengguna super yang tidak perlu memasukkan kata sandi lama. Dalam potongan kode di bawah ini, root dan foo ditunjuk sebagai pengguna super.

Anda harus menambahkan item konfigurasi di bawah ini ke dalam berkas konfigurasi Milvus yang mengatur pengoperasian instance Milvus Anda.

common:
    security:
        superUsers: root, foo

Menghapus pengguna

Untuk menghapus pengguna, gunakan metode ` drop_user() `.

client.drop_user(user_name="user_1")
Untuk menghapus pengguna, Anda tidak boleh menjadi pengguna yang akan dihapus. Jika tidak, akan muncul pesan kesalahan.

Menampilkan daftar semua pengguna

Menampilkan daftar semua pengguna.

# list all users

client.list_users()

Batasan

Persyaratan nama pengguna

Nama pengguna tidak boleh kosong atau melebihi 32 karakter. Nama pengguna harus dimulai dengan huruf dan hanya boleh berisi huruf, angka, atau garis bawah.

Persyaratan kata sandi

Kata sandi harus memiliki panjang 6–72 byte UTF-8 secara default. Setiap karakter ASCII menempati satu byte; karakter multibyte menempati lebih dari satu byte. Milvus tidak mensyaratkan kombinasi tertentu antara huruf besar, huruf kecil, angka, atau karakter khusus.

Untuk mengubah batas panjang, konfigurasikan proxy.minPasswordLength dan proxy.maxPasswordLength. Batas maksimum tidak boleh melebihi 72 byte. Nilai proxy.maxPasswordLength yang nol atau kurang, atau di atas 72, akan dianggap sebagai 72. Untuk petunjuk konfigurasi, lihat Konfigurasi Milvus Secara Langsung.

Langkah Selanjutnya