Langkau ke kandungan utama

Langkah 7 - Pasang komponen CDR

Akhir sekali, pasang perkhidmatan aplikasi Glasswall Halo. Bagi setiap carta Helm, pastikan tag imej ditetapkan kepada versi sepadan yang disenaraikan dalam nota keluaran.

Contoh di bawah telah dipraisi dengan tag untuk v2.18.1.

7.1 - Engine

Untuk menyepadukan Halo dengan ReversingLabs, tetapkan pemboleh ubah enable_reversing_labs kepada true. Pastikan rahsia ReversingLabs telah dicipta dalam AWS Secrets Manager, seperti yang diterangkan dalam 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 Segerak

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 - Perkhidmatan API Access

Perkhidmatan API Access bertindak sebagai gerbang kepada Glasswall Halo Synchronous API dan Policy Management API.

Ia mendedahkan fungsi CDR melalui HTTP. Jika persekitaran anda memerlukan HTTPS dengan TLS atau SSL, ikuti arahan untuk memasang perkhidmatan dengan TLS atau SSL didayakan. Jika tidak, ikuti arahan untuk pemasangan 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 sijil SSL dengan CDR API, cipta kunci peribadi dan sijil untuk domain yang diperlukan.

Cipta Kubernetes secret daripada fail kunci peribadi dan sijil menggunakan arahan di bawah. Arahan ini mencipta secret bernama tls-secret menggunakan server.key sebagai kunci peribadi dan server.crt sebagai sijil.

Dalam contoh ini, private key tidak boleh dilindungi dengan frasa laluan.

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

Rahsia ini kemudiannya boleh digunakan untuk mendayakan TLS pada ingress bagi memastikan nama domain ditetapkan pada arahan di bawah:

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 - Dayakan pengesahan API

Pengesahan untuk Glasswall Halo API dinyahdayakan secara lalai. Untuk mendayakan pengesahan, lengkapkan langkah-langkah di bawah.

  • Cipta dua rahsia dalam AWS Secrets Manager.

    • Satu rahsia untuk ID organisasi
    • Satu rahsia untuk token organisasi

    Apabila menentukan berbilang token, asingkannya dengan koma. Pastikan token individu tidak mengandungi koma.

  • Rahsia dalam AWS Secrets Manager mesti mengikut konvensyen penamaan di bawah.

    • Secret ID organisasi

      • Mesti bermula dengan organisation
      • Mesti berakhir dengan -id
      • Sertakan indeks berangka antara awalan dan akhiran
      • Contoh: organisation0-id, organisation1-id, organisation2-id
    • Rahsia token organisasi

      • Mesti bermula dengan organisation
      • Mesti berakhir dengan -tokens
      • Sertakan indeks berangka antara awalan dan akhiran
      • Contoh: organisation0-tokens, organisation1-tokens, organisation2-tokens
  • Tetapkan configuration.AuthenticationScheme=Basic semasa menggunakan carta Helm. 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

Nota: jika anda sebelum ini telah mengkonfigurasi dan menyediakan MongoDB dalam AWS dan jika anda tidak mahu mengurus serta memasang MongoDB dalam kluster anda, anda boleh melangkau langkah ini, dan teruskan kepada pemasangan Portal Services di bawah.

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

Pasang MongoDB

helm upgrade -i cdrplatform-mongodb cdrplatform-mongodb -n cdrplatform --atomic \
--set cloud_provider=aws

Selepas MongoDB digunakan, dapatkan rentetan sambungan MongoDB dan simpan ia dalam AWS Secrets Manager.

  • Dapatkan rentetan sambungan daripada rahsia k8s
mongodb_conn_str=$(kubectl get secret mongodb-cdrplatform-cdrp-user -o jsonpath='{.data.connectionString\.standard}' | base64 -d)
  • Cipta secret baharu dalam AWS Secrets Manager dengan rentetan sambungan MongoDB.
aws secretsmanager create-secret --name "mongodb-connectionstring" --secret-string "${mongodb_conn_str}" --region "${region}"

7.5 - Portal

Untuk melaksanakan perkhidmatan Portal, jalankan arahan di bawah.

7.5A - Deployment tanpa TLS atau SSL

Nota: <ip-address> yang dirujuk dalam arahan ini ialah alamat IP awam bagi load balancer. Ini boleh diperoleh dengan mengikuti langkah Portal and API Access di bawah.

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, secret Kubernetes yang sama yang dicipta untuk perkhidmatan API Access digunakan untuk mendapatkan sijil 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 - Dayakan akses pentadbir tanpa pengesahan

Apabila log masuk Single Sign On tidak didayakan untuk Portal, ciri pentadbiran seperti pengurusan lesen dan konfigurasi policy tidak boleh diakses.

Untuk mendayakan akses kepada ciri pentadbiran ini tanpa mengkonfigurasi SSO, laksanakan carta Helm 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 mengesahkan API

Jika pengesahan API didayakan, gantikan ${organisation1_id} dan ${organisation1_tokens} dengan nama secret yang sesuai yang dicipta dalam 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 - API Pengurusan Policy

API Pengurusan Policy digunakan untuk mengurus policy bagi flag pengurusan kandungan Glasswall Halo. Ini ialah perkhidmatan pilihan; pasang ini jika anda ingin mencipta dan menggunakan policy tersuai.

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 boleh diakses menggunakan

http://<ip>/swagger/index.html

7.7 - Akses Portal

Perkhidmatan Portal Access bertindak sebagai backend untuk Portal. Ia membolehkan Portal mengakses API Pengurusan Policy dan API Segerak.

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, secret Kubernetes yang sama yang dicipta untuk perkhidmatan API Access digunakan untuk mendapatkan sijil 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 - Pengurusan lesen

Perkhidmatan pengurusan lesen digunakan untuk mengurus lesen dalam 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 - Perkhidmatan pembersihan

Perkhidmatan pembersihan memadam fail asal dan fail yang dibina semula daripada storan berterusan selepas fail 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 - API Tak Segerak

Asynchronous API boleh digunakan menggunakan arahan di bawah. Pangkalan data MongoDB ialah 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 - Unjuran metrik

Perkhidmatan unjuran metrik digunakan untuk menarik data pelaporan daripada MongoDB untuk dipaparkan dalam 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 - Pengekstrak laporan

Perkhidmatan Report extractor mengekstrak laporan analisis dan menerbitkannya 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 - Pengumpul tally

Perkhidmatan Tally accumulator menjejak dan mengekalkan 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 - Perkhidmatan pemantauan storan

Perkhidmatan Storage Monitoring menyediakan API untuk melanggan dan menjejak perubahan yang dibuat pada dokumen dalam perkhidmatan storan yang dikonfigurasikan seperti SharePoint.

TLS mesti didayakan untuk webhook.

Tambahkan parameter --set ingress.tls.enable_tls=true dan --set ingress.tls.domain=<domain_name>.

Dalam contoh di bawah, secret Kubernetes yang sama yang dicipta untuk perkhidmatan API Access digunakan untuk mendapatkan sijil 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 pilihan

Pasang carta penskalaan Prometheus hanya jika anda mahu mendayakan penskalaan berasaskan 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 arahan di bawah untuk menentukan external-ip yang dikaitkan dengan kluster anda:

Nota: external-ip akan sama seperti alamat IP awam yang dilampirkan pada AWS load balancer.

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

Anda kini boleh menggunakan IP yang dipulangkan di atas untuk pergi ke dokumentasi Portal dan API (gunakan https jika TLS didayakan):

Portal: http://<ip>
API documentation: http://<ip>/swagger