Mengaktifkan autentikasi Cassandra

Secara default, Cassandra diinstal tanpa mengaktifkan autentikasi. Artinya, siapa pun dapat mengakses Cassandra. Anda dapat mengaktifkan autentikasi setelah menginstal Edge, atau sebagai bagian dari proses penginstalan.

Jika Anda memutuskan untuk mengaktifkan autentikasi di Cassandra, Cassandra akan menggunakan kredensial default berikut:

  • username = 'cassandra'
  • password = 'cassandra'

Anda dapat menggunakan akun ini, menetapkan sandi yang berbeda untuk akun ini, atau membuat pengguna Cassandra baru. Menambahkan, menghapus, dan mengubah pengguna menggunakan pernyataan CREATE/ALTER/DROP USER Cassandra.

Untuk mengetahui informasi selengkapnya, lihat Perintah shell Cassandra SQL.

Mengaktifkan autentikasi Cassandra selama penginstalan

Anda dapat mengaktifkan autentikasi Cassandra pada waktu penginstalan. Namun, meskipun Anda dapat mengaktifkan autentikasi saat menginstal Cassandra, Anda tidak dapat mengubah nama pengguna dan sandi default. Anda harus melakukan langkah tersebut secara manual setelah penginstalan Cassandra selesai.

Untuk mengaktifkan autentikasi Cassandra pada waktu penginstalan, sertakan properti CASS_AUTH dalam file konfigurasi untuk semua node Cassandra:

CASS_AUTH=y # The default value is n.

Komponen Edge berikut mengakses Cassandra:

  • Server Pengelolaan
  • Message Processor
  • Router
  • Server Qpid
  • Server Postgres

Oleh karena itu, saat menginstal komponen ini, Anda harus menetapkan properti berikut dalam file konfigurasi untuk menentukan kredensial Cassandra:

CASS_USERNAME=cassandra
CASS_PASSWORD=cassandra

Anda dapat mengubah kredensial Cassandra setelah menginstal Cassandra. Namun, jika Anda telah menginstal Server Pengelolaan, Message Processor, Router, server Qpid, atau server Postgres, Anda juga harus mengupdate komponen tersebut untuk menggunakan kredensial baru.

Untuk mengubah kredensial Cassandra setelah menginstal Cassandra:

  1. Login ke salah satu node Cassandra menggunakan alat cqlsh dan kredensial default. Anda hanya perlu mengubah sandi pada satu node dan sandi tersebut akan disiarkan ke semua node Cassandra dalam ring:
    /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p cassandra

    Dengan:

    1. cassIP adalah alamat IP node Cassandra.
    2. 9042 adalah port Cassandra default.
    3. Pengguna default adalah cassandra.
    4. Sandi default-nya adalah cassandra. Jika Anda telah mengubah sandi sebelumnya, gunakan sandi saat ini. Jika sandi berisi karakter khusus, apit sandi dengan tanda kutip tunggal.
  2. Jalankan perintah berikut di prompt cqlsh> untuk memperbarui sandi:
    ALTER USER cassandra WITH PASSWORD 'NEW_PASSWORD';
  3. Keluar dari alat cqlsh, seperti yang ditunjukkan contoh berikut:
    exit
  4. Jika Anda belum menginstal Server Pengelolaan, Message Processor, Router, server Qpid, atau server Postgres, tetapkan properti berikut dalam file konfigurasi, lalu instal komponen tersebut:
    CASS_USERNAME=cassandra
    CASS_PASSWORD=NEW_PASSWORD
  5. Jika Anda telah menginstal Server Pengelolaan, Pemroses Pesan, Router, server Qpid, atau server Postgres, lihat Mereset Sandi Edge untuk mengetahui prosedur memperbarui komponen tersebut agar menggunakan sandi baru.

Mengaktifkan autentikasi Cassandra setelah penginstalan

Untuk mengaktifkan autentikasi:

  • Perbarui semua komponen Edge yang terhubung ke Cassandra dengan nama pengguna dan sandi Cassandra.
  • Di semua node Cassandra, aktifkan autentikasi.
  • Tetapkan nama pengguna dan sandi Cassandra di salah satu node. Anda hanya perlu mengubah kredensial di satu node Cassandra dan kredensial tersebut akan disiarkan ke semua node Cassandra di ring.

Gunakan prosedur berikut untuk memperbarui semua komponen Edge yang berkomunikasi dengan Cassandra dengan kredensial baru. Perhatikan bahwa Anda melakukan langkah ini sebelum benar-benar memperbarui kredensial Cassandra:

  1. Pada node Server Pengelolaan, jalankan perintah berikut:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server
      store_cassandra_credentials -u cassandra_username -p cassandra_password

    Jika ingin, Anda dapat meneruskan file ke perintah yang berisi nama pengguna dan sandi baru:

    apigee-service edge-management-server store_cassandra_credentials  -f configFile

    Dengan configFile berisi hal berikut:

    CASS_USERNAME=cassandra_username # Default is cassandra
    CASS_PASSWORD='cassandra_password' # Default is cassandra; wrap in single quotes if it includes special chars

    Perintah ini akan otomatis memulai ulang Server Pengelolaan.

  2. Untuk setiap layanan berikut, ulangi Langkah 1:
    • Semua Message Processor
    • Semua Router
    • Semua server Qpid (edge-qpid-server)
    • Server Postgres (edge-postgres-server)

    Saat Anda mengulangi Langkah 1 untuk setiap layanan, ganti edge-management-server dalam perintah di atas dengan nama layanan yang sesuai. Misalnya, saat Anda menjalankan langkah untuk layanan Router, gunakan perintah berikut:

    /opt/apigee/apigee-service/bin/apigee-service edge-router
      store_cassandra_credentials -u cassandra -p cassandra

Gunakan prosedur berikut untuk mengaktifkan autentikasi Cassandra serta menetapkan nama pengguna dan sandi:

  1. Login ke node Cassandra pertama.
  2. Jalankan perintah berikut:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra
      enable_cassandra_authentication -e y

    Perintah ini mengaktifkan autentikasi dan memulai ulang Cassandra.

  3. Ulangi langkah 1 dan 2 di semua node Cassandra.
  4. Login ke salah satu node Cassandra menggunakan alat cqlsh dan kredensial default. Anda hanya perlu mengubah sandi di satu node Cassandra dan sandi tersebut akan disiarkan ke semua node Cassandra di ring:
    /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p cassandra

    Di mana

    • cassIP adalah alamat IP node Cassandra.
    • 9042 adalah port Cassandra.
    • Pengguna default adalah cassandra.
    • Sandi default-nya adalah cassandra. Jika Anda telah mengubah sandi sebelumnya, gunakan sandi saat ini.
  5. Jalankan perintah berikut di prompt cqlsh> untuk memperbarui sandi:
    ALTER USER cassandra WITH PASSWORD 'NEW_PASSWORD';
  6. Jalankan perintah berikut di prompt cqlsh> untuk memastikan keyspace selalu tersedia.

    Untuk satu pusat data:

    ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-1': '3'};

    Untuk dua pusat data:

    ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-1': '3', 'dc-2': '3'};
  7. Keluar dari alat cqlsh:
    exit
  8. Jalankan nodetool repair untuk memastikan bahwa perubahan diterapkan ke semua node Cassandra, seperti yang ditunjukkan contoh berikut:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw 'password'] repair system_auth

    Anda hanya perlu meneruskan nama pengguna dan sandi jika Anda mengaktifkan autentikasi JMX untuk Cassandra.