Kontenum Storage API

Ringkasan

Layanan object storage Kontenum didesain agar 100% kompatibel dengan AWS S3. Ini berarti aplikasi, SDK, atau perangkat gateway apa pun yang kompatibel dengan AWS S3 dapat digunakan secara seamless dengan Kontenum.

Dalam beberapa kasus, Kontenum menyediakan fungsionalitas tambahan atau menerapkan rule tertentu yang berbeda dibandingkan AWS S3. Dokumen ini menjelaskan perbedaan tersebut dan cara menggunakan Kontenum S3 API secara efektif.

Karena kompatibilitas ini, dokumentasi AWS S3 harus diperlakukan sebagai referensi pelengkap saat berkomunikasi dengan Kontenum Storage API.


Spesifikasi Referensi

Kapabilitas AWS S3 yang dirujuk dalam panduan ini didasarkan pada:

Sepanjang panduan ini:

  • "Kontenum" merujuk pada fungsionalitas Kontenum S3
  • "AWS S3" merujuk pada perilaku asli API AWS S3

Keterbatasan API

Perlu diperhatikan bahwa Kontenum S3 API memiliki beberapa keterbatasan dibandingkan AWS S3. Keterbatasan ini merupakan pilihan desain yang disengaja dan disesuaikan dengan kebutuhan penggunaan Kontenum sebagai CDN origin.


Access Keys dan Autentikasi

Membuat Access Keys

Anda dapat membuat, melihat, melakukan rotasi, dan menghapus access key melalui Kontenum Console → Storage Access Keys.

📌 Catatan: Setiap akun dapat memiliki maksimal 2 access key aktif pada satu waktu.

Storage Access Keys

Tips:

  • Simpan Secret Access Key dengan aman, karena hanya ditampilkan satu kali saat pembuatan key.
  • Lakukan rotasi key secara berkala untuk meningkatkan keamanan.
  • Hapus key yang tidak digunakan untuk meminimalkan risiko keamanan.
  • Jika ingin melakukan rotasi key, buat key baru terlebih dahulu, perbarui aplikasi agar menggunakan key baru tersebut, nonaktifkan key lama, pantau aplikasi Anda, lalu hapus key lama.

Mekanisme Autentikasi

Semua permintaan API diautentikasi melalui Authorization HTTP header.

Format:

Authorization: <ACCESS_KEY>:<SECRET_KEY>

Baik Access Key maupun Secret Key diperlukan untuk menandatangani setiap request.


Praktik Keamanan Terbaik

  • Jangan pernah membagikan Secret Access Key kepada siapa pun
  • Lakukan rotasi access key secara berkala
  • Simpan key secara aman di konfigurasi sisi server
  • Jangan menyematkan key di JavaScript sisi browser atau environment tidak tepercaya lainnya

Protokol

Kontenum S3 mendukung:

  • HTTP
  • HTTPS (direkomendasikan)

Pilih protokol yang paling sesuai dengan kebutuhan keamanan dan performa Anda.


Perilaku Kontrol Akses

Pembatasan Akses Baca

GetObject (akses BACA) dinonaktifkan melalui API S3.

Ini merupakan desain yang disengaja, karena Kontenum Storage dioptimalkan untuk use case CDN sebagai origin.

Anda masih dapat:

  • Mengunduh objek menggunakan fitur Storage Explorer di Kontenum Console

Penentuan Host

Kontenum mendukung kedua gaya request AWS S3:

  • Path-style requests
  • Virtual-hosted–style requests

Example host:

s3.kontenum.com

Rekomendasi Style

Kontenum merekomendasikan _path-style _requests untuk fleksibilitas maksimal:

https://s3.kontenum.com/my-bucket/my-object

Path-style menghindari limitasi domain dan sertifikat yang terkait dengan penamaan bucket.


Respon Error

Sebisa mungkin, Kontenum mengembalikan respons error yang identik dengan AWS S3, sehingga tetap kompatibel dengan tooling dan SDK AWS S3 yang sudah ada.


Request Signing dan Autentikasi

Kontenum mendukung mekanisme request signing yang sama seperti AWS S3:

Versi Signature yang Didukung

  • Signature Version 2
  • Signature Version 4

Baik request signing berbasis header maupun parameter query didukung.


Signature Version 4

  • Menawarkan keamanan yang lebih kuat
  • Memerlukan hashing SHA256
  • Biaya komputasi sedikit lebih tinggi
  • Semua region didukung
  • Default AWS region: us-east-1

Direkomendasikan untuk workload yang sensitif terhadap keamanan.


Signature Version 2

  • Proses signing dan verifikasi lebih cepat
  • Cocok untuk aplikasi yang sangat sensitif terhadap performa
  • Integritas data dapat diverifikasi menggunakan ETag (MD5 hash) yang dikembalikan

Parameter Subresource Tambahan

Kontenum memperluas Signature Version 2 dengan subresource query tambahan:

  • append
  • compose
  • force_delete=true

Parameter ini berlaku untuk:

  • PutObject
  • DeleteBucket

Saat menggunakan Signature Version 2, subresource tersebut harus disertakan dalam perhitungan signature.


Operasi yang Tidak Didukung

Kontenum tidak mendukung:

  • Browser-based uploads
  • HTML form–based S3 uploads

Operasi ini ditujukan untuk alur kerja halaman web, yang saat ini tidak didukung oleh Kontenum.


Kesimpulan

Kontenum S3 sepenuhnya kompatibel dengan AWS S3 sekaligus dioptimalkan untuk workload CDN sebagai origin. Aplikasi AWS S3 yang sudah ada dapat digunakan dengan perubahan minimal atau bahkan tanpa perubahan, dengan tetap memperhatikan pembatasan akses dan perilaku penandatanganan (signing) khusus milik Kontenum.

Untuk pola penggunaan S3 secara umum, selalu jadikan dokumentasi resmi AWS S3 sebagai referensi pendamping bersama panduan ini.