8단계 - CDR 구성 요소 설치.md
마지막으로 CDR 애플리케이션 서비스를 설치합니다. 이러한 차트의 경우 릴리스 노트에서 확인할 수 있는 해당 태그로 image tag를 설정해야 합니다.
아래 예시는 v2.18.1의 태그가 미리 채워져 있습니다: 18.1
8.1 - Engine
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=gcp \
--atomic
8.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=gcp
8.3 - API access service
API Access 서비스는 Glasswall Halo Synchronous API 및 Policy Management API로 연결되는 게이트웨이 역할을 합니다.
이는 HTTP를 통해 CDR 기능을 노출합니다. 환경에서 TLS 또는 SSL을 사용하는 HTTPS가 필요한 경우, TLS 또는 SSL 활성화를 위한 설치 지침을 따르십시오. 그렇지 않으면 TLS 또는 SSL 없이 설치하는 지침을 따르십시오.
8.3A - 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 - TLS/SSL을 사용하는 배포의 경우
CDR API에서 SSL 인증서를 사용하려면, 사용할 도메인에 대한 개인 키와 인증서를 생성하십시오.
아래 명령을 사용하여 key 및 CRT 파일로 Kubernetes secret을 생성합니다. 이 명령은 server.key (private key) 및 server.crt (certificate) 파일로부터 "tls-secret"이라는 이름의 secret을 생성합니다. 이 예제에서는 key가 passphrase로 보호되지 않아야 합니다.
kubectl create secret tls tls-secret --key server.key --cert server.crt
그런 다음 이 secret를 사용하여 ingress에서 TLS를 활성화할 수 있으며, 아래 명령에서 도메인 이름이 설정되어 있는지 확인합니다:
domain_name=""
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 - 인증 없이 관리자 액세스 활성화
포털에서 Single Sign-On (SSO) 로그인이 활성화되지 않은 경우 license management 및 policy configuration과 같은 관리 기능에 액세스할 수 없습니다. SSO를 설정하지 않고 이러한 관리자 기능에 대한 액세스를 활성화하려면 다음 구성으로 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
8.3D - 기본 API 인증 활성화
Glasswall Halo의 Authentication은 기본적으로 비활성화되어 있으며, 활성화하면 Glasswall Halo Synchronous API와 Policy Management API 모두에 대해 인증이 활성화됩니다. 인증을 활성화해야 하는 경우:
-
Google Secrets Manager에 두 개의 secret을 생성합니다. 하나는 organisation ID용이고 다른 하나는 organisation token용입니다.
- 여러 token을 지정하는 경우 쉼표로 구분합니다.
- 개별 token에 쉼표가 포함되지 않도록 하십시오.
-
Google Secrets Manager의 secret은 아래의 naming convention을 따라야 합니다.
-
Organisation ID secret
organisation으로 시작해야 합니다-id로 끝나야 합니다- 접두사와 접미사 사이에 숫자 인덱스를 포함합니다
- 예:
organisation0-id,organisation1-id,organisation2-id
-
Organisation tokens secret
organisation으로 시작해야 합니다- 끝이
-tokens로 끝나야 합니다 - 접두사와 접미사 사이에 숫자 인덱스를 포함합니다
- 예:
organisation0-tokens,organisation1-tokens,organisation2-tokens
-
-
Helm chart를 배포하는 동안
configuration.AuthenticationScheme=Basic를 설정합니다. 예:
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.4 - 포털
Halo Portal 서비스를 배포하려면 아래 명령을 실행합니다.
8.4A - TLS/SSL 없이 배포하는 경우
참고: 이 명령에서 언급된 ip_address는 load balancer의 public IP address를 의미합니다. 이는 아래의 "Portal & API Access" 단계를 통해 확인할 수 있습니다.
ip_address=""
helm upgrade --install cdrplatform-portal cdrplatform-portal \
--set image.registry=glasswallhub.azurecr.io \
--set configuration.BackendUrl="${ip_address}" \
--set image.tag=2.18.1-183506 \
--set configuration.HaloVersion=2.18.1 \
--set configuration.OIDC=null
8.4B - TLS/SSL이 있는 배포의 경우
TLS가 필요한 경우 --set ingress.tls.enable_tls=true 매개변수를 추가하고 portal_domain=<domain name>을 설정합니다.
아래 예시에서는 API Access 서비스용으로 생성한 동일한 Kubernetes secret을 사용하여 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}" \
--atomic
8.5 - Portal 액세스
Portal access 서비스는 Halo Portal의 백엔드 역할을 합니다. 이를 통해 Halo Portal이 Policy Management API 및 Synchronous API에 액세스할 수 있습니다.
8.5A - TLS/SSL이 있는 배포의 경우
TLS가 필요한 경우 --set ingress.tls.enable_tls=true 및 --set ingress.tls.domain=<domain name> 매개변수를 추가합니다.
아래 예에서는 API access 서비스용으로 생성된 동일한 Kubernetes secret를 사용하여 TLS 인증서를 가져옵니다.
domain_name=""
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 - 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.6 - MongoDB
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
MongoDB 설치
helm upgrade -i cdrplatform-mongodb cdrplatform-mongodb -n cdrplatform --atomic \
--set cloud_provider=gcp
- Kubernetes secret에서 연결 문자열을 검색합니다.
kubectl get secret mongodb-cdrplatform-cdrp-user -o jsonpath='{.data.connectionString\.standard}' | base64 -d
- MongoDB 연결 문자열로 Kubernetes secret를 업데이트합니다(삭제 후 다시 생성).
kubectl create secret generic cdrplatform-secrets -n cdrplatform --from-literal=mongodb-cdrp-password=<Add-Value> --from-literal=mongodb-admin-password=<Add-Value> --from-literal=mongodb-connectionstring=<Add-Value>
8.7 - policy 관리 API
Policy Management API는 Glasswall Halo 콘텐츠 관리 플래그에 대한 policy를 관리하는 데 사용됩니다. 이는 선택적 서비스이며, 사용자 지정 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=gcp
Policy API swagger 페이지는 다음을 사용하여 액세스할 수 있습니다
http://<ip>/swagger/index.html
8.8 - 라이선스 관리 API
License management 서비스는 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 \
-n license-management
8.9 - 서비스 정리
Clean up 서비스는 파일이 처리된 후 영구 스토리지에서 원본 파일과 재구성된 파일을 삭제합니다.
helm upgrade --install cdrplatform-cleanup cdrplatform-cleanup \
--set image.registry=glasswallhub.azurecr.io \
--set cloud_provider=gcp \
--set image.tag=2.18.1-183506
8.10 - 비동기 API
비동기 API는 아래 명령을 사용하여 배포할 수 있습니다. MongoDB 데이터베이스는 비동기 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=gcp
8.11 - 메트릭 프로젝션
메트릭 프로젝션 서비스는 Portal UI에 표시하기 위해 MongoDB에서 보고 데이터를 가져오는 데 사용됩니다.
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=gcp
8.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=gcp
8.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=gcp
8.14 - 스토리지 모니터링 서비스
스토리지 모니터링 서비스는 SharePoint 및 OneDrive와 같이 구성된 스토리지 서비스의 문서에 대해 이루어진 변경 사항을 구독하고 추적할 수 있는 API를 제공합니다.
Webhook에 대해 TLS를 활성화해야 합니다.
--set ingress.tls.enable_tls=true및--set ingress.tls.domain=<domain name>파라미터를 추가합니다.
아래 예시에서는 API Access 서비스용으로 생성한 동일한 Kubernetes secret을 사용하여 TLS 인증서를 가져옵니다.
domain_name=""
helm upgrade --install cdrplatform-storage-monitor cdrplatform-storage-monitor --wait --atomic \
--set image.tag="2.18.1-183506" \
--set image.repository="glasswallhub.azurecr.io/cdrplatform-storage-monitor" \
--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 - 선택적 Prometheus 스케일링
Prometheus 기반 스케일링을 활성화하려는 경우에만 Prometheus scaling chart를 설치합니다.
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 - Portal 및 API 액세스
아래 명령을 사용하여 클러스터와 연결된 external-IP를 확인합니다:
참고: external-IP는 AWS load balancer에 연결된 공인 IP 주소와 동일합니다.
kubectl get services --namespace cdrplatform nginx-ingress-ingress-nginx-controller --output jsonpath='{.status.loadBalancer.ingress[0].ip}'
이제 위에서 반환된 IP를 사용하여 Portal 및 API documentation으로 이동할 수 있습니다.
참고: TLS가 활성화된 경우 HTTPs를 사용합니다.
Portal: http://<ip>
API documentation: http://<ip>/swagger/index.html
축하합니다. Glasswall Halo를 성공적으로 배포했습니다!