주요 콘텐츠로 건너뛰기

7단계 - CDR 구성 요소 설치

마지막으로 Glasswall Halo 서비스를 설치합니다. 각 Helm 차트에 대해 이미지 태그가 릴리스 노트에 나열된 해당 버전으로 설정되어 있는지 확인합니다.

아래 예시는 v2.16.0 값이 미리 채워져 있습니다.

7.1 - Engine

Halo를 ReversingLabs와 통합하려면 enable_reversing_labs 변수를 true로 설정합니다. 3단계에 설명된 대로 ReversingLabs 시크릿이 Vault에 생성되어 있는지 확인합니다.

enable_reversing_labs=""
helm upgrade --install cdrplatform-engine cdrplatform-engine -n cdrplatform \
--set image.tag=165275 \
--set image.registry=glasswallhub.azurecr.io \
--set cloud_provider=oracle \
--set configuration.ENABLE_REVERSING_LABS="${enable_reversing_labs}" \
--atomic

7.2 - 동기식 API

helm upgrade --install cdrplatform-sync-api cdrplatform-sync-api -n cdrplatform \
--set image.tag=166415 \
--set image.registry=glasswallhub.azurecr.io \
--set cloud_provider=oracle

7.3 - API Access 서비스

API Access 서비스는 Glasswall Halo Synchronous API 및 Policy Management API로 연결되는 게이트웨이 역할을 합니다.

HTTP를 통해 CDR 기능을 노출합니다. 환경에서 TLS 또는 SSL을 사용하는 HTTPS가 필요하면 TLS 또는 SSL이 활성화된 상태로 서비스를 설치하는 지침을 따르십시오. 그렇지 않으면 TLS 또는 SSL 없이 설치하는 지침을 따르십시오.

7.3A - TLS/SSl 없이 배포하는 경우

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

7.3B - 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를 활성화할 수 있으며, 아래 명령에서 도메인 이름이 설정되어 있는지 확인합니다:

helm upgrade --install cdrplatform-api-access -n cdrplatform cdrplatform-api-access \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=165925 \
--set cloud_provider=oracle \
--set ingress.tls.enabled=true \
--set ingress.tls.domain=<domain name> \
--set ingress.tls.secretName=tls-secret \
--atomic

7.3C - API 인증 활성화

Glasswall Halo API의 인증은 기본적으로 비활성화되어 있습니다. 인증을 활성화하려면 아래 단계를 완료하세요.

  • Vault 시크릿 vault_secret_name에 새 항목 두 개를 추가합니다.

    • 조직 ID용 항목 하나
    • 조직 토큰용 항목 하나

    여러 토큰을 지정할 때는 쉼표로 구분합니다. 개별 토큰에는 쉼표가 포함되지 않도록 하세요.

  • Vault secret 항목은 아래 명명 규칙을 따라야 합니다.

    • Organisation ID

      • organisation으로 시작해야 합니다
      • -id로 끝나야 합니다
      • 접두사와 접미사 사이에 숫자 인덱스를 포함합니다
      • 예: organisation1-id, organisation2-id, organisation3-id
    • Organisation 토큰

      • organisation으로 시작해야 합니다
      • 끝이 -tokens로 끝나야 합니다
      • 접두사와 접미사 사이에 숫자 인덱스를 포함합니다
      • 예: organisation1-tokens, organisation2-tokens, organisation3-tokens
{
"organisation1-id": "org-1",
"organisation1-tokens": "org-1-token-1,org-1-token-2"
}
  • helm chart를 배포하는 동안 configuration.AuthenticationScheme=Basic를 설정합니다. 예:
  helm upgrade --install cdrplatform-api-access -n cdrplatform cdrplatform-api-access \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=165925 \
--set configuration.AuthenticationScheme=Basic \
--set cloud_provider=oracle \
--atomic

7.4 - Portal

7.4A - TLS 또는 SSL 없는 배포

Portal 서비스를 배포하려면 아래 명령을 실행합니다.

참고: 이 명령에서 참조하는 <IP-address>는 로드 밸런서의 공인 IP 주소입니다. 이는 아래의 Portal and API Access 단계를 따라 확인할 수 있습니다.

helm upgrade --install cdrplatform-portal cdrplatform-portal -n cdrplatform \
--set image.registry=glasswallhub.azurecr.io \
--set configuration.OIDC=null \
--set image.tag=166435 \
--set configuration.BackendUrl=http://<IP-address> \
--set configuration.HaloVersion=2.16.0 \
--atomic

7.4B - TLS 또는 SSL이 있는 배포

TLS를 활성화하려면 --set ingress.tls.enable_tls=true--set ingress.tls.domain=<domain name> 매개변수를 추가합니다.

아래 예시에서는 API Access 서비스용으로 생성한 동일한 Kubernetes secret을 사용하여 TLS 인증서를 가져옵니다.

helm upgrade --install cdrplatform-portal cdrplatform-portal -n cdrplatform \
--set image.tag=166435 \
--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.16.0 \
--atomic

7.4C - 인증 없이 관리자 액세스 활성화

Portal에 대해 Single Sign On 로그인이 활성화되지 않은 경우 라이선스 관리 및 policy 구성과 같은 관리 기능에 액세스할 수 없습니다.

SSO를 구성하지 않고 이러한 관리 기능에 대한 액세스를 활성화하려면 다음 구성으로 Helm chart를 배포합니다.

helm upgrade --install cdrplatform-portal cdrplatform-portal \
--set image.tag=166435 \
--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.5 - MongoDB

