Bước 8 - Cài đặt các thành phần CDR
Cuối cùng, cài đặt các dịch vụ ứng dụng CDR. Với các chart này, hãy đảm bảo bạn đặt thẻ image thành thẻ tương ứng được tìm thấy trong ghi chú phát hành mới nhất.
Các ví dụ bên dưới được điền sẵn các thẻ cho v2.18.1:
8.1 Engine
Để tích hợp Halo với ReversingLabs, hãy đặt biến enable_reversing_labs thành true. Đảm bảo các secret ReversingLabs bắt buộc đã được tạo trong Key Vault như được mô tả ở Bước 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 Dịch vụ API Access
Dịch vụ API Access hoạt động như một cổng vào Glasswall Halo Synchronous API và Policy Management API.
Nó cung cấp chức năng CDR qua HTTP. Nếu môi trường của bạn yêu cầu giao tiếp bảo mật, hãy cấu hình dịch vụ để sử dụng HTTPS với TLS hoặc SSL bằng cách làm theo hướng dẫn cài đặt TLS hoặc SSL. Nếu không, hãy làm theo hướng dẫn cài đặt không có TLS hoặc SSL.
8.3A - Dành cho các triển khai không có 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 - Dành cho các triển khai có TLS/SSL
Để bật SSL trên CDR API, hãy tạo khóa riêng tư và chứng chỉ cho miền đang sử dụng.
Tạo một Kubernetes secret từ các tệp khóa riêng tư và chứng chỉ bằng lệnh bên dưới. Lệnh này tạo một secret có tên tls-secret bằng cách sử dụng server.key làm khóa riêng tư và server.crt làm chứng chỉ. Trong ví dụ này, khóa riêng tư không được bảo vệ bằng cụm mật khẩu.
kubectl create secret tls tls-secret --key server.key --cert server.crt
Sau đó, secret này có thể được sử dụng để bật TLS trên ingress, đồng thời bảo đảm rằng tên miền được đặt trong lệnh bên dưới:
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 - Để bật xác thực API cơ bản
Xác thực trong Glasswall Halo bị tắt theo mặc định. Khi được bật, nó áp dụng cho cả Glasswall Halo Synchronous API và Policy API.
Để bật xác thực:
- Tạo hai secret trong Azure Key Vault. Một secret lưu trữ ID tổ chức và secret còn lại lưu trữ các token của tổ chức. Khi chỉ định nhiều token, hãy phân tách chúng bằng dấu phẩy. Bảo đảm rằng từng token riêng lẻ không chứa dấu phẩy. Các secret Azure Key Vault phải tuân theo các quy ước đặt tên bên dưới:
- Secret ID tổ chức
- Phải bắt đầu bằng
organisation- Phải kết thúc bằng
-id- Bao gồm một chỉ mục số giữa tiền tố và hậu tố
- Ví dụ:
organisation0-id,organisation1-id,organisation2-id
- Secret token của tổ chức
- Phải bắt đầu bằng
organisation- Phải kết thúc bằng
-tokens- Bao gồm một chỉ mục số giữa tiền tố và hậu tố
- Ví dụ:
organisation0-tokens,organisation1-tokens,organisation2-tokens
- Đặt
configuration.AuthenticationScheme=Basickhi triển khai Helm chart. Ví dụ:
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 - Để bật xác thực API Azure AD
Để bật xác thực dựa trên Azure AD, hãy đặt configuration.AuthenticationScheme=Bearer và cấu hình các biến tenant_id và domain_name khi triển khai Helm chart.
Lưu ý rằng URI đăng ký ứng dụng có thể khác nhau tùy thuộc vào thời điểm ứng dụng được tạo. Luôn sao chép URI đăng ký ứng dụng từ Azure portal và sử dụng URI đó làm valid audience.
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/
Người dùng Azure US Government
Sử dụng lệnh sau khi triển khai lên Azure US Government.
Các cài đặt này đảm bảo sử dụng đúng các endpoint và giá trị môi trường.
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
Để triển khai dịch vụ Portal, hãy chạy các lệnh sau:
8.4A - Dành cho các triển khai không có TLS/SSL
Lưu ý: <IP-address> được đề cập trong lệnh này là địa chỉ IP công khai của Load Balancer. Có thể lấy địa chỉ này thông qua các bước "Portal & API Access" bên dưới.
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 - Dành cho các triển khai có TLS/SSL
Nếu yêu cầu TLS, hãy thêm tham số --set ingress.tls.enable_tls=true và đặt portal_domain=<domain name>.
Trong ví dụ bên dưới, cùng một Kubernetes secret được tạo cho dịch vụ API Access được dùng để lấy các chứng chỉ 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 - Bật quyền truy cập quản trị không cần xác thực
Khi đăng nhập Single Sign-On (SSO) chưa được bật trong Portal, các tính năng quản trị như quản lý giấy phép và cấu hình policy sẽ không thể truy cập. Để bật quyền truy cập vào các tính năng quản trị này mà không cần thiết lập SSO, hãy triển khai Helm chart với cấu hình sau:
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 Cấu hình đăng nhập SSO trong Portal của Glasswall Halo
Đặt các biến portal_domain, portal_client_id và tenant_id trong các lệnh bên dưới, rồi chạy chúng.
portal_domain là tên miền được dùng để cấu hình TLS cho dịch vụ Portal và phải khớp với miền được dùng trong đăng ký ứng dụng cdrplatform-portal-client.
portal_client_id là application (client) ID của đăng ký ứng dụng cdrplatform-portal-client được tạo ở bước điều kiện tiên quyết.
tenant_id là ID của tenant nơi các đăng ký APP được tạo.
enabled_pages phải chứa các trang khác nhau cần được bật. Truyền các giá trị được phân tách bằng dấu phẩy (,).
Ví dụ, nên đặt thành SystemSettings\,PolicySettings\,ValidationSettings\,IcapSettings\,IcapRequests\,IcapReporting khi Policy API, máy chủ ICAP và ReversingLabs được triển khai, hoặc đặt thành SystemSettings\,PolicySettings\,ValidationSettings nếu chỉ triển khai Policy API.
Nếu không triển khai cả Policy API và máy chủ ICAP, hãy đặt thành 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
Người dùng Azure US Government
Sử dụng lệnh sau khi triển khai lên Azure US Government.
Các cài đặt này đảm bảo sử dụng đúng các endpoint và giá trị môi trường.
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 Truy cập Portal
Portal Access hoạt động như backend cho Portal. Nó cho phép Halo Portal truy cập Policy Management API và Synchronous API.
8.5A Dành cho các triển khai có TLS/SSL
Nếu требуется TLS, hãy thêm các tham số --set ingress.tls.enable_tls=true và --set ingress.tls.domain=<domain name>.
Trong ví dụ bên dưới, cùng một Kubernetes secret được tạo cho dịch vụ API Access được dùng để lấy các chứng chỉ 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 Dành cho các triển khai không có 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 Không có xác thực
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 Để bật xác thực Azure AD
Portal Access cho phép xác thực SSO bằng Azure AD.
Đặt các biến tenant_id và portal_domain trong các lệnh bên dưới, sau đó chạy chúng.
Lưu ý rằng URI đăng ký APP có thể khác nhau tùy thuộc vào thời điểm nó được tạo. Luôn sao chép URI đăng ký ứng dụng từ cổng Azure và sử dụng URI đó làm audience hợp lệ.
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
Người dùng Azure US Government
Sử dụng lệnh sau khi triển khai lên Azure US Government.
Các cài đặt này đảm bảo sử dụng đúng các endpoint và giá trị môi trường.
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 Quản lý Policy
Policy Management API được sử dụng để quản lý các cờ quản lý nội dung của Glasswall Halo. Dịch vụ này là tùy chọn và chỉ nên được cài đặt nếu bạn dự định tạo và sử dụng các policy tùy chỉnh.
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}
- Có thể truy cập trang swagger của Policy Management API bằng cách sử dụng:
http://<ip>/swagger/index.html
8.7 Quản lý giấy phép
Dịch vụ License Management được sử dụng để quản lý giấy phép trong 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 Dịch vụ dọn dẹp
Dịch vụ Clean up xóa các tệp gốc và các tệp được dựng lại khỏi bộ nhớ lưu trữ liên tục sau khi quá trình xử lý hoàn tất.
helm upgrade --install cdrplatform-cleanup cdrplatform-cleanup \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=2.18.1-183506 \
--atomic
8.9 API Bất đồng bộ
Asynchronous API có thể được triển khai bằng lệnh bên dưới. Cần có cơ sở dữ liệu MongoDB cho Asynchronous API.
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 Chiếu số liệu
Dịch vụ Metrics projection được dùng để lấy dữ liệu báo cáo từ MongoDB nhằm hiển thị trong UI của 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 Trình trích xuất báo cáo
Dịch vụ Report extractor trích xuất các báo cáo phân tích và phát hành chúng để phục vụ báo cáo.
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 Bộ tích lũy tally
Dịch vụ Tally accumulator theo dõi và duy trì số liệu thống kê sử dụng.
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
Lưu ý: nếu MongoDB đã được cấu hình trong Azure và bạn không muốn cài đặt hoặc quản lý MongoDB trong cluster của mình, bạn có thể bỏ qua bước này và tiếp tục.
Toán tử 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
Cài đặt MongoDB
helm upgrade -i cdrplatform-mongodb cdrplatform-mongodb -n cdrplatform --atomic \
--set cloud_provider=azure
- Truy xuất chuỗi kết nối từ Kubernetes secret
kubectl get secret mongodb-cdrplatform-cdrp-user -o jsonpath='{.data.connectionString\.standard}' | base64 -d
- Cập nhật secret Azure Key Vault bằng chuỗi kết nối MongoDB
az keyvault secret set --name "mongodb-connectionstring" --vault-name "${kvname}" --value "<output-from-previous-step>"
8.14 Dịch vụ Giám sát Lưu trữ
Dịch vụ Storage Monitoring cung cấp một API để đăng ký và theo dõi các thay đổi được thực hiện đối với tài liệu trong các cơ chế lưu trữ đã cấu hình như SharePoint và OneDrive.
TLS phải được bật cho Webhook.
Thêm các tham số --set ingress.tls.enable_tls=true và --set ingress.tls.domain=<domain name>.
Trong ví dụ bên dưới, cùng một Kubernetes secret được tạo cho dịch vụ API Access được dùng để lấy các chứng chỉ 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 Tùy chọn mở rộng quy mô Prometheus
Chỉ cài đặt chart mở rộng quy mô Prometheus nếu bạn muốn bật tính năng mở rộng quy mô dựa trên 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 Truy cập Portal & API
Sử dụng lệnh sau để xác định địa chỉ IP bên ngoài được liên kết với cụm của bạn.
IP bên ngoài tương ứng với địa chỉ IP công cộng được gán cho bộ cân bằng tải Azure.
kubectl get services --namespace cdrplatform nginx-ingress-ingress-nginx-controller --output jsonpath='{.status.loadBalancer.ingress[0].ip}'
Bây giờ bạn có thể sử dụng IP được trả về ở trên để truy cập Halo Portal và tài liệu API (sử dụng https nếu TLS được bật):
Portal: http://<ip>
API Documentation: http://<ip>/swagger/index.html