ข้ามไปยังเนื้อหาหลัก

ขั้นตอนที่ 7 - ติดตั้งส่วนประกอบ CDR

สุดท้าย ให้ติดตั้งบริการแอปพลิเคชัน Glasswall Halo สำหรับ Helm chart แต่ละรายการ ตรวจสอบให้แน่ใจว่าได้ตั้งค่า image tag เป็นเวอร์ชันที่สอดคล้องกันตามที่ระบุไว้ใน release notes

ตัวอย่างด้านล่างถูกกรอกแท็กสำหรับ v2.18.1 ไว้ล่วงหน้าแล้ว

7.1 - Engine

หากต้องการผสานรวม Halo กับ ReversingLabs ให้ตั้งค่าตัวแปร enable_reversing_labs เป็น true ตรวจสอบให้แน่ใจว่าได้สร้าง secrets ของ ReversingLabs ใน AWS Secrets Manager แล้ว ตามที่อธิบายไว้ในขั้นตอนที่ 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 - Synchronous API

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 - บริการ API Access

บริการ API Access ทำหน้าที่เป็นเกตเวย์ไปยัง Glasswall Halo Synchronous API และ Policy Management API

บริการนี้เปิดเผยความสามารถของ CDR ผ่าน HTTP หากสภาพแวดล้อมของคุณต้องใช้ HTTPS พร้อม TLS หรือ SSL ให้ทำตามคำแนะนำเพื่อติดตั้งบริการโดยเปิดใช้งาน TLS หรือ SSL มิฉะนั้น ให้ทำตามคำแนะนำสำหรับการติดตั้งโดยไม่ใช้ TLS หรือ SSL

7.3A - สำหรับ deployment ที่ไม่มี 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 ที่ใช้ TLS หรือ SSL

หากต้องการใช้ใบรับรอง SSL กับ CDR API ให้สร้าง private key และ certificate สำหรับโดเมนที่ต้องการ

สร้าง Kubernetes secret จากไฟล์ private key และ certificate โดยใช้คำสั่งด้านล่าง คำสั่งนี้จะสร้าง secret ชื่อ tls-secret โดยใช้ server.key เป็น private key และ server.crt เป็น certificate

ในตัวอย่างนี้ private key ต้องไม่มีการป้องกันด้วย passphrase

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

จากนั้นสามารถใช้ secret นี้เพื่อเปิดใช้ TLS บน ingress โดยตรวจสอบให้แน่ใจว่าได้ตั้งค่าชื่อโดเมนไว้ในคำสั่งด้านล่าง:

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 - เปิดใช้การยืนยันตัวตนของ API

การยืนยันตัวตนสำหรับ Glasswall Halo API ถูกปิดใช้งานเป็นค่าเริ่มต้น หากต้องการเปิดใช้การยืนยันตัวตน ให้ทำตามขั้นตอนด้านล่างให้ครบถ้วน

  • สร้าง secrets สองรายการใน AWS Secrets Manager

    • secret หนึ่งรายการสำหรับ organisation ID
    • secret หนึ่งรายการสำหรับ organisation tokens

    เมื่อระบุ token หลายรายการ ให้คั่นแต่ละรายการด้วยเครื่องหมายจุลภาค ตรวจสอบให้แน่ใจว่า token แต่ละรายการไม่มีเครื่องหมายจุลภาค

  • Secrets ใน AWS Secrets Manager ต้องเป็นไปตามหลักการตั้งชื่อด้านล่าง

    • secret ของ Organisation ID

      • ต้องขึ้นต้นด้วย organisation
      • ต้องลงท้ายด้วย -id
      • ใส่ดัชนีตัวเลขระหว่างคำนำหน้าและคำต่อท้าย
      • ตัวอย่าง: organisation0-id, organisation1-id, organisation2-id
    • ซีเคร็ตโทเค็นขององค์กร

      • ต้องขึ้นต้นด้วย organisation
      • ต้องลงท้ายด้วย -tokens
      • ใส่ดัชนีตัวเลขระหว่างคำนำหน้าและคำต่อท้าย
      • ตัวอย่าง: organisation0-tokens, organisation1-tokens, organisation2-tokens
  • ตั้งค่า configuration.AuthenticationScheme=Basic ระหว่างการดีพลอย Helm chart ตัวอย่างเช่น:

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

หมายเหตุ: หากคุณได้กำหนดค่าและตั้งค่า MongoDB ภายใน AWS ไว้ก่อนหน้านี้แล้ว และไม่ต้องการจัดการและติดตั้ง MongoDB ภายในคลัสเตอร์ของคุณ คุณสามารถข้ามขั้นตอนนี้และดำเนินการติดตั้ง Portal Services ด้านล่างต่อได้

MongoDB operator

helm install community-operator mongodb/community-operator --namespace cdrplatform \
--set operator.version=0.9.0 \
--set agent.version=107.0.0.8465-1 \
--atomic

ติดตั้ง MongoDB

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

หลังจาก deploy MongoDB แล้ว ให้ดึงสตริงการเชื่อมต่อ MongoDB และจัดเก็บไว้ใน AWS Secrets Manager

  • ดึงสตริงการเชื่อมต่อจาก k8s secret
mongodb_conn_str=$(kubectl get secret mongodb-cdrplatform-cdrp-user -o jsonpath='{.data.connectionString\.standard}' | base64 -d)
  • สร้าง secret ใหม่ใน AWS Secrets Manager โดยใช้สตริงการเชื่อมต่อ MongoDB
aws secretsmanager create-secret --name "mongodb-connectionstring" --secret-string "${mongodb_conn_str}" --region "${region}"

