Lewati ke konten utama

Langkah 8 - Instal komponen CDR

Terakhir, instal layanan aplikasi CDR. Untuk chart ini, pastikan Anda menetapkan tag image ke tag yang sesuai yang ditemukan dalam catatan rilis terbaru.

Contoh di bawah ini telah diisi sebelumnya dengan tag untuk v2.18.1:

8.1 Engine

Untuk mengintegrasikan Halo dengan ReversingLabs, tetapkan variabel enable_reversing_labs ke true. Pastikan secret ReversingLabs yang diperlukan dibuat di Key Vault 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}" \
--atomic

8.2 - Sync API

helm upgrade --install cdrplatform-sync-api cdrplatform-sync-api \
--set image.tag=2.18.1-183506 \
--set image.registry=glasswallhub.azurecr.io \
--atomic

8.3 Layanan API Access

Layanan API Access bertindak sebagai gateway ke Glasswall Halo Synchronous API dan Policy Management API.

Ini mengekspos fungsionalitas CDR melalui HTTP. Jika lingkungan Anda memerlukan komunikasi aman, konfigurasikan layanan untuk menggunakan HTTPS dengan TLS atau SSL dengan mengikuti petunjuk instalasi TLS atau SSL. Jika tidak, ikuti petunjuk untuk instalasi tanpa TLS atau SSL.

8.3A - Untuk deployment tanpa TLS/SSL

helm upgrade --install cdrplatform-api-access cdrplatform-api-access \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=2.18.1-183506 \
--atomic

8.3B - Untuk deployment dengan TLS/SSL

Untuk mengaktifkan SSL pada CDR API, buat private key dan sertifikat untuk domain yang digunakan.

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 oleh passphrase.

kubectl create secret tls tls-secret --key server.key --cert server.crt

Secret ini kemudian dapat digunakan untuk mengaktifkan TLS pada ingress dengan memastikan bahwa nama domain ditetapkan dalam perintah di bawah ini:

helm upgrade --install cdrplatform-api-access cdrplatform-api-access \
--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 \
--atomic

8.3C - Untuk mengaktifkan autentikasi API dasar

Autentikasi di Glasswall Halo dinonaktifkan secara default. Saat diaktifkan, ini berlaku untuk Glasswall Halo Synchronous API dan Policy API.

Untuk mengaktifkan autentikasi:

  • Buat dua secret di Azure Key Vault. Satu secret menyimpan organisation ID, dan yang lainnya menyimpan organisation token. Saat menentukan beberapa token, pisahkan dengan koma. Pastikan token individual tidak mengandung koma. Secret Azure Key Vault 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
  • 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
  • Tetapkan configuration.AuthenticationScheme=Basic saat men-deploy Helm chart. Contohnya:
helm upgrade --install cdrplatform-api-access  cdrplatform-api-access \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=2.18.1-183506 \
--set configuration.AuthenticationScheme=Basic \
--atomic

8.3D - Untuk mengaktifkan autentikasi API Azure AD

Untuk mengaktifkan autentikasi berbasis Azure AD, tetapkan configuration.AuthenticationScheme=Bearer dan konfigurasikan variabel tenant_id dan domain_name saat men-deploy Helm chart.

Perhatikan bahwa URI pendaftaran aplikasi dapat bervariasi tergantung pada kapan aplikasi dibuat. Selalu salin URI pendaftaran aplikasi dari portal Azure dan gunakan sebagai audiens yang valid.

tenant_id=""
domain_name=""
valid_audiences="api://cdrplatform-api-access" or "api://${tenant_id}/cdrplatform-api-access" # (verify app registration URI from Azure)
helm upgrade --install cdrplatform-api-access cdrplatform-api-access --wait --atomic \
--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.AuthenticationScheme="Bearer" \
--set configuration.Authentication__Schemes__Bearer__ValidAudiences__0=${valid_audiences} \
--set configuration.Authentication__Schemes__Bearer__ValidIssuer=https://sts.windows.net/${tenant_id}/ \
--set configuration.Authentication__Schemes__Bearer__Authority=https://login.microsoftonline.com/${tenant_id}/v2.0/
Pengguna Azure US Government

