Langkah 7 - Instal komponen CDR
Terakhir, instal layanan aplikasi Glasswall Halo. Untuk setiap chart Helm, pastikan tag image diatur ke versi terkait yang tercantum dalam catatan rilis.
Contoh di bawah ini telah diisi sebelumnya dengan tag untuk v2.18.1.
7.1 - Engine
Untuk mengintegrasikan Halo dengan ReversingLabs, atur variabel enable_reversing_labs ke true. Pastikan secret ReversingLabs telah dibuat di AWS Secrets Manager, seperti dijelaskan pada Langkah 3.
enable_reversing_labs=""
helm upgrade --install cdrplatform-engine cdrplatform-engine \
--set image.tag=2.18.1-183506 \
--set image.registry=glasswallhub.azurecr.io \
--set configuration.ENABLE_REVERSING_LABS="${enable_reversing_labs}" \
--set cloud_provider=aws \
--timeout 10m \
--atomic
7.2 - API Sinkron
helm upgrade --install cdrplatform-sync-api cdrplatform-sync-api \
--set image.tag=2.18.1-183506 \
--set image.registry=glasswallhub.azurecr.io \
--set cloud_provider=aws
7.3 - Layanan API Access
Layanan API Access bertindak sebagai gateway ke Glasswall Halo Synchronous API dan Policy Management API.
Layanan ini mengekspos fungsionalitas CDR melalui HTTP. Jika lingkungan Anda memerlukan HTTPS dengan TLS atau SSL, ikuti petunjuk untuk menginstal layanan dengan TLS atau SSL diaktifkan. Jika tidak, ikuti petunjuk untuk instalasi tanpa TLS atau SSL.
7.3A - untuk deployment tanpa tls/ssl
helm upgrade --install cdrplatform-api-access -n cdrplatform cdrplatform-api-access \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=2.18.1-183506 \
--atomic
7.3B - Deployment dengan TLS atau SSL
Untuk menggunakan sertifikat SSL dengan CDR API, buat private key dan sertifikat untuk domain yang diperlukan.
Buat secret Kubernetes dari file private key dan sertifikat menggunakan perintah di bawah ini. Perintah ini membuat secret bernama tls-secret menggunakan server.key sebagai private key dan server.crt sebagai sertifikat.
Dalam contoh ini, private key tidak boleh dilindungi dengan passphrase.
kubectl create secret tls tls-secret --key server.key --cert server.crt
Secret ini kemudian dapat digunakan untuk mengaktifkan TLS pada ingress, memastikan bahwa nama domain ditetapkan pada perintah di bawah ini:
helm upgrade --install cdrplatform-api-access -n cdrplatform cdrplatform-api-access \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=2.18.1-183506 \
--set cloud_provider=aws \
--set ingress.tls.enabled=true \
--set ingress.tls.domain=${domain_name} \
--set ingress.tls.secretName=tls-secret \
--atomic
7.3C - Aktifkan autentikasi API
Autentikasi untuk Glasswall Halo API dinonaktifkan secara default. Untuk mengaktifkan autentikasi, selesaikan langkah-langkah di bawah ini.
-
Buat dua secret di AWS Secrets Manager.
- Satu secret untuk organisation ID
- Satu secret untuk organisation tokens
Saat menentukan beberapa token, pisahkan dengan koma. Pastikan setiap token tidak mengandung koma.
-
Secret di AWS Secrets Manager harus mengikuti konvensi penamaan di bawah ini.
-
Secret organisation ID
- Harus diawali dengan
organisation - Harus diakhiri dengan
-id - Sertakan indeks numerik di antara prefiks dan sufiks
- Contoh:
organisation0-id,organisation1-id,organisation2-id
- Harus diawali dengan
-
Rahasia token organisasi
- Harus diawali dengan
organisation - Harus diakhiri dengan
-tokens - Sertakan indeks numerik di antara prefiks dan sufiks
- Contoh:
organisation0-tokens,organisation1-tokens,organisation2-tokens
- Harus diawali dengan
-
-
Tetapkan
configuration.AuthenticationScheme=Basicsaat men-deploy Helm chart. Contohnya:
helm upgrade --install cdrplatform-api-access -n cdrplatform cdrplatform-api-access \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=2.18.1-183506 \
--set configuration.AuthenticationScheme=Basic \
--atomic
7.4 - MongoDB
Catatan: jika Anda sebelumnya telah mengonfigurasi dan menyiapkan MongoDB di AWS dan jika Anda tidak ingin mengelola serta menginstal MongoDB di dalam cluster Anda, Anda dapat melewati langkah ini, dan melanjutkan ke penginstalan Portal Services di bawah ini.
Operator MongoDB
helm install community-operator mongodb/community-operator --namespace cdrplatform \
--set operator.version=0.9.0 \
--set agent.version=107.0.0.8465-1 \
--atomic
Instal MongoDB
helm upgrade -i cdrplatform-mongodb cdrplatform-mongodb -n cdrplatform --atomic \
--set cloud_provider=aws
Setelah MongoDB di-deploy, ambil connection string MongoDB dan simpan di AWS Secrets Manager.
- Ambil connection string dari secret k8s
mongodb_conn_str=$(kubectl get secret mongodb-cdrplatform-cdrp-user -o jsonpath='{.data.connectionString\.standard}' | base64 -d)
- Buat secret baru di AWS Secrets Manager dengan string koneksi MongoDB.
aws secretsmanager create-secret --name "mongodb-connectionstring" --secret-string "${mongodb_conn_str}" --region "${region}"
7.5 - Portal
Untuk men-deploy layanan Portal, jalankan perintah di bawah ini.
7.5A - Deployment tanpa TLS atau SSL
Catatan: <ip-address> yang dirujuk dalam perintah ini adalah alamat IP publik dari load balancer. Ini dapat diperoleh dengan mengikuti langkah Portal and API Access di bawah ini.
helm upgrade --install cdrplatform-portal cdrplatform-portal \
--set image.registry=glasswallhub.azurecr.io \
--set configuration.OIDC=null \
--set image.tag=2.18.1-183506 \
--set configuration.BackendUrl=http://<ip-address> \
--set configuration.HaloVersion=2.18.1 \
--atomic
7.5B - Deployment dengan TLS atau SSL
Jika TLS diperlukan, tambahkan parameter --set ingress.tls.enable_tls=true dan --set ingress.tls.domain=<domain_name>.
Dalam contoh di bawah ini, secret Kubernetes yang sama yang dibuat untuk layanan API Access digunakan untuk mengambil sertifikat TLS.
helm upgrade --install cdrplatform-portal cdrplatform-portal \
--set image.tag=2.18.1-183506 \
--set image.registry=glasswallhub.azurecr.io \
--set ingress.tls.enabled=true \
--set ingress.tls.domain=${domain_name} \
--set ingress.tls.secretName=tls-secret \
--set configuration.BackendUrl=https://${domain_name} \
--set configuration.OIDC=null \
--set configuration.HaloVersion=2.18.1 \
--atomic
7.5C - Aktifkan akses admin tanpa autentikasi
Saat login Single Sign On tidak diaktifkan untuk Portal, fitur administratif seperti manajemen lisensi dan konfigurasi policy tidak dapat diakses.
Untuk mengaktifkan akses ke fitur administratif ini tanpa mengonfigurasi SSO, deploy Helm chart dengan konfigurasi berikut.
helm upgrade --install cdrplatform-portal cdrplatform-portal \
--set image.tag=2.18.1-183506 \
--set image.registry=glasswallhub.azurecr.io \
--set ingress.tls.enabled=true \
--set ingress.tls.domain=${portal_domain} \
--set ingress.tls.secretName=tls-secret \
--set configuration.AutoAdmin="true" \
--atomic
7.5D - Konfigurasikan Halo Portal untuk mengautentikasi API
Jika autentikasi API diaktifkan, ganti ${organisation1_id} dan ${organisation1_tokens} dengan nama secret yang sesuai yang dibuat di AWS Secrets Manager.
helm upgrade --install cdrplatform-portal cdrplatform-portal \
--set image.tag=2.18.1-183506 --set image.registry=glasswallhub.azurecr.io \
--set configuration.EnableAuth=true \
--set AuthSecrets.orgIdKey=${organisation1-id} \
--set AuthSecrets.orgTokenKey=${organisation1-tokens} \
--atomic
7.6 - Policy Management API
Policy Management API digunakan untuk mengelola policy untuk flag manajemen konten Glasswall Halo. Ini adalah layanan opsional, instal ini jika Anda ingin membuat dan menggunakan policy kustom.
helm upgrade --install cdrplatform-policy-api cdrplatform-policy-api \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=2.18.1-183506 --set cloud_provider=aws \
--atomic
Halaman swagger Policy API dapat diakses menggunakan
http://<ip>/swagger/index.html
7.7 - Akses Portal
Layanan Portal Access bertindak sebagai backend untuk Portal. Layanan ini memungkinkan Portal mengakses Policy Management API dan Synchronous API.
7.7A - Deployment dengan TLS atau SSL
Jika TLS diperlukan, tambahkan parameter --set ingress.tls.enable_tls=true dan --set ingress.tls.domain=<domain_name>.
Dalam contoh di bawah ini, secret Kubernetes yang sama yang dibuat untuk layanan API Access digunakan untuk mengambil sertifikat TLS.
helm upgrade --install cdrplatform-portal-access cdrplatform-portal-access \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=2.18.1-183506 \
--set ingress.tls.enabled=true \
--set ingress.tls.domain=${domain_name} \
--set ingress.tls.secretName=tls-secret \
--set configuration.AuthenticationScheme=None \
--atomic
7.7B - untuk deployment tanpa TLS/SSL
helm upgrade --install cdrplatform-portal-access cdrplatform-portal-access \
--set image.registry=glasswallhub.azurecr.io \
--set configuration.AuthenticationScheme=None \
--set image.tag=2.18.1-183506 \
--atomic
7.8 - Manajemen lisensi
Layanan License management digunakan untuk mengelola lisensi di Glasswall Halo.
helm upgrade --install cdrplatform-license-management cdrplatform-license-management -n license-management \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=2.18.1-183506 \
--set cloud_provider=aws \
--atomic
7.9 - Layanan pembersihan
Layanan Clean up menghapus file asli dan file hasil rebuild dari penyimpanan persisten setelah file diproses.
helm upgrade --install cdrplatform-cleanup cdrplatform-cleanup \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=2.18.1-183506 \
--set cloud_provider=aws \
--atomic
7.10 - Asynchronous API
Asynchronous API dapat di-deploy menggunakan perintah di bawah ini. Database MongoDB merupakan prasyarat untuk Async API.
helm upgrade --install cdrplatform-async-api cdrplatform-async-api \
--set image.tag=2.18.1-183506 \
--set image.registry=glasswallhub.azurecr.io \
--set cloud_provider=aws \
--atomic
7.11 - Proyeksi metrik
Layanan proyeksi metrik digunakan untuk menarik data pelaporan dari MongoDB agar ditampilkan di Portal UI.
helm upgrade --install cdrplatform-metrics-projection cdrplatform-metrics-projection \
--set image.tag=2.18.1-183506 \
--set image.registry=glasswallhub.azurecr.io \
--set cloud_provider=aws \
--atomic
7.12 - Ekstraktor laporan
Layanan Report extractor mengekstrak laporan analisis dan memublikasikannya untuk pelaporan.
helm upgrade --install cdrplatform-report-extractor cdrplatform-report-extractor \
--set image.tag=2.18.1-183506 \
--set image.registry=glasswallhub.azurecr.io \
--set cloud_provider=aws \
--atomic
7.13 - Akumulator tally
Layanan Tally accumulator melacak dan memelihara tally statistik penggunaan.
helm upgrade --install cdrplatform-tally-accumulator cdrplatform-tally-accumulator \
--set image.tag=2.18.1-183506 \
--set image.registry=glasswallhub.azurecr.io \
--set cloud_provider=aws \
--atomic
7.14 - Layanan pemantauan penyimpanan
Layanan Storage Monitoring menyediakan API untuk berlangganan dan melacak perubahan yang dibuat pada dokumen di layanan penyimpanan yang dikonfigurasi seperti SharePoint.
TLS harus diaktifkan untuk webhook.
Tambahkan parameter --set ingress.tls.enable_tls=true dan --set ingress.tls.domain=<domain_name>.
Dalam contoh di bawah ini, secret Kubernetes yang sama yang dibuat untuk layanan API Access digunakan untuk mengambil sertifikat TLS.
helm upgrade --install cdrplatform-storage-monitor cdrplatform-storage-monitor --wait --atomic \
--set image.tag="2.18.1-183506" \
--set image.registry="glasswallhub.azurecr.io" \
--set configuration.DATABASE__Provider="${database_provider}" \
--set configuration.WEBHOOKS__CallbackBaseAddress="https://${domain_name}" \
--set ingress.tls.enabled=true \
--set ingress.tls.domain=${domain_name} \
--set ingress.tls.secretName=tls-secret \
--atomic
7.15 - Penskalaan Prometheus opsional
Instal chart penskalaan Prometheus hanya jika Anda ingin mengaktifkan penskalaan berbasis Prometheus.
helm upgrade --install prometheus-scaling prometheus-scaling --wait --atomic \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=3.10.0 \
--set imagePullSecrets[0].name=acr-secret \
--set keda.icap.enabled=<true|false>
7.16 - Akses Portal & API
Gunakan perintah di bawah ini untuk menentukan external-ip yang terkait dengan cluster Anda:
Catatan: external-ip akan sama dengan alamat IP publik yang terpasang pada AWS load balancer.
kubectl get services --namespace cdrplatform nginx-ingress-ingress-nginx-controller --output jsonpath='{.status.loadBalancer.ingress[0].hostname}'
Anda sekarang dapat menggunakan IP yang dikembalikan di atas untuk membuka dokumentasi Portal dan API (gunakan https jika TLS diaktifkan):
Portal: http://<ip>
API documentation: http://<ip>/swagger