Dalam siklus hidup DevOps dan orkestrasi kontainer modern (Docker Swarm maupun Kubernetes), container image merupakan aset intelektual se...
Dalam siklus hidup DevOps dan orkestrasi kontainer modern (Docker Swarm maupun Kubernetes), container image merupakan aset intelektual sekaligus fondasi dari seluruh aplikasi yang berjalan di produksi. Mengandalkan public container registry seperti Docker Hub memiliki batasan nyata: batas penarikan image (pull rate limits), potensi downtime jaringan publik, serta risiko privasi kode proprietary.
Harbor adalah private container registry open-source berstandar enterprise yang telah berstatus Graduated Project di bawah naungan Cloud Native Computing Foundation (CNCF). Harbor tidak hanya sekadar menyimpan image OCI dan Helm chart, melainkan melengkapi ekosistem container dengan Role-Based Access Control (RBAC), replikasi multi-registry, penandatanganan integritas image (Cosign/Notary), dan pemindaian celah keamanan (Vulnerability Scanning) terintegrasi menggunakan engine Trivy.
1. Komponen Arsitektur Utama Harbor
Harbor berjalan sebagai rangkaian microservices terorkestrasi via Docker Compose:
- Harbor Core: API server utama yang menangani autentikasi pengguna, manajemen proyek, webhook, dan otorisasi kuota.
- Docker Registry v2: Komponen upstream OCI compliant yang menyimpan layer blob dan manifest image.
- Trivy Scanner: Mesin pemindai statis yang menganalisis pustaka OS dan dependensi aplikasi terhadap basis data CVE terbaru.
- PostgreSQL & Redis: Menyimpan metadata sistem, log aktivitas pengguna, sesi, serta antrean job caching background.
- Nginx Proxy: Front-end reverse proxy internal yang mengarahkan lalu lintas HTTPS/HTTP ke komponen Harbor.
2. Persiapan Sistem dan Sertifikat TLS / SSL
Sebelum menginstal Harbor, pastikan server Ubuntu Anda telah memiliki Docker Engine dan plugin Docker Compose v2. Buat direktori kerja serta buat sertifikat SSL (Self-Signed untuk internal LAN atau Let's Encrypt untuk domain publik):
# Buat direktori sertifikat
sudo mkdir -p /etc/harbor/certs
cd /etc/harbor/certs
# Generate private key dan sertifikat SSL untuk domain registry.lab.internal
sudo openssl req -newkey rsa:4096 -nodes -sha256 -keyout registry.key -x509 -days 3650 -out registry.crt -subj "/C=ID/ST=Sultra/L=Baubau/O=zhatoTECH/CN=registry.lab.internal"
3. Mengunduh dan Mengonfigurasi Harbor Installer
Unduh rilis installer offline Harbor terbaru dari GitHub release:
# Unduh installer Harbor versi stabil
cd /opt
sudo wget https://github.com/goharbor/harbor/releases/download/v2.11.0/harbor-offline-installer-v2.11.0.tgz
sudo tar xzf harbor-offline-installer-v2.11.0.tgz
cd /opt/harbor
# Salin template konfigurasi
sudo cp harbor.yml.tmpl harbor.yml
Buka berkas harbor.yml dan sesuaikan parameter utama:
# Pengaturan hostname dan TLS pada harbor.yml
hostname: registry.lab.internal
http:
port: 80
https:
port: 443
certificate: /etc/harbor/certs/registry.crt
private_key: /etc/harbor/certs/registry.key
harbor_admin_password: StrongAdminPassword2026!
data_volume: /data/harbor
4. Menjalankan Instalasi dengan Dukungan Pemindai Trivy
Jalankan skrip instalasi dengan mengaktifkan flag --with-trivy agar Harbor menyertakan container scanner Trivy secara otomatis:
# Eksekusi script installer dengan integrasi Trivy
sudo ./install.sh --with-trivy
# Periksa status seluruh kontainer Harbor
docker compose ps
5. Konfigurasi Keamanan DevSecOps: Auto Vulnerability Scanning
Setelah antarmuka web Harbor dapat diakses melalui browser pada https://registry.lab.internal:
- Masuk menggunakan username
admindan password yang Anda buat diharbor.yml. - Buat Project baru, misalnya bernama production, dan atur hak akses menjadi Private.
- Masuk ke tab Configuration di dalam proyek tersebut, lalu centang:
- Automatically scan images on push: Memastikan setiap kali developer atau pipeline CI/CD melakukan
docker push, pemindaian CVE langsung berjalan otomatis. - Prevent vulnerable images from running: Tetapkan ambang batas keparahan (misal: High atau Critical). Jika ditemukan celah berbahaya, Harbor akan memblokir proses
docker pullke server produksi!
- Automatically scan images on push: Memastikan setiap kali developer atau pipeline CI/CD melakukan
6. Konfigurasi Docker Daemon & Pengujian Push Image
Jika menggunakan self-signed certificate, tambahkan domain registry ke berkas /etc/docker/daemon.json pada mesin klien atau worker server:
{
"insecure-registries": ["registry.lab.internal:443"]
}
Muat ulang Docker daemon, lalu lakukan pengujian autentikasi dan pengunggahan image:
# Restart docker daemon
sudo systemctl restart docker
# Login ke private registry
docker login registry.lab.internal -u admin -p StrongAdminPassword2026!
# Tag dan push image lokal ke Harbor
docker pull nginx:alpine
docker tag nginx:alpine registry.lab.internal/production/nginx:alpine
docker push registry.lab.internal/production/nginx:alpine
Kini Anda memiliki repositori image terpusat mandiri yang aman, cepat, dan terproteksi dari ancaman malware maupun supply chain vulnerability.
COMMENTS