Topik ini menjelaskan cara mengkonfigurasi otentikasi untuk komunikasi antara node Cassandra serta antara klien dan node Cassandra.
Cara mengonfigurasi TLS untuk Cassandra di bidang runtime
Cassandra menyediakan komunikasi yang aman antara komputer klien dan {i>database<i} cluster dan di antara node dalam cluster. Mengaktifkan enkripsi memastikan bahwa data dalam penerbangan tidak disusupi dan ditransfer dengan aman. Di Apigee Hybrid, TLS diaktifkan secara {i>default<i} untuk komunikasi apa pun antara {i>node<i} Cassandra dan antara klien dan Node Cassandra.
Anda dapat mengkonfigurasi otentikasi menggunakan kombinasi nama pengguna/sandi ditempatkan langsung di file penggantian atau ditambahkan ke Rahasia Kubernetes, seperti yang dijelaskan dalam topik ini.
Tentang autentikasi pengguna Cassandra
Platform hybrid menggunakan Cassandra sebagai datastore backend untuk runtime data bidang. Secara {i>default<i}, salah satu komunikasi klien ke Cassandra memerlukan otentikasi. Ada beberapa pengguna klien yang berkomunikasi dengan Cassandra. Sandi default disediakan untuk pengguna ini, dan Anda tidak yang diperlukan untuk mengubahnya.
Para pengguna ini, termasuk pengguna default, dijelaskan di bawah ini:
- Pengguna DML: Digunakan oleh komunikasi klien untuk membaca dan menulis data ke Cassandra (KMS, KVM, Cache, dan Kuota).
- Pengguna DDL: Digunakan oleh MART untuk tugas definisi data apa pun seperti keyspace pembuatan, pembaruan, dan penghapusan.
- Pengguna Admin: Digunakan untuk aktivitas administratif yang dilakukan di gugus cassandra.
- Pengguna Cassandra default: Cassandra membuat pengguna default saat
Autentikasi diaktifkan dan nama penggunanya adalah
cassandra
- Pengguna JMX: Digunakan untuk mengautentikasi dan berkomunikasi dengan Cassandra JMX dalam antarmuka berbasis web yang sederhana.
- Pengguna Jolokia: Digunakan untuk mengautentikasi dan berkomunikasi dengan Cassandra JMX Compute Engine API.
Mengubah sandi default di file penggantian
Apigee Hybrid menyediakan sandi default untuk pengguna Cassandra. Jika Anda ingin mengubah
{i>password<i} pengguna {i>default<i}, Anda dapat melakukannya di
File overrides.yaml
. Tambahkan konfigurasi berikut, ubah default
{i>password<i} ("iloveapis123") sesuai keinginan Anda, dan terapkan perubahan untuk
cluster Anda.
cassandra: auth: default: ## the password for the new default user (static username: cassandra) password: "iloveapis123" admin: ## the password for the admin user (static username: admin_user) password: "iloveapis123" ddl: ## the password for the DDL User (static username: ddl_user) password: "iloveapis123" dml: ## the password for the DML User (static username: dml_user) password: "iloveapis123" jmx: username: "jmxuser" ## the username for the JMX User password: "iloveapis123" ## the password for the JMX User jolokia: username: "jolokiauser" ## the username to access jolokia interface password: "iloveapis123" ## the password for jolokia user
Perhatikan hal berikut:
- Rotasi Certificate Authority (CA) tidak didukung.
- Sertifikat server yang dibuat dengan frasa sandi tidak didukung.
Menetapkan nama pengguna dan sandi dalam Secret Kubernetes
Bagian ini menjelaskan cara mengonfigurasi Cassandra agar menggunakan Secret Kubernetes untuk autentikasi.
Membuat Secret
Gunakan template berikut untuk mengonfigurasi Secret Kubernetes. Simpan template file dan mengedit atribut yang diperlukan. Perhatikan bahwa jika Anda menggunakan opsi ini, Anda harus memberikan nama pengguna dengan setiap sandi.
apiVersion: v1 kind: Secret metadata: name: $SECRET_NAME namespace: $APIGEE_NAMESPACE type: Opaque data: default.password: $PASSWORD #base64-encoded string admin.user: $USERNAME #base64-encoded string admin.password: $PASSWORD #base64-encoded string dml.user: $USERNAME #base64-encoded string dml.password: $PASSWORD #base64-encoded string ddl.user: $USERNAME #base64-encoded string ddl.password: $PASSWORD #base64-encoded string jmx.user: $USERNAME #base64-encoded string jmx.password: $PASSWORD #base64-encoded string jolokia.user: $USERNAME #base64-encoded string jolokia.password: $PASSWORD #base64-encoded string
Dengan $SECRET_NAME adalah nama yang Anda pilih untuk Secret, $APIGEE_NAMESPACE
adalah namespace tempat pod Apigee di-deploy (default-nya adalah apigee
), dan $USERNAME
dan $PASSWORD adalah nama pengguna dan sandi untuk setiap pengguna. Perhatikan bahwa
nama pengguna dan sandi harus berenkode Base64.
Terapkan Secret ke cluster. Contoh:
kubectl apply -f $SECRET_FILE
Tambahkan Secret tersebut ke file penggantian:
cassandra: auth: secret: $SECRET_NAME
Terapkan penggantian Cassandra yang telah diupdate ke cluster:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --datastore
Memeriksa log Cassandra
Periksa log segera setelah Cassandra memulai. Log di bawah ini menunjukkan bahwa Koneksi klien Cassandra dienkripsi.
kubectl logs apigee-cassandra-2 -n apigee -f INFO 00:44:36 Starting listening for CQL clients on /10.0.2.12:9042 (encrypted)... INFO 00:44:36 Binding thrift service to /10.0.2.12:9160 INFO 00:44:36 enabling encrypted thrift connections between client and server INFO 00:44:36 Listening for thrift clients...