Configure HTTPS for LightBeam Endpoint FQDN Standalone deployment
Pre-requisites
To configure the valid certificate for the ingress endpoint's host/IP address, a valid domain is essential. This domain will be utilized to create a subdomain for the Lightbeam endpoint.
Currently, the deployment utilizes cert-manager which in turn uses Let’s Encrypt to generate valid certificates for the provided domain. If users already possess valid certificates, a Kubernetes (k8s) secret must be created and configured for the ingress generated by the Lightbeam cluster.
Lightbeam App has been deployed on an EC2 instance and is accessible via its public IP address.
An FQDN has been acquired following the addition of DNS records in Route53.
Lightbeam App can be accessed via its FQDN over HTTP.
Let's encrypt performs HTTP-01 challenge which can only be done on port 80. Ref https://letsencrypt.org/docs/challenge-types/
Deploy Certificate Manager
Access the Kubernetes cluster.
Add the
cert-managerhelm repository using the command:
helm repo add lb-cert-manager-stable https://charts.jetstack.io && helm repo updateInstall
cert-managerusing the command:
kubectl create namespace cert-managerhelm install lb-cert-manager lb-cert-manager-stable/cert-manager --namespace cert-manager --version v1.11.0 --set installCRDs=trueCreate the cluster issuer. Generate the
cluster-issuer.yamlspec as follows:
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: lb-letsencrypt-prod
spec:
acme:
email: [email protected] # Change email address
privateKeySecretRef:
name: 'lb-letsencrypt-prod'
server: https://acme-v02.api.letsencrypt.org/directory
solvers:
- http01:
ingress:
class: kongApply the spec with:
kubectl apply -f cluster-issuer.yamlConfigMap Configuration
Modify the Lightbeam Common ConfigMap named
lightbeam-common-configmapusing the command below
kubectl edit cm lightbeam-common-configmapUpdate the AUTH_BASE_URL field with the appropriate URL in the format https://FQDN
apiVersion: v1
data:
AUTH_BASE_URL: https://sub-domain.domain-nameIngress Configuration
Edit the deployed Lightbeam ingress. The ingress name is
lightbeam-ingress-auth-svc. Use the command:
kubectl edit ingress lightbeam-ingress-auth-svc --namespace lightbeamAdd the following annotations:
cert-manager.io/cluster-issuer: lb-letsencrypt-prodkubernetes.io/tls-acme: "true"konghq.com/protocols: "https"konghq.com/https-redirect-status-code: "301"acme.cert-manager.io/http01-edit-in-place: "true"
Add the host to the rules:
tls:
- hosts:
- sub-domain.domain-name
secretName: lb-https-secretUpdate the spec section:
Add the tls section:
rules:
- host: sub-domain.domain-nameThe complete Ingress spec will resemble:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
cert-manager.io/cluster-issuer: lb-letsencrypt-prod
konghq.com/plugins: oidc,basic-auth
kubernetes.io/ingress.class: kong
kubernetes.io/tls-acme: "true"
meta.helm.sh/release-name: lightbeam
meta.helm.sh/release-namespace: lightbeam
konghq.com/protocols: https
konghq.com/https-redirect-status-code: "301"
acme.cert-manager.io/http01-edit-in-place: "true"
labels:
app: lightbeam-kong-proxy
app.kubernetes.io/instance: lightbeam
app.kubernetes.io/name: lightbeam
name: lightbeam-ingress-auth-svc
namespace: lightbeam
spec:
rules:
host: app.lightbeam-ai.com
http:
paths:
- backend:
service:
name: lb-keycloak
port:
number: 80
path: /auth
pathType: Prefix
- backend:
service:
name: lightbeam-api-gateway
port:
number: 8000
path: /api
pathType: Prefix
- backend:
service:
name: lightbeam-frontend
port:
number: 8080
path: /
pathType: Prefix
tls:
- hosts:
- app.lightbeam-ai.com
secretName: lb-https-secretUpdate lightbeam service file if applicable:
Add the port 443 to be port-forwarded in the
/usr/local/bin/lightbeam.shfile.
/usr/bin/kubectl port-forward service/kong-proxy -n lightbeam --address 0.0.0.0 80:80 443:443 --kubeconfig /root/.kube/config &Restart lightbeam service
systemctl stop lightbeam
systemctl start lightbeamRestart lightbeam api gateway pod
Subsequently, the ingress address must be configured in the DNS settings of the domain's registrar, such as GoDaddy or Route53.
Now, the Lightbeam GUI is accessible at the endpoint: https://sub-domain.domain-name
About LightBeam
LightBeam automates Privacy, Security, and AI Governance, so businesses can accelerate their growth in new markets. Leveraging generative AI, LightBeam has rapidly gained customers’ trust by pioneering a unique privacy-centric and automation-first approach to security. Unlike siloed solutions, LightBeam ties together sensitive data cataloging, control, and compliance across structured and unstructured data applications providing 360-visibility, redaction, self-service DSRs, and automated ROPA reporting ensuring ultimate protection against ransomware and accidental exposures while meeting data privacy obligations efficiently. LightBeam is on a mission to create a secure privacy-first world helping customers automate compliance against a patchwork of existing and emerging regulations.
For any questions or suggestions, please get in touch with us at: [email protected].
Last updated