Untuk mengetahui informasi selengkapnya, lihat Ringkasan Active Directory.
Dokumen ini mengasumsikan bahwa Anda sudah memahami cara menerapkan file manifes Kubernetes dan menggunakan alat command line kubectl. Untuk mengetahui informasi selengkapnya, lihat Alat command line (kubectl).
Sebelum memulai
Untuk mengaktifkan integrasi Active Directory, Anda harus memiliki hal berikut:
- Cluster AlloyDB Omni yang di-deploy di lingkungan Kubernetes
- Keytab server Active Directory
Bermigrasi dari operator AlloyDB Omni Kubernetes 1.4.0 ke 1.5.0
Jika Anda menggunakan Integrasi Active Directory di operator AlloyDB Omni versi 1.4.0 atau yang lebih lama, Anda harus bermigrasi ke operator AlloyDB Omni versi 1.5.0.
Untuk bermigrasi ke operator AlloyDB Omni versi 1.5.0, ikuti langkah-langkah berikut:
- Upgrade operator AlloyDB Omni ke versi 1.5.0.
- Buat resource autentikasi yang ditentukan pengguna.
- Buat manifes resource UserDefinedAuthentication baru.
- Isi
spec.dbclusterRef
dengan nama DBCluster target. - Isi
spec.keytabSecretRef
dengan nama secret keytab. - Salin aturan
pg_hba.conf
yang ada dan relevan dengan autentikasi Kerberos dan Active Directory ke kolomspec.pgHbaEntries
. - Salin
pg_ident.conf rules
yang ada (jika ada) ke kolomspec.pgIdentEntries
. - Terapkan manifes baru ini, misalnya,
kubectl apply -f user-auth-crd.yaml
.
- Hapus Konfigurasi Pratinjau & Deploy Ulang Cluster.
- Dalam definisi resource DBCluster, hapus semua anotasi yang sebelumnya Anda gunakan untuk mengonfigurasi integrasi Active Directory, misalnya, aturan autentikasi berbasis host (HBA), aturan ident, dan anotasi file keytab.
- Hapus peta konfigurasi
pg_hba
danpg_ident
yang Anda buat. - Terapkan kembali manifes DBCluster yang diupdate.
Mengonfigurasi dukungan Active Directory
Buat dan terapkan secret dengan keytab:
apiVersion: v1 kind: Secret metadata: name: KEYTAB_SECRET_NAME namespace: DB_CLUSTER_NAMESPACE type: Opaque data: krb5.keytab: | KEYTAB_FILE_CONTENT
Berikut adalah contoh perintah yang menghasilkan keytab di server Active Directory:
ktpass /princ postgres/DBCLUSTER_HOST@REALM /Pass PASSWORD /mapuser postgres /crypto ALL /ptype KRB5_NT_Principal /out OUTPUT_PATH
ALLOYDB_HOST
adalah host yang mengarah ke DBCluster atau Alamat IP DBCluster.Terapkan manifes resource kustom autentikasi yang ditentukan pengguna berikut:
apiVersion: alloydbomni.dbadmin.goog/v1 kind: UserDefinedAuthentication metadata: name: USER_DEFINED_AUTHENTICATION_NAME namespace: DB_CLUSTER_NAMESPACE spec: dbclusterRef: name: DB_CLUSTER_NAME keytabSecretRef: name: KEYTAB_SECRET_NAME pgHbaEntries: PG_HBA_ENTRIES pgIdentEntries: PG_IDENT_ENTRIES
Ganti kode berikut:
USER_DEFINED_AUTHENTICATION_NAME
: nama UserDefinedConfiguration, misalnya,DB_CLUSTER_NAME-ad-auth
.DB_CLUSTER_NAMESPACE
: namespace Kubernetes untuk rencana cadangan ini. Namespace harus cocok dengan namespace cluster database.DB_CLUSTER_NAME
: nama cluster database Anda, yang Anda tetapkan saat Anda membuatnya.KEYTAB_SECRET_NAME
: nama keytab yang Anda buat.PG_HBA_ENTRIES
: Entripg_hba.conf
sebagai daftar string. Entri ini menggantikan entri default dipg_hba.conf
. Jika Anda menambahkan konfigurasi yang tidak valid, pengguna tidak dapat login.Pada contoh sebelumnya, Anda menambahkan entri untuk autentikasi berbasis GSS diikuti dengan autentikasi berbasis sandi. Artinya, pengguna login menggunakan GSS API. Jika pendekatan login ini gagal, maka autentikasi berbasis sandi akan digunakan sebagai penggantian.
Untuk mengetahui informasi selengkapnya, lihat File pg_hba.conf.
PG_IDENT_ENTRIES
: Entripg_ident.conf
sebagai daftar string. Untuk menerapkan pemetaan nama pengguna, tentukanmap=
di kolom opsi dalam filepg_hba.conf
. Untuk mengetahui informasi selengkapnya, lihat Peta Identitas.Lihat contoh berikut:
apiVersion: v1 kind: Secret metadata: name: db-keytab-dbcluster-sample type: Opaque data: krb5.keytab: | DUMMY_KEYTAB --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: UserDefinedAuthentication metadata: name: dbcluster-sample-ad-auth spec: dbclusterRef: name: dbcluster-sample keytabSecretRef: name: db-keytab-dbcluster-sample pgHbaEntries: - hostgssenc all all 0.0.0.0/0 gss - hostgssenc all all ::1/128 gss - hostssl all all 0.0.0.0/0 scram-sha-256 - hostssl all all ::/0 scram-sha-256 pgIdentEntries: - usermap active_directory_user postgres_user
Membuat peran database sebagai pengguna Active Directory
Buat peran di database Anda yang cocok dengan pengguna Active Directory. Untuk membuat peran bagi pengguna Active Directory Anda, hubungkan ke cluster dan jalankan perintah berikut:
username=# CREATE ROLE "USERNAME@REALM" WITH LOGIN;
Login ke database menggunakan pengguna Active Directory. Anda harus mengaktifkan
kinit
di klien tempat Anda terhubung. Dalam contoh ini, podpostgres-client
telah menginstal kinit dan psql serta dikonfigurasi untuk terhubung ke cluster AlloyDB Omni menggunakan klien psql.kubectl exec -it postgres-client -n DB_CLUSTER_NAMESPACE -- bash root:/# kinit USERNAME Password for USERNAME@REALM: root:/# psql -h HOSTNAME -d DB_NAME -U USERNAME@REALM psql (16.6 (Ubuntu 16.6-0ubuntu0.24.04.1), server 16.3) GSSAPI-encrypted connection Type "help" for help.
Menjalankan kueri SQL.
username=# select * from TABLE_NAME;
Menonaktifkan autentikasi Active Directory
Untuk menonaktifkan autentikasi Active Directory, jalankan perintah Helm berikut:
helm upgrade alloydbomni-operator PATH_TO_CHART -n alloydb-omni-system --set userDefinedAuthentication.enabled=false
Perintah ini menampilkan output berikut:
Release "alloydbomni-operator" has been upgraded. Happy Helming! NAME: alloydbomni-operator LAST DEPLOYED: CURRENT_TIMESTAMP NAMESPACE: alloydb-omni-system STATUS: deployed REVISION: 2 TEST SUITE: None
Langkah berikutnya
- Mengintegrasikan dukungan pengguna Active Directory dengan AlloyDB Omni.
- Mengintegrasikan dukungan grup Active Directory dengan AlloyDB Omni.
- Mengintegrasikan dukungan grup Active Directory di Kubernetes.
- Memecahkan masalah integrasi Active Directory di AlloyDB Omni.