7단계 - CDR 구성 요소 설치
마지막으로 Glasswall Halo 애플리케이션 서비스를 설치합니다. 각 Helm chart에 대해 이미지 태그가 릴리스 노트에 나열된 해당 버전으로 설정되어 있는지 확인합니다.
아래 예시는 v2.18.1용 태그가 미리 채워져 있습니다.
7.1 - Engine
Halo를 ReversingLabs와 통합하려면 enable_reversing_labs 변수를 true로 설정합니다. 3단계에 설명된 대로 AWS Secrets Manager에 ReversingLabs 시크릿이 생성되어 있는지 확인합니다.
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 - 동기식 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로 연결되는 게이트웨이 역할을 합니다.
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 \
--set image.tag=2.18.1-183506 \
--atomic
7.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.
이 예제에서는 개인 키가 암호 구문으로 보호되지 않아야 합니다.
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=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의 인증은 기본적으로 비활성화되어 있습니다. 인증을 활성화하려면 아래 단계를 완료하세요.
-
AWS Secrets Manager에 secret 두 개를 생성합니다.
- 조직 ID용 secret 하나
- 조직 토큰용 secret 하나
여러 토큰을 지정할 때는 쉼표로 구분합니다. 개별 토큰에는 쉼표가 포함되지 않도록 하세요.
-
AWS Secrets Manager의 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 -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
참고: 이전에 AWS 내에서 MongoDB를 구성 및 설정했으며 클러스터 내에서 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
MongoDB가 배포된 후 MongoDB 연결 문자열을 가져와 AWS Secrets Manager에 저장합니다.
- k8s secret에서 연결 문자열을 가져옵니다
mongodb_conn_str=$(kubectl get secret mongodb-cdrplatform-cdrp-user -o jsonpath='{.data.connectionString\.standard}' | base64 -d)
- MongoDB 연결 문자열을 사용하여 AWS Secrets Manager에 새 secret을 생성합니다.
aws secretsmanager create-secret --name "mongodb-connectionstring" --secret-string "${mongodb_conn_str}" --region "${region}"
7.5 - Portal
Portal 서비스를 배포하려면 아래 명령을 실행합니다.
7.5A - TLS 또는 SSL 없이 배포
참고: 이 명령에서 참조하는 <ip-address>는 로드 밸런서의 공인 IP 주소입니다. 이는 아래의 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 - 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 \
--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 - 인증 없이 관리자 액세스 활성화
Portal에 대해 Single Sign On 로그인이 활성화되지 않은 경우 라이선스 관리 및 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
7.5D - API를 인증하도록 Halo Portal 구성
API 인증이 활성화된 경우 ${organisation1_id} 및 ${organisation1_tokens}를 AWS Secrets Manager에서 생성한 적절한 secret 이름으로 바꿉니다.
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 - Policy Management 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=aws \
--atomic
Policy API swagger 페이지는 다음을 사용하여 액세스할 수 있습니다
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> 파라미터를 추가합니다.
아래 예시에서는 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
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 - 라이선스 관리
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 \
--set cloud_provider=aws \
--atomic
7.9 - 정리 서비스
Clean up 서비스는 파일이 처리된 후 영구 스토리지에서 원본 파일과 재구성된 파일을 삭제합니다.
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 - Asynchronous API
Asynchronous API는 아래 명령을 사용하여 배포할 수 있습니다. Async 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 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 서비스는 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="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 스케일링
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>
7.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].hostname}'
이제 위에서 반환된 IP를 사용하여 Portal 및 API documentation으로 이동할 수 있습니다(TLS가 활성화된 경우 https 사용):
Portal: http://<ip>
API documentation: http://<ip>/swagger