Gunakan perintah berikut saat melakukan deployment ke Azure US Government.

Pengaturan ini memastikan endpoint dan nilai environment yang benar digunakan.

tenant_id=""
domain_name=""
valid_audiences="api://cdrplatform-api-access" or "api://${tenant_id}/cdrplatform-api-access" # (verify app registration URI from Azure portal)
helm upgrade --install cdrplatform-api-access cdrplatform-api-access --wait --atomic \
--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.AuthenticationScheme="Bearer" \
--set configuration.Authentication__Schemes__Bearer__ValidAudiences__0=${valid_audiences} \
--set configuration.Authentication__Schemes__Bearer__ValidIssuer=https://sts.windows.net/${tenant_id}/ \
--set configuration.Authentication__Schemes__Bearer__Authority=https://login.microsoftonline.us/${tenant_id}/v2.0/

8.4 Portal

Untuk men-deploy layanan Portal, jalankan perintah berikut:

8.4A - Untuk deployment tanpa TLS/SSL

Catatan: <IP-address> yang disebutkan dalam perintah ini merujuk ke alamat IP publik Load Balancer. Ini dapat diperoleh melalui langkah-langkah "Portal & API Access" di bawah ini.

helm upgrade --install cdrplatform-portal cdrplatform-portal \
--set image.registry=glasswallhub.azurecr.io \
--set configuration.BackendUrl="http://<IP-address>" \
--set image.tag=2.18.1-183506 \
--set configuration.HaloVersion=2.18.1 \
--atomic

8.4B - Untuk deployment dengan TLS/SSL

Jika TLS diperlukan, tambahkan parameter --set ingress.tls.enable_tls=true dan setel portal_domain=<domain name>.

Dalam contoh di bawah ini, secret Kubernetes yang sama yang dibuat untuk layanan API Access digunakan untuk mengambil sertifikat TLS.

portal_domain=""
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.BackendUrl="https://${portal_domain}" \
--set configuration.HaloVersion=2.18.1 \
--atomic

8.4C - Aktifkan akses admin tanpa autentikasi

Ketika login Single Sign-On (SSO) tidak diaktifkan di Portal, fitur administratif, seperti manajemen lisensi dan konfigurasi policy, tidak dapat diakses. Untuk mengaktifkan akses ke fitur admin ini tanpa menyiapkan 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

8.4D Untuk mengonfigurasi login SSO di Portal Glasswall Halo

Setel variabel portal_domain, portal_client_id, dan tenant_id dalam perintah di bawah ini, lalu jalankan.

portal_domain adalah nama domain yang digunakan untuk mengonfigurasi TLS untuk layanan Portal dan harus cocok dengan domain yang digunakan dalam pendaftaran aplikasi cdrplatform-portal-client.

portal_client_id adalah application (client) ID dari pendaftaran aplikasi cdrplatform-portal-client yang dibuat pada langkah prasyarat.

tenant_id adalah tenant tempat pendaftaran APP dibuat.

enabled_pages harus berisi berbagai halaman yang perlu diaktifkan. Berikan nilainya dengan dipisahkan oleh koma (,).

Sebagai contoh, ini harus disetel ke SystemSettings\,PolicySettings\,ValidationSettings\,IcapSettings\,IcapRequests\,IcapReporting ketika Policy API, server ICAP, dan ReversingLabs di-deploy, atau setel ke SystemSettings\,PolicySettings\,ValidationSettings jika hanya Policy API yang di-deploy.

Jika Policy API dan server ICAP tidak ada yang di-deploy, setel ke enabled_pages="SystemSettings".