7.5 - Portal

หากต้องการ deploy บริการ Portal ให้รันคำสั่งด้านล่าง

7.5A - การ deploy โดยไม่มี TLS หรือ SSL

หมายเหตุ: <ip-address> ที่อ้างถึงในคำสั่งเหล่านี้คือที่อยู่ IP สาธารณะของ load balancer ซึ่งสามารถดึงมาได้โดยทำตามขั้นตอน Portal and API Access ด้านล่าง

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 - การ deploy ด้วย TLS หรือ SSL

หากต้องใช้ TLS ให้เพิ่มพารามิเตอร์ --set ingress.tls.enable_tls=true และ --set ingress.tls.domain=<domain_name>

ในตัวอย่างด้านล่าง จะใช้ Kubernetes secret เดียวกันกับที่สร้างไว้สำหรับบริการ API Access เพื่อดึงใบรับรอง 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 - เปิดใช้งานการเข้าถึงของผู้ดูแลระบบโดยไม่ต้องยืนยันตัวตน

เมื่อไม่ได้เปิดใช้งานการเข้าสู่ระบบแบบ Single Sign On สำหรับ Portal ฟีเจอร์ด้านการดูแลระบบ เช่น การจัดการ license และการกำหนดค่า policy จะไม่สามารถเข้าถึงได้

หากต้องการเปิดการเข้าถึงฟีเจอร์ด้านการดูแลระบบเหล่านี้โดยไม่ต้องกำหนดค่า SSO ให้ deploy Helm chart ด้วยการกำหนดค่าต่อไปนี้

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 - กำหนดค่า Halo Portal เพื่อยืนยันตัวตน APIs

หากเปิดใช้งานการยืนยันตัวตน API ให้แทนที่ ${organisation1_id} และ ${organisation1_tokens} ด้วยชื่อ secret ที่เหมาะสมซึ่งสร้างไว้ใน 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 การจัดการ policy

Policy Management API ใช้สำหรับจัดการ policies สำหรับแฟล็กการจัดการเนื้อหาของ Glasswall Halo นี่เป็นบริการเสริม ให้ติดตั้งหากคุณต้องการสร้างและใช้ polices แบบกำหนดเอง

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

สามารถเข้าถึงหน้า swagger ของ Policy API ได้โดยใช้

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

7.7 - การเข้าถึง Portal

บริการ Portal Access ทำหน้าที่เป็นแบ็กเอนด์สำหรับ Portal โดยช่วยให้ Portal เข้าถึง Policy Management API และ Synchronous API ได้

7.7A - การปรับใช้ด้วย TLS หรือ SSL

หากต้องใช้ TLS ให้เพิ่มพารามิเตอร์ --set ingress.tls.enable_tls=true และ --set ingress.tls.domain=<domain_name>

ในตัวอย่างด้านล่าง จะใช้ Kubernetes secret เดียวกันกับที่สร้างไว้สำหรับบริการ API Access เพื่อดึงใบรับรอง 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 - สำหรับการปรับใช้ที่ไม่มี 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 - การจัดการไลเซนส์

บริการการจัดการไลเซนส์ใช้สำหรับจัดการไลเซนส์ใน 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 - บริการล้างข้อมูล

บริการ Clean up จะลบไฟล์ต้นฉบับและไฟล์ที่สร้างใหม่ออกจาก persistent storage หลังจากประมวลผลไฟล์แล้ว

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 แบบอะซิงโครนัส

สามารถปรับใช้ Asynchronous API ได้โดยใช้คำสั่งด้านล่าง ฐานข้อมูล MongoDB เป็นข้อกำหนดเบื้องต้นสำหรับ 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 - การฉายเมตริก

บริการ Metrics projection ใช้สำหรับดึงข้อมูลการรายงานจาก MongoDB เพื่อแสดงใน 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 - ตัวแยกรายงาน

บริการ Report extractor ทำการแยกรายงานการวิเคราะห์และเผยแพร่เพื่อใช้ในการรายงาน

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 - ตัวสะสมยอดรวม

บริการ Tally accumulator ติดตามและดูแลยอดรวมของสถิติการใช้งาน

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 - บริการตรวจสอบที่เก็บข้อมูล

บริการ Storage Monitoring มี API สำหรับสมัครรับและติดตามการเปลี่ยนแปลงที่เกิดขึ้นกับเอกสารในบริการจัดเก็บข้อมูลที่กำหนดค่าไว้ เช่น SharePoint

ต้องเปิดใช้งาน TLS สำหรับ webhook

เพิ่มพารามิเตอร์ --set ingress.tls.enable_tls=true และ --set ingress.tls.domain=<domain_name>

ในตัวอย่างด้านล่าง จะใช้ Kubernetes secret เดียวกันกับที่สร้างไว้สำหรับบริการ API Access เพื่อดึงใบรับรอง 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 - การปรับขนาด Prometheus แบบทางเลือก

ติดตั้ง chart การปรับขนาด Prometheus เฉพาะเมื่อคุณต้องการเปิดใช้งานการปรับขนาดที่อิงตาม 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 - การเข้าถึง Portal & API

ใช้คำสั่งด้านล่างเพื่อระบุ external-ip ที่เชื่อมโยงกับคลัสเตอร์ของคุณ:

หมายเหตุ: external-ip จะเหมือนกับ public ip address ที่แนบอยู่กับ AWS load balancer

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

ขณะนี้คุณสามารถใช้ IP ที่ได้จากด้านบนเพื่อไปยัง Portal และเอกสาร API ได้แล้ว (ใช้ https หากเปิดใช้งาน TLS):

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