Panduan Koneksi

Koneksi ke Elastic Cloud & OpenSearch Managed

nusabet88 tidak harus berjalan di sebelah cluster. Anda bisa menghubungkannya ke layanan terkelola seperti Elastic Cloud, AWS OpenSearch Service, Bonsai, atau Aiven. Panduan ini membahas endpoint, metode autentikasi, TLS, port, hingga troubleshooting 401/403.

Self-managed vs Managed

Penting memahami perbedaan keduanya karena memengaruhi cara koneksi dan batasan akses.

AspekSelf-managedManaged (Cloud)
Endpointhttp://127.0.0.1:9200 (lokal)https://...:9243 atau :443 (publik)
TLSOpsional, sering plain HTTPWajib HTTPS
AuthSering tanpa auth / basic authAPI key / basic auth wajib
Plugin customBebas pasangTerbatas pada yang disediakan
Akses node langsungAdaTidak ada (di balik load balancer)
Pada cluster managed, Anda hampir selalu terhubung melalui satu endpoint HTTPS di belakang load balancer, bukan ke node individual. Karena itu fitur seperti penunjukan node spesifik mungkin tidak tersedia.

Bentuk Endpoint per Penyedia

  • Elastic Cloud: https://<cluster>.es.<region>.cloud.es.io:9243
  • AWS OpenSearch Service: https://search-<domain>-<hash>.<region>.es.amazonaws.com (port 443)
  • Bonsai: https://<user>:<pass>@<cluster>.bonsaisearch.net:443
  • Aiven: https://<host>.aivencloud.com:<port> (port khusus per layanan)
Jangan pernah menyimpan username dan password di dalam URL untuk lingkungan bersama. Lebih baik isi kredensial di kolom auth terpisah pada nusabet88 agar tidak bocor lewat log atau riwayat.

Tiga Metode Autentikasi

1. Basic Auth (username + password)

Paling sederhana. nusabet88 mengirim header Authorization: Basic <base64(user:pass)>. Cocok untuk uji coba cepat, tetapi memakai akun penuh berisiko.

# uji manual dengan curl
curl -u elastic:password \
  https://my-cluster.es.us-central1.gcp.cloud.es.io:9243

2. API Key (direkomendasikan)

Buat API key bermasa berlaku dan berprivilese minimal. nusabet88 mengirim header Authorization: ApiKey <base64(id:api_key)>.

# buat API key read-only via REST
POST /_security/api_key
{
  "name": "nusabet88-readonly",
  "expiration": "30d",
  "role_descriptors": {
    "ro": { "indices": [ { "names": ["*"], "privileges": ["read","monitor","view_index_metadata"] } ] }
  }
}

Respons mengembalikan id dan api_key. Gabungkan menjadi id:api_key, encode base64, lalu pakai sebagai nilai header ApiKey.

# gabungkan & encode
echo -n "VuaCf...id:ui2lp...key" | base64
# pakai pada request
curl -H "Authorization: ApiKey <hasil-base64>" \
  https://my-cluster.es.us-central1.gcp.cloud.es.io:9243

3. Cloud ID (khusus Elastic Cloud)

Cloud ID adalah string base64 yang berisi host cluster. Untuk nusabet88, dekode dulu menjadi URL https lalu pakai sebagai endpoint.

# Cloud ID = nama:base64(host$esUuid$kbUuid)
echo "cluster:dXMtY2VudHJhbDEuZ2Nw..." | cut -d: -f2 | base64 -d

TLS & Port

  • Endpoint managed selalu memakai HTTPS. Pastikan URL diawali https://.
  • Port 9243 umum di Elastic Cloud; 443 umum di AWS, Bonsai, dan layanan lain.
  • Sertifikat dikeluarkan oleh CA publik, jadi tidak perlu menonaktifkan verifikasi TLS. Hindari opsi --insecure di produksi.
Jika Anda terpaksa memakai -k/--insecure untuk melewati verifikasi sertifikat, itu pertanda konfigurasi salah (CA tidak dipercaya atau hostname tidak cocok). Perbaiki akar masalahnya, jangan matikan TLS.

Troubleshooting 401 & 403

KodeArtiPenyebab umumSolusi
401UnauthorizedKredensial salah / API key dicabut / header salah formatCek user-pass, buat ulang API key, pastikan prefiks ApiKey
403ForbiddenAuth valid tetapi role kurang privileseTambah privilese pada role descriptor (mis. monitor, manage)
429Too Many RequestsRate limit penyediaKurangi frekuensi polling nusabet88
# cek identitas & privilese yang aktif
GET /_security/_authenticate
# cek apakah privilese tertentu dimiliki
GET /_security/user/_has_privileges
{ "cluster": ["monitor"], "index": [ { "names":["*"], "privileges":["read"] } ] }
403 sering muncul saat API key read-only dipakai untuk operasi tulis seperti membuat index. Berikan privilese yang sesuai atau gunakan key terpisah untuk operasi administratif.

Verifikasi Koneksi

  1. Ping root cluster

    Jalankan GET /. Respons berisi name, cluster_name, dan version.number.

  2. Cek kesehatan

    Gunakan GET /_cluster/health untuk memastikan status green atau yellow.

  3. Daftar index

    GET /_cat/indices?v memastikan nusabet88 bisa membaca metadata index.

  4. Simpan profil

    Simpan endpoint + auth sebagai profil koneksi di nusabet88 untuk akses berikutnya.

Kesimpulan

  • Gunakan API key berprivilese minimal dan bermasa berlaku, bukan akun superuser.
  • Endpoint managed selalu HTTPS; perhatikan port 9243 (Elastic Cloud) vs 443 (lainnya).
  • 401 = kredensial; 403 = privilese kurang. Diagnosa dengan _security/_authenticate.
  • Jangan matikan verifikasi TLS di produksi — perbaiki akar penyebabnya.

FAQ Koneksi Cloud

Apa bedanya Cloud ID dengan endpoint URL biasa?

Cloud ID adalah string terenkode base64 dari Elastic Cloud yang berisi host dan UUID cluster. Beberapa klien resmi bisa langsung memakai Cloud ID, tetapi nusabet88 dan kebanyakan tool berbasis REST butuh URL https eksplisit, misalnya https://nama-cluster.es.region.cloud.es.io:9243. Anda bisa mendekode Cloud ID untuk mendapatkan host tersebut.

Port 9243 atau 443 yang harus saya pakai?

Elastic Cloud secara historis mengekspos Elasticsearch di port 9243. Layanan managed lain seperti AWS OpenSearch Service, Bonsai, dan Aiven biasanya memakai 443 (HTTPS standar). Jika ragu, gunakan port yang tertera pada dashboard penyedia Anda. Bila URL tidak menyertakan port, browser dan klien menganggapnya 443.

Kenapa saya dapat error 401 saat menghubungkan?

HTTP 401 Unauthorized berarti kredensial salah atau tidak terkirim. Periksa username/password, atau pastikan API key dikirim dengan format yang benar (Authorization: ApiKey <base64>). API key yang sudah dicabut atau kedaluwarsa juga menghasilkan 401.

Apakah API key lebih aman daripada basic auth?

Ya. API key bisa dibatasi hak aksesnya (role descriptor), diberi masa berlaku, dan dicabut tanpa mengubah password akun utama. Untuk koneksi nusabet88 ke cluster produksi, gunakan API key dengan privilese minimal alih-alih kredensial superuser elastic.

Amankan Akses Panel

Setelah terhubung ke cluster, lindungi panel nusabet88 dengan reverse proxy dan HTTPS.

Setup Nginx + HTTPS