주요 콘텐츠로 건너뛰기

8단계 - CDR 구성 요소 설치

마지막으로 CDR 애플리케이션 서비스를 설치합니다. 이러한 차트의 경우 이미지 태그를 최신 릴리스 노트에서 확인할 수 있는 해당 태그로 설정해야 합니다.

아래 예시는 v2.18.1용 태그가 미리 채워져 있습니다:

8.1 Engine

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

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 API Access 서비스

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을 활성화하려면, 사용 중인 도메인에 대한 개인 키와 인증서를 생성하십시오.

Create a Kubernetes secret from the private key and certificate files using the command below. This command creates a secret named tls-secret using server.key as the private key and server.crt as the certificate. In this example, the private key must not be protected by a passphrase.

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

그런 다음 이 secret을 사용하여 ingress에서 TLS를 활성화할 수 있으며, 아래 명령에서 도메인 이름이 설정되어 있는지 확인해야 합니다:

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 - 기본 API 인증 활성화

Glasswall Halo의 인증은 기본적으로 비활성화되어 있습니다. 활성화되면 Glasswall Halo Synchronous API와 Policy API 모두에 적용됩니다.

인증을 활성화하려면:

  • Azure Key Vault에 두 개의 secret을 생성합니다. 하나의 secret에는 organisation ID를 저장하고, 다른 하나에는 organisation token을 저장합니다. 여러 token을 지정할 때는 쉼표로 구분합니다. 개별 token에는 쉼표가 포함되지 않도록 하십시오. Azure Key Vault secret은 아래 명명 규칙을 따라야 합니다:
  • 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.3D - Azure AD API 인증 활성화

Azure AD 기반 인증을 활성화하려면 Helm chart를 배포할 때 configuration.AuthenticationScheme=Bearer를 설정하고 tenant_iddomain_name 변수를 구성합니다.

앱 등록 URI는 앱이 생성된 시점에 따라 달라질 수 있습니다. 항상 Azure portal에서 앱 등록 URI를 복사하여 유효한 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/
Azure US Government 사용자

Azure US Government에 배포할 때는 다음 명령을 사용합니다.

이 설정은 올바른 엔드포인트와 환경 값이 사용되도록 보장합니다.

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

Portal 서비스를 배포하려면 다음 명령을 실행합니다:

8.4A - TLS/SSL 없이 배포하는 경우

참고: 이 명령에서 언급된 <IP-address>는 Load Balancer의 공용 IP 주소를 의미합니다. 이는 아래의 "Portal & API Access" 단계에서 확인할 수 있습니다.

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 - 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}" \
--set configuration.HaloVersion=2.18.1 \
--atomic

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

Portal에서 Single Sign-On (SSO) 로그인이 활성화되지 않은 경우 라이선스 관리 및 policy 구성과 같은 관리 기능에 접근할 수 없습니다. 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.4D Glasswall Halo의 Portal에서 SSO 로그인 구성

아래 명령에서 portal_domain, portal_client_id, tenant_id 변수를 설정한 다음 실행합니다.

portal_domain은 Portal 서비스에 대해 TLS를 구성하는 데 사용되는 도메인 이름이며, cdrplatform-portal-client 앱 등록에 사용된 도메인과 일치해야 합니다.

portal_client_id는 사전 요구 사항 단계에서 생성한 cdrplatform-portal-client 앱 등록의 애플리케이션(클라이언트) ID입니다.

tenant_id는 APP 등록이 생성되는 테넌트의 ID입니다.

enabled_pages에는 활성화해야 하는 여러 페이지가 포함되어야 합니다. 값을 쉼표(,)로 구분하여 전달합니다.

예를 들어 Policy API, ICAP server 및 ReversingLabs가 배포된 경우 SystemSettings\,PolicySettings\,ValidationSettings\,IcapSettings\,IcapRequests\,IcapReporting로 설정해야 합니다. Policy API만 배포된 경우에는 SystemSettings\,PolicySettings\,ValidationSettings로 설정합니다.

Policy API 및 ICAP server가 모두 배포되지 않은 경우, 이를 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
Azure US Government 사용자

Azure US Government에 배포할 때는 다음 명령을 사용합니다.

이 설정은 올바른 엔드포인트와 환경 값이 사용되도록 보장합니다.

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 Portal 액세스

Portal Access는 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 인증서를 가져옵니다.

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.5C 인증 없이

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 Azure AD 인증을 활성화하려면

Portal Access는 Azure AD를 사용한 SSO 인증을 활성화합니다.

아래 명령에서 tenant_idportal_domain 변수를 설정한 다음 실행합니다.

APP registration URI는 생성 시점에 따라 달라질 수 있습니다. 항상 Azure portal에서 app registration URI를 복사하여 유효한 audience로 사용하십시오.

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
Azure US Government 사용자

Azure US Government에 배포할 때는 다음 명령을 사용합니다.

이 설정은 올바른 엔드포인트와 환경 값이 사용되도록 보장합니다.

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 Policy Management API

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

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}
  • Policy Management API swagger 페이지는 다음을 사용하여 액세스할 수 있습니다:
http://<ip>/swagger/index.html

8.7 라이선스 관리

License Management 서비스는 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 정리 서비스

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

helm upgrade --install cdrplatform-cleanup cdrplatform-cleanup \
--set image.registry=glasswallhub.azurecr.io \
--set image.tag=2.18.1-183506 \
--atomic

8.9 비동기 API

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

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 메트릭 프로젝션

Metrics projection 서비스는 Halo 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 configuration.DATABASE__Provider=${database_provider} \
--set cloud_provider=azure \
--atomic

## 8.11 보고서 추출기

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

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 Tally 누산기

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 configuration.DATABASE__Provider=${database_provider} \
--atomic

8.13 MongoDB

참고: Azure에서 MongoDB가 이미 구성되어 있고 클러스터 내에서 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 \
--atomic

MongoDB 설치

helm upgrade -i cdrplatform-mongodb cdrplatform-mongodb -n cdrplatform --atomic \
--set cloud_provider=azure
  • Kubernetes secret에서 연결 문자열을 검색합니다.
kubectl get secret mongodb-cdrplatform-cdrp-user -o jsonpath='{.data.connectionString\.standard}' | base64 -d
  • Azure Key Vault secret를 MongoDB connection string으로 업데이트합니다
az keyvault secret set --name "mongodb-connectionstring" --vault-name "${kvname}" --value "<output-from-previous-step>"

8.14 Storage Monitoring Service

Storage Monitoring service는 SharePoint 및 OneDrive와 같이 구성된 스토리지 메커니즘의 문서에 적용된 변경 사항을 구독하고 추적할 수 있는 API를 제공합니다.

Webhook에 대해 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="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 선택적 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 액세스

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

외부 IP는 Azure load balancer에 할당된 공용 IP 주소에 해당합니다.

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

이제 위에서 반환된 IP를 사용하여 Halo Portal 및 API 문서로 이동할 수 있습니다(TLS가 활성화된 경우 https 사용):

Portal: http://<ip>
API Documentation: http://<ip>/swagger/index.html