portal_domain=""
portal_client_id=""
tenant_id=""
enabled_pages="SystemSettings\,PolicySettings\,ValidationSettings"
helm upgrade --install cdrplatform-portal cdrplatform-portal \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=2.18.1-183506 \
--set ingress.tls.enabled=true \
--set ingress.tls.domain=${portal_domain} \
--set ingress.tls.secretName=tls-secret \
--set configuration.BackendUrl="https://${portal_domain}" \
--set configuration.EnabledPages=${enabled_pages} \
--set configuration.OIDC.ProviderOptions.Authority="https://login.microsoftonline.com/${tenant_id}/v2.0" \
--set configuration.OIDC.ProviderOptions.RedirectUri="https://${portal_domain}/authentication/login-callback" \
--set configuration.OIDC.ProviderOptions.ClientId="${portal_client_id}" \
--set configuration.OIDC.ProviderOptions.PostLogoutRedirectUri="https://${portal_domain}/authentication/logout-callback" \
--set configuration.HaloVersion=2.18.1 \
--atomic
Pengguna Azure US Government

Gunakan perintah berikut saat melakukan deployment ke Azure US Government.

Pengaturan ini memastikan endpoint dan nilai environment yang benar digunakan.

portal_domain=""
portal_client_id=""
tenant_id=""
enabled_pages="SystemSettings\,PolicySettings\,ValidationSettings"
helm upgrade --install cdrplatform-portal cdrplatform-portal \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=2.18.1-183506 \
--set ingress.tls.enabled=true \
--set ingress.tls.domain=${portal_domain} \
--set ingress.tls.secretName=tls-secret \
--set configuration.BackendUrl="https://${portal_domain}" \
--set configuration.EnabledPages=${enabled_pages} \
--set configuration.OIDC.ProviderOptions.Authority="https://login.microsoftonline.us/${tenant_id}/v2.0" \
--set configuration.OIDC.ProviderOptions.RedirectUri="https://${portal_domain}/authentication/login-callback" \
--set configuration.OIDC.ProviderOptions.ClientId="${portal_client_id}" \
--set configuration.OIDC.ProviderOptions.PostLogoutRedirectUri="https://${portal_domain}/authentication/logout-callback" \
--set configuration.HaloVersion=2.18.1 \
--set appenvironment.HTTP_CSP_CONNECT_SRC="'self'https://login.microsoftonline.us https://graph.microsoft.us" \
--set appenvironment.HTTP_CSP_FRAME_SRC="'self' https://login.microsoftonline.us" \
--set appenvironment.HTTP_CSP_FRAME_ANCESTORS="'self' https://login.microsoftonline.us" \
--atomic

8.5 Akses Portal

Portal Access berfungsi sebagai backend untuk Portal. Ini memungkinkan Halo Portal mengakses Policy Management API dan Synchronous API.

8.5A Untuk deployment dengan TLS/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

8.5B 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

8.5C Tanpa autentikasi

helm upgrade --install cdrplatform-portal-access cdrplatform-portal-access \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=2.18.1-183506 \
--set configuration.AuthenticationScheme=None \
--atomic

8.5D Untuk mengaktifkan autentikasi Azure AD

Portal Access mengaktifkan autentikasi SSO menggunakan Azure AD.

Setel variabel tenant_id dan portal_domain pada perintah di bawah ini, lalu jalankan.

Perhatikan bahwa URI pendaftaran APP dapat berbeda-beda tergantung kapan URI tersebut dibuat. Selalu salin URI pendaftaran aplikasi dari portal Azure dan gunakan sebagai valid audience.

tenant_id=""
portal_domain=""
valid_audiences="api://cdrplatform-portal-access" or "api://${tenant_id}/cdrplatform-portal-access" # (verify app registration URI from Azure)
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=${portal_domain} \
--set ingress.tls.secretName=tls-secret \
--set configuration.AuthenticationScheme=Bearer \
--set configuration.Authentication__Schemes__Bearer__ValidAudiences__0=${valid_audiences} \
--set configuration.Authentication__Schemes__Bearer__ValidIssuer=https://sts.windows.net/${tenant_id}/ \
--set configuration.Authentication__Schemes__Bearer__Authority=https://login.microsoftonline.com/${tenant_id}/v2.0/ \
--atomic
Pengguna Azure US Government

Gunakan perintah berikut saat melakukan deployment ke Azure US Government.

Pengaturan ini memastikan endpoint dan nilai environment yang benar digunakan.

