Topik ini menjelaskan cara mengonfigurasi autentikasi 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 mesin klien dan cluster database, serta antara node dalam cluster. Mengaktifkan enkripsi akan memastikan bahwa data yang sedang beroperasi tidak disusupi dan ditransfer dengan aman. Di Apigee Hybrid, TLS diaktifkan secara default untuk komunikasi apa pun antara node Cassandra serta antara klien dan node Cassandra.
Anda dapat mengonfigurasi autentikasi menggunakan kombinasi nama pengguna/sandi, yang ditempatkan langsung di file penggantian atau ditambahkan ke Secret Kubernetes, seperti yang dijelaskan dalam topik ini.
Tentang autentikasi pengguna Cassandra
Platform hybrid menggunakan Cassandra sebagai datastore backend untuk data bidang runtime. Secara default, semua komunikasi klien kepada Cassandra memerlukan autentikasi. Ada tiga pengguna yang digunakan oleh klien yang berkomunikasi dengan Cassandra. Sandi default disediakan untuk pengguna ini, dan Anda tidak perlu mengubahnya.
Pengguna ini, termasuk pengguna default, dijelaskan di bawah:
- Pengguna DML: Digunakan oleh komunikasi klien untuk membaca dan menulis data ke Cassandra (KMS, KVM, Cahce, dan Quota).
- Pengguna DVL: Digunakan oleh MART untuk salah satu tugas definisi data seperti pembuatan, pembaruan, dan penghapusan keyspace.
- Pengguna Admin: Digunakan untuk aktivitas administratif yang dilakukan di cluster cassandra.
- Pengguna Cassandra default: Cassandra membuat pengguna default saat Authentication diaktifkan dan nama pengguna adalah
cassandra
Mengubah sandi default di file penggantian
Apigee Hybrid menyediakan sandi default untuk pengguna Cassandra. Jika ingin mengubah
sandi pengguna default, Anda dapat melakukannya di
file overrides.yaml
. Tambahkan konfigurasi berikut, ubah sandi default ("iloveapis123") sesuai keinginan, dan terapkan perubahan tersebut pada 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"
Perhatikan hal-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.
Ciptakan Rahasia
Gunakan template berikut untuk mengonfigurasi Secret Kubernetes. Simpan template ke file dan edit atribut yang diperlukan. Perhatikan bahwa jika 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
Dengan $SECRET_NAME adalah nama yang Anda pilih untuk Secret, $APIGEE_NAMESPACE adalah namespace tempat pod Apigee di-deploy (default-nya adalah apigee
), sedangkan $USERNAME dan $PASSWORD adalah nama pengguna dan sandi untuk setiap pengguna. Perhatikan bahwa nama pengguna dan sandi harus berenkode Base64.
Terapkan Rahasia ke cluster. Contoh:
kubectl apply -f $SECRET_FILE
Tambahkan Rahasia ke file yang diganti:
cassandra: auth: secret: $SECRET_NAME
Terapkan penggantian Cassandra yang telah diupdate ke cluster:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml -c cassandra
Memeriksa log Cassandra
Periksa log segera setelah Cassandra dimulai. 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...