MongoDB는 Policy Management API 및 Asynchronous API의 필수 구성 요소입니다.

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

MongoDB가 배포된 후 MongoDB의 연결 문자열을 가져와 키-값 시크릿에 추가합니다.

  • Kubernetes secret에서 연결 문자열을 검색합니다:
kubectl get secret mongodb-cdrplatform-cdrp-user -o jsonpath='{.data.connectionString\.standard}' | base64 -d
  • 키-값 쌍을 추가하여 Oracle Vault secret을 업데이트합니다:
{
"mongodb-connectionstring": "<output-from-previous-step>"
}
  • Oracle Vault를 업데이트한 후 다음 명령을 실행하여 secret을 Kubernetes에 동기화합니다.
kubectl annotate externalsecret external-secret updated_at=$(date +%s) --overwrite -n cdrplatform
  • cdrplatform-secrets Kubernetes secret의 세부 정보를 확인하고 mongodb-connectionstring이 존재하며 동기화되었는지 검증합니다. 그런 다음 다음 Helm chart 배포를 진행합니다.
kubectl describe secret cdrplatform-secrets

7.6 - Policy Management API

Policy Management API는 Glasswall Halo 콘텐츠 관리 플래그를 관리하는 데 사용됩니다. 이 서비스는 선택 사항이며, 사용자 지정 policy를 생성하고 사용할 계획이 있는 경우에만 설치해야 합니다.

helm upgrade --install cdrplatform-policy-api -n cdrplatform cdrplatform-policy-api \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=165921 \
--set cloud_provider=oracle

7.7 - Portal Access

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> 매개변수를 추가합니다.

아래 예시에서는 API Access 서비스용으로 생성한 동일한 Kubernetes secret을 사용하여 TLS 인증서를 가져옵니다.

helm upgrade --install cdrplatform-portal-access -n cdrplatform cdrplatform-portal-access \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=166410 \
--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 -n cdrplatform cdrplatform-portal-access \
--set image.registry=glasswallhub.azurecr.io \
--set configuration.AuthenticationScheme=None \
--set image.tag=166410 \
--atomic

7.8 - 라이선스 관리

License management 서비스는 Glasswall Halo에서 라이선스를 관리하는 데 사용됩니다.

helm upgrade --install cdrplatform-license-management cdrplatform-license-management \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=157724 \
-n license-management \
--atomic

7.9 - 정리 서비스

Clean up 서비스는 파일이 처리된 후 영구 스토리지에서 원본 파일과 재구성된 파일을 삭제합니다.

helm upgrade --install cdrplatform-cleanup cdrplatform-cleanup \
--set image.registry=glasswallhub.azurecr.io \
--set cloud_provider=oracle \
--set image.tag=165228 \
--atomic

7.10 비동기 API

Asynchronous API는 아래 명령을 사용하여 배포할 수 있습니다. Asynchronous API에는 MongoDB 데이터베이스가 필요합니다.

helm upgrade --install cdrplatform-async-api cdrplatform-async-api \
--set image.tag=166413 \
--set image.registry=glasswallhub.azurecr.io \
--atomic

7.11 - 메트릭 수집(버전 2.6.2에서 제거됨) 2.6.2

메트릭 수집 서비스는 CDRPlatform의 이벤트를 캡처하여 MongoDB에 저장합니다. Halo 버전 2.6.1 이하를 사용하는 경우에만 배포하십시오.

helm upgrade --install cdrplatform-metrics-collation cdrplatform-metrics-collation \
--set image.tag=120018 \
--set image.registry=glasswallhub.azurecr.io \
--set cloud_provider=oracle \
--atomic

7.12 - 메트릭 프로젝션

메트릭 프로젝션 서비스는 Portal UI에 표시하기 위해 MongoDB에서 보고 데이터를 가져오는 데 사용됩니다.

helm upgrade --install cdrplatform-metrics-projection cdrplatform-metrics-projection \
--set image.tag=166407 \
--set image.registry=glasswallhub.azurecr.io \
--set cloud_provider=oracle \
--atomic

7.13 - 보고서 추출기

Report extractor 서비스는 분석 보고서를 추출하고 보고를 위해 게시합니다.

helm upgrade --install cdrplatform-report-extractor cdrplatform-report-extractor \
--set image.tag=166411 \
--set image.registry=glasswallhub.azurecr.io \
--wait --atomic

7.11 - Tally accumulator

Tally accumulator 서비스는 사용 통계의 집계를 추적하고 유지합니다.

helm upgrade --install cdrplatform-tally-accumulator cdrplatform-tally-accumulator \
--set image.tag=165227 \
--set image.registry=glasswallhub.azurecr.io \
--set cloud_provider=oracle \
--wait --atomic

7.12 - 스토리지 모니터링 서비스

Storage Monitoring 서비스는 SharePoint와 같이 구성된 스토리지 서비스의 문서에 적용된 변경 사항을 구독하고 추적하기 위한 API를 제공합니다.

웹훅에 대해 TLS를 활성화해야 합니다.

--set ingress.tls.enable_tls=true--set ingress.tls.domain=<domain name> 파라미터를 추가합니다.

아래 예시에서는 API Access 서비스용으로 생성한 동일한 Kubernetes secret을 사용하여 TLS 인증서를 가져옵니다.

helm upgrade --install cdrplatform-storage-monitor cdrplatform-storage-monitor --wait --atomic \
--set image.tag="165098" \
--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

7.13 - Portal 및 API 액세스

아래 명령을 사용하여 클러스터와 연결된 외부 IP 주소를 확인합니다.

참고: 외부 IP는 Oracle Cloud 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