tenant_id=""
portal_domain=""
valid_audiences="api://cdrplatform-portal-access" or "api://${tenant_id}/cdrplatform-portal-access" # (verify app registration URI from Azure)
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=${portal_domain} \
--set ingress.tls.secretName=tls-secret \
--set configuration.AuthenticationScheme=Bearer \
--set configuration.Authentication__Schemes__Bearer__ValidAudiences__0=${valid_audiences} \
--set configuration.Authentication__Schemes__Bearer__ValidIssuer=https://sts.windows.net/${tenant_id}/ \
--set configuration.Authentication__Schemes__Bearer__Authority=https://login.microsoftonline.us/${tenant_id}/v2.0/ \
--atomic

8.6 API Manajemen Policy

API Manajemen Policy digunakan untuk mengelola flag manajemen konten Glasswall Halo. Layanan ini bersifat opsional dan sebaiknya diinstal hanya jika Anda berencana 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 configuration.DATABASE__Provider=${database_provider}
  • Halaman swagger API Manajemen Policy dapat diakses menggunakan:
http://<ip>/swagger/index.html

8.7 Manajemen Lisensi

Layanan Manajemen Lisensi digunakan untuk mengelola lisensi di Glasswall Halo Portal.

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 configuration.DATABASE__Provider=${database_provider} \
-n license-management \
--atomic

8.8 Layanan pembersihan

Layanan pembersihan menghapus file asli dan file hasil rebuild dari penyimpanan persisten setelah pemrosesan selesai.

helm upgrade --install cdrplatform-cleanup cdrplatform-cleanup \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=2.18.1-183506 \
--atomic

8.9 API Asinkron

API Asinkron dapat di-deploy menggunakan perintah di bawah ini. Database MongoDB diperlukan untuk API Asinkron.

helm upgrade --install cdrplatform-async-api cdrplatform-async-api \
--set image.tag=2.18.1-183506\
--set image.registry=glasswallhub.azurecr.io \
--set configuration.DATABASE__Provider=${database_provider} \
--atomic

8.10 Proyeksi metrik

Layanan Metrics projection digunakan untuk mengambil data pelaporan dari MongoDB untuk ditampilkan di UI Halo Portal.

helm upgrade --install cdrplatform-metrics-projection cdrplatform-metrics-projection \
--set image.tag=2.18.1-183506 \
--set image.registry=glasswallhub.azurecr.io \
--set configuration.DATABASE__Provider=${database_provider} \
--set cloud_provider=azure \
--atomic

## 8.11 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 \
--atomic

## 8.12 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 configuration.DATABASE__Provider=${database_provider} \
--atomic

8.13 MongoDB

Catatan: jika MongoDB sudah dikonfigurasi di Azure dan Anda tidak ingin menginstal atau mengelola MongoDB di dalam cluster Anda, Anda dapat melewati langkah ini dan melanjutkan.

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=azure
  • Ambil connection string dari secret Kubernetes
kubectl get secret mongodb-cdrplatform-cdrp-user -o jsonpath='{.data.connectionString\.standard}' | base64 -d
  • Perbarui secret Azure Key Vault dengan string koneksi MongoDB
az keyvault secret set --name "mongodb-connectionstring" --vault-name "${kvname}" --value "<output-from-previous-step>"

8.14 Layanan Pemantauan Penyimpanan

Layanan Storage Monitoring menyediakan API untuk berlangganan dan melacak perubahan yang dibuat pada dokumen dalam mekanisme penyimpanan yang dikonfigurasi seperti SharePoint dan OneDrive.

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

8.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>

8.16 Akses Portal & API

Gunakan perintah berikut untuk menentukan alamat IP eksternal yang terkait dengan cluster Anda.

IP eksternal sesuai dengan alamat IP publik yang ditetapkan ke Azure load balancer.

kubectl get services --namespace cdrplatform nginx-ingress-ingress-nginx-controller --output jsonpath='{.status.loadBalancer.ingress[0].ip}'

Sekarang Anda dapat menggunakan IP yang dikembalikan di atas untuk membuka Halo Portal dan dokumentasi API (gunakan https jika TLS diaktifkan):

Portal: http://<ip>
API Documentation: http://<ip>/swagger/index.html