Keamanan & Arsitektur

Apa yang dijalankan Raklane dan di mana, cara agen di server Anda terhubung, akses apa yang dimilikinya, cara secret disimpan, apakah trafik Anda melewati Raklane, dan siapa bertanggung jawab atas apa.

Halaman ini untuk siapa pun yang sedang menimbang untuk menghubungkan server ke Raklane. Isinya menjelaskan apa yang sudah dibangun hari ini, dengan bahasa sederhana, dan menautkan ke halaman yang lebih rinci. Tidak ada janji di luar itu: Raklane belum memiliki sertifikasi keamanan dan belum menawarkan jaminan uptime formal (SLA).

Komponennya

Caddy, agen, dan container aplikasi Anda semuanya berjalan di server Anda; panah menunjukkan siapa yang menghubungi siapa.

  • Control plane adalah layanan milik Raklane sendiri: dashboard, API, pipeline build, dan database akun, aplikasi, serta pengaturan Anda. Data akun dan penagihan Anda disimpan di server Raklane di Indonesia.
  • Server Anda menjalankan tiga hal yang dipasang oleh perintah instalasi: Docker, Caddy (web server yang menyajikan aplikasi Anda lewat HTTPS), dan agen Raklane.
  • Build berjalan di control plane, bukan di server Anda. Raklane meng-clone repositori Anda, membangun container image dengan Cloud Native Buildpacks, lalu agen di server Anda menarik image yang sudah jadi. Server Anda tidak pernah butuh alat build atau memori tambahan untuk build.

Cara agen terhubung

Agen menghubungi Raklane dari dalam ke luar dan menjaga satu koneksi tetap terbuka, diamankan dengan mutual TLS: kedua pihak membuktikan identitasnya dengan sertifikat. Raklane mengirim perintah (jalankan container ini, perbarui rute ini) lewat koneksi itu, dan agen mengirim balik hasil dan heartbeat.

  • Tidak ada port masuk yang dibuka untuk Raklane. Server Anda perlu port 80 dan 443 terbuka untuk pengunjung, dan 22 hanya untuk SSH Anda sendiri.
  • Raklane tidak pernah login ke server Anda. Raklane tidak meminta kunci SSH atau akun penyedia cloud Anda. Anda menjalankan perintah instalasi sekali saja, sendiri, lewat sesi SSH Anda.
  • Token pendaftaran hanya berlaku sekali. Token di perintah instalasi dihapus begitu server terdaftar; token yang tersalin tidak bisa mendaftarkan mesin kedua.
  • Private key server tidak pernah keluar dari server. Agen membuat key-nya sendiri dan hanya mengirim permintaan sertifikat. Raklane yang menentukan identitas di dalam sertifikat, jadi sebuah server tidak bisa mengaku sebagai server lain.
  • Setiap server punya sertifikatnya sendiri. Server yang disusupi tidak bisa bertindak atas nama server Anda yang lain.

Untuk urutan pendaftaran lengkap, lihat BYOC: Gambaran Umum & Cara Kerja.

Akses yang dimiliki agen

Agen berjalan sebagai layanan sistem dan berkomunikasi dengan Docker di server Anda. Dengan itu, agen bisa menarik image aplikasi Anda, menyalakan dan mematikan container, membaca log dan pemakaian sumber dayanya, serta memperbarui rute dan sertifikat Caddy.

Akses ke Docker pada dasarnya setara akses root ke mesin tersebut. Ini berlaku untuk semua alat yang men-deploy container untuk Anda, dan itulah alasan perlindungan di atas ada. Perlakukan server yang Anda hubungkan ke Raklane sebagai server khusus untuk aplikasi yang Anda jalankan di sana.

Agen juga memperbarui dirinya sendiri: kira-kira sekali sejam ia memeriksa build agen baru, memverifikasi checksum-nya, lalu memulai ulang ke versi baru tanpa me-restart aplikasi Anda. Anda bisa mengubah intervalnya atau mematikannya; lihat Konfigurasi Agent BYOC.

Cara secret ditangani

  • Environment variable dienkripsi sebelum Raklane menyimpannya, semua nilainya, bukan hanya yang terlihat sensitif. Aplikasi Anda menerimanya saat container-nya mulai di server Anda. Lihat Environment Variable.
  • Secret (access token repositori privat, kunci penandatanganan webhook) juga dienkripsi, dan tidak pernah ditampilkan lagi setelah disimpan. Anda bisa merotasi secret tanpa mengubah rujukannya. Lihat Secret.
  • Build memakai token repositori Anda hanya untuk meng-clone kode.

Siapa pun yang punya akses root ke server Anda bisa membaca environment aplikasi di dalam container-nya, sama seperti di server mana pun yang Anda kelola sendiri.

Apakah trafik saya melewati Raklane?

Tidak. Di server Anda sendiri, alamat aplikasi mengarah langsung ke server Anda, dan Caddy di sana yang menangani HTTPS. Request dan response tidak pernah melewati Raklane.

Dua akibatnya:

  • Jika Raklane tidak bisa dijangkau, aplikasi Anda tetap melayani. Anda tidak bisa deploy sampai Raklane kembali, dan domain kustom yang benar-benar baru menunggu sertifikat pertamanya.
  • Raklane tidak melihat trafik aplikasi Anda. Lewat agen, Raklane mengumpulkan metrik sumber daya (CPU, memori, jaringan, disk) dan mengambil log aplikasi saat Anda membukanya di dashboard.

Rilis yang lebih aman

Setiap deploy menyalakan replika baru di samping yang sedang berjalan dan menunggu replika itu lolos health check (HTTP atau TCP) sebelum trafik dialihkan. Jika gagal, deploy dihentikan dan versi lama tetap melayani tanpa tersentuh. Setelah dialihkan, versi sebelumnya tetap disiagakan selama jendela waktu singkat; jika versi baru gagal di jendela itu, Raklane otomatis melakukan rollback. Lihat Men-deploy Aplikasi.

Memutus server

  1. Pindahkan aplikasi di server itu ke tempat lain, atau jeda lalu hapus, dan hapus database-nya (setelah dicadangkan).
  2. Pilih Decommission dari menu server. Server itu tidak bisa lagi menerima deploy dan tidak lagi dihitung dalam biaya Anda.
  3. Untuk menghapus agen dari mesin, jalankan:
sudo systemctl disable --now raklane-agent
sudo rm -rf /etc/raklane-agent /etc/default/raklane-agent /var/lib/raklane-agent

Docker dan Caddy tetap terpasang; hapus dengan package manager jika tidak diperlukan. Jika Anda menduga sebuah server disusupi, ikuti Mengelola Server BYOC.

Siapa mengelola apa

Raklane mengelolaAnda mengelola
Membangun image aplikasi AndaServer, tagihan penyedia, dan firewall penyedia
Deploy, health check, dan rollback otomatisPembaruan sistem operasi dan Docker
Routing dan sertifikat HTTPS (konfigurasi Caddy)Backup database di server Anda, kecuali Anda menyalakan add-on backup jika sudah tersedia
Agen, termasuk pembaruan otomatisnyaKode Anda, dependensinya, dan keamanannya sendiri
Dashboard, log, dan metrikSiapa di organisasi Anda yang punya akses, dan perannya

Melaporkan masalah keamanan

Kirim email ke hi@raklane.com berisi temuan Anda dan cara mereproduksinya. Untuk melaporkan penyalahgunaan dari aplikasi yang di-hosting di Raklane, gunakan formulir laporan.

Langkah berikutnya