Skip to main content

Sizing Guide

Based on the number of assets that will need to be secured, hardware specifications are listed as below.

Note: Customer is expected to provision AKS cluster, storage account, DB and other azure infrastructure prior to deployment. We will share the necessary files required prior to the deployment date. Files must be copied to the Bastion Host before installation.

Securing up to 100 assets

Hardware Requirements for Non HA setup

Non HA Kubernetes Cluster

LayerNo of VMsSpecificationResource
Platform TierNode pool of min=5 nodes, max=10- 4vCPU
- 16 GB RAM
- Ubuntu 22.04/RHEL9.4
Azure Kubernetes Service (v1.29.5 or higher).
The node pool should preferably be multi-zone for better availability.
Bastion Host1- 4vCPU
- 8 GB RAM
- 220 GB OS Disk
- Ubuntu 22.04/RHEL9.4
The Bastion Host serves the ColorTokens platform Docker images and binaries required for Xshield application setup during deployment.

Non HA DB

LayerNo of DBsSpecificationResource
Data Tier1
- 4vCPU
- 16GB Memory
- 256 GB Disk
Azure Database for PostgreSQL flexible servers

Hardware Requirements for HA setup

HA Kubernetes Cluster

“The below configuration provides full HA for platform and data tier across DC and DR.”

LayerSiteNo of VMsSpecificationResource
Platform TierDCNode pool of min=5 nodes and max=10 nodes- 4vCPU
- 16GB RAM
- Ubuntu 22.04/RHEL9.4
Azure Kubernetes service (v1.29.5 or higher).
The node pool should preferably be multi-zone for better availability.
DRNode pool of min=5 nodes and max=10 nodes- 4vCPU
- 16 GB RAM
- Ubuntu 22.04/RHEL9.4
Azure Kubernetes service (v1.29.5 or higher).
The node pool should preferably be multi-zone for better availability.
Bastion HostDC1- 4vCPU
- 8GB RAM
- 220 GB OS Disk
- Ubuntu 22.04/RHEL9.4
The Bastion Host serves the ColorTokens platform Docker images and binaries required for Xshield application setup during deployment.
DR1- 4vCPU, 8GB RAM
- 220GB OS Disk
- Ubuntu 22.04/RHEL9.4
The Bastion Host serves the ColorTokens platform Docker images and binaries required for Xshield application setup during deployment.

HA DB

LayerSiteNo of DBsSpecificationResource
Data TierDC1- 4vCPU, 16GB Memory
- 256 GB Disk
Azure Database for PostgreSQL flexible servers
DR1- 4vCPU, 16GB Memory
- 256 GB OS Disk
Azure Database for PostgreSQL flexible servers

The Disaster Recovery (DR) site should be set up as a replica of the Data Center (DC) site database. A virtual private endpoint must be established for the High Availability (HA) database. It is the customer's responsibility to manage HA within their managed HA environment.

HA Storage account

HA Storage Account should use Geo-redundant storage (GRS) or Read-access GRS (RA-GRS) for high availability across paired Azure regions, ensuring durability and disaster recovery.

It is the customer's responsibility to configure high availability (HA) for the storage account. https://learn.microsoft.com/en-us/azure/storage/common/storage-redundancy https://learn.microsoft.com/en-us/azure/reliability/regions-list#azure-regions-list-1

Disk space allocation per node type for RHEL 9.4

Bastion Host

/HOME/OPT/VAR/Primary
128402032220

Securing up to 1000 assets

Hardware Requirements for Non HA setup

Non HA Kubernetes Cluster

LayerNo of VMsSpecificationResource
Platform TierNode pool of min=5 nodes, max=10- 4vCPU
- 16 GB RAM
- Ubuntu 22.04/RHEL9.4
Azure Kubernetes Service (v1.29.5 or higher).
The node pool should preferably be multi-zone for better availability.
Bastion Host1- 4vCPU
- 8 GB RAM
- 220 GB OS Disk
- Ubuntu 22.04/RHEL9.4
The Bastion Host serves the ColorTokens platform Docker images and binaries required for Xshield application setup during deployment.

Non HA DB

LayerNo of DBsSpecificationResource
Data Tier1
- 8vCPU
- 64GB RAM
- 256 GB Disk
Azure Database for PostgreSQL flexible servers

Hardware Requirements for HA setup

HA Kubernetes Cluster

“The below configuration provides full HA for platform and data tier across DC and DR.”

LayerSiteNo of VMsSpecificationResource
Platform TierDCNode pool of min=5 nodes and max=10 nodes- 4vCPU
- 16GB RAM
- Ubuntu 22.04/RHEL9.4
Azure Kubernetes service (v1.29.5 or higher).
The node pool should preferably be multi-zone for better availability.
DRNode pool of min=5 nodes and max=10 nodes- 4vCPU
- 16 GB RAM
- Ubuntu 22.04/RHEL9.4
Azure Kubernetes service (v1.29.5 or higher).
The node pool should preferably be multi-zone for better availability.
Bastion HostDC1- 4vCPU
- 8GB RAM
- 220 GB OS Disk
- Ubuntu 22.04/RHEL9.4
The Bastion Host serves the ColorTokens platform Docker images and binaries required for Xshield application setup during deployment.
DR1- 4vCPU
- 8GB RAM
- 220GB OS Disk
- Ubuntu 22.04/RHEL9.4
The Bastion Host serves the ColorTokens platform Docker images and binaries required for Xshield application setup during deployment.

HA DB

LayerSiteNo of DBsSpecificationResource
Data TierDC1- 8vCPU
- 64 GB RAM
- 256 GB Disk
Azure Database for PostgreSQL flexible servers
DR1- 8vCPU
- 64 GB RAM
- 256 GB OS Disk
Azure Database for PostgreSQL flexible servers

The Disaster Recovery (DR) site should be set up as a replica of the Data Center (DC) site database. A virtual private endpoint must be established for the High Availability (HA) database. It is the customer's responsibility to manage HA within their managed HA environment.

HA Storage account

HA Storage Account should use Geo-redundant storage (GRS) or Read-access GRS (RA-GRS) for high availability across paired Azure regions, ensuring durability and disaster recovery.

It is the customer's responsibility to configure high availability (HA) for the storage account. https://learn.microsoft.com/en-us/azure/storage/common/storage-redundancy https://learn.microsoft.com/en-us/azure/reliability/regions-list#azure-regions-list-1

Disk space allocation per node type for RHEL 9.4

Bastion Host

/HOME/OPT/VAR/Primary
128402032220

Securing up to 4000 assets

Hardware Requirements for Non HA setup

Non HA Kubernetes Cluster

LayerNo of VMsSpecificationResource
Platform TierNode pool of min=5 nodes, max=10- 8vCPU
- 32 GB RAM
- Ubuntu 22.04/RHEL9.4
Azure Kubernetes Service (v1.29.5 or higher).
The node pool should preferably be multi-zone for better availability.
Bastion Host1- 4vCPU
- 8 GB RAM
- 220 GB OS Disk
- Ubuntu 22.04/RHEL9.4
The Bastion Host serves the ColorTokens platform Docker images and binaries required for Xshield application setup during deployment.

Non HA DB

LayerNo of DBsSpecificationResource
Data Tier1
- 8vCPU
- 64 GB RAM
- 500 GB Disk
Azure Database for PostgreSQL flexible servers

Hardware Requirements for HA setup

HA Kubernetes Cluster

“The below configuration provides full HA for platform and data tier across DC and DR.”

LayerSiteNo of VMsSpecificationResource
Platform TierDCNode pool of min=5 nodes and max=10 nodes- 8vCPU
- 32 GB RAM
- Ubuntu 22.04/RHEL9.4
Azure Kubernetes service (v1.29.5 or higher).
The node pool should preferably be multi-zone for better availability.
DRNode pool of min=5 nodes and max=10 nodes- 8vCPU
- 32 GB RAM
- Ubuntu 22.04/RHEL9.4
Azure Kubernetes service (v1.29.5 or higher).
The node pool should preferably be multi-zone for better availability.
Bastion HostDC1- 4vCPU
- 8GB RAM
- 220 GB OS Disk
- Ubuntu 22.04/RHEL9.4
The Bastion Host serves the ColorTokens platform Docker images and binaries required for Xshield application setup during deployment.
DR1- 4vCPU
- 8GB RAM
- 220GB OS Disk
- Ubuntu 22.04/RHEL9.4
The Bastion Host serves the ColorTokens platform Docker images and binaries required for Xshield application setup during deployment.

HA DB

LayerSiteNo of DBsSpecificationResource
Data TierDC1- 8vCPU
- 64 GB RAM
- 500 GB Disk
Azure Database for PostgreSQL flexible servers
DR1- 8vCPU
- 64 GB RAM
- 500 GB OS Disk
Azure Database for PostgreSQL flexible servers

The Disaster Recovery (DR) site should be set up as a replica of the Data Center (DC) site database. A virtual private endpoint must be established for the High Availability (HA) database. It is the customer's responsibility to manage HA within their managed HA environment.

HA Storage account

HA Storage Account should use Geo-redundant storage (GRS) or Read-access GRS (RA-GRS) for high availability across paired Azure regions, ensuring durability and disaster recovery.

It is the customer's responsibility to configure high availability (HA) for the storage account. https://learn.microsoft.com/en-us/azure/storage/common/storage-redundancy https://learn.microsoft.com/en-us/azure/reliability/regions-list#azure-regions-list-1

Disk space allocation per node type for RHEL 9.4

Bastion Host

/HOME/OPT/VAR/Primary
128402032220

Securing up to 10000 assets

Hardware Requirements for Non HA setup

Non HA Kubernetes Cluster

LayerNo of VMsSpecificationResource
Platform TierNode pool of min=6 nodes, max=12- 8vCPU
- 32 GB RAM
- Ubuntu 22.04/RHEL9.4
Azure Kubernetes Service (v1.29.5 or higher).
The node pool should preferably be multi-zone for better availability.
Bastion Host1- 4vCPU
- 8 GB RAM
- 220 GB OS Disk
- Ubuntu 22.04/RHEL9.4
The Bastion Host serves the ColorTokens platform Docker images and binaries required for Xshield application setup during deployment.

Non HA DB

LayerNo of DBsSpecificationResource
Data Tier1
- 32vCPU
- 128 GB RAM
- 1024 GB Disk
Azure Database for PostgreSQL flexible servers

Hardware Requirements for HA setup

HA Kubernetes Cluster

“The below configuration provides full HA for platform and data tier across DC and DR.”

LayerSiteNo of VMsSpecificationResource
Platform TierDCNode pool of min=6 nodes and max=12 nodes- 8vCPU
- 32 GB RAM
- Ubuntu 22.04/RHEL9.4
Azure Kubernetes service (v1.29.5 or higher).
The node pool should preferably be multi-zone for better availability.
DRNode pool of min=6 nodes and max=12 nodes- 8vCPU
- 32 GB RAM
- Ubuntu 22.04/RHEL9.4
Azure Kubernetes service (v1.29.5 or higher).
The node pool should preferably be multi-zone for better availability.
Bastion HostDC1- 4vCPU
- 8GB RAM
- 220 GB OS Disk
- Ubuntu 22.04/RHEL9.4
The Bastion Host serves the ColorTokens platform Docker images and binaries required for Xshield application setup during deployment.
DR1- 4vCPU
-8GB RAM
- 220GB OS Disk
- Ubuntu 22.04/RHEL9.4
The Bastion Host serves the ColorTokens platform Docker images and binaries required for Xshield application setup during deployment.

HA DB

LayerSiteNo of DBsSpecificationResource
Data TierDC1- 32vCPU
- 128 GB RAM
- 1024 GB Disk
Azure Database for PostgreSQL flexible servers
DR1- 32vCPU
- 128 GB RAM
- 1024 GB OS Disk
Azure Database for PostgreSQL flexible servers

The Disaster Recovery (DR) site should be set up as a replica of the Data Center (DC) site database. A virtual private endpoint must be established for the High Availability (HA) database. It is the customer's responsibility to manage HA within their managed HA environment.

HA Storage account

HA Storage Account should use Geo-redundant storage (GRS) or Read-access GRS (RA-GRS) for high availability across paired Azure regions, ensuring durability and disaster recovery.

It is the customer's responsibility to configure high availability (HA) for the storage account. https://learn.microsoft.com/en-us/azure/storage/common/storage-redundancy https://learn.microsoft.com/en-us/azure/reliability/regions-list#azure-regions-list-1

Disk space allocation per node type for RHEL 9.4

Bastion Host

/HOME/OPT/VAR/Primary
128402032220

Additional Requirements

  1. The Kubernetes cluster must have read and write access to Azure Storage Account (Blob Storage) and Azure Container Registry (ACR).

  2. The Bastion Host must also have read and write access to Azure Storage Account (Blob Storage) and Azure Container Registry (ACR).

  3. Access keys need to be shared for storage account and ACR during the time of deployment.

  4. Two unused static IPs are required for assigning to platform ingress components.
    Additionally, the subnet from which the Load Balancer obtains its private IP must have both Contributor and Reader roles assigned to the AKS service principal.
    Command:

    az role assignment create --assignee <principal_id> --role Reader --scope <resource-id-of-subnet>
    az role assignment create --assignee <principal_id> --role Contributor --scope <resource-id-of-subnet>
  5. Permissions are required to create Persistent Volume Claims (PVCs) in the AKS subscription to support stateful application deployments.

  6. FQDN and TLS:
    a. FQDN(s) of your choice will be required to host the ColorTokens Xshield platform and related components (e.g., Blob Store, Monitoring).

    For example:

    <colortokens>.<your-domain-name>.com (Xshield Platform UI) (IP1)
    artifacts-<colortokens>.<your-domain-name>.com (Blob Storage) (IP1)
    telemetry-<colortokens>.<your-domain-name>.com (Agent flow logs) (IP1)
    logs-<colortokens>.<your-domain-name>.com (Agent logs) (IP1)
    docs-<colortokens>.<your-domain-name>.com (Knowledge base) (IP1)
    monitoring-<colortokens>.<your-domain-name>.com (Monitoring platform - Grafana) (IP2)

    b. The FQDN(s) must be resolvable from all managed assets.
    c. TLS certificates must be issued by a well-known certificate authority for the FQDN(s).

    • Certificates should have CN=<colortokens>.<your-domain-name>.com
    • SAN entries should cover all the above FQDNs.

    d. The customer must configure a valid DNS and NTP server to ensure FQDN resolution and time synchronization across servers.
    e. The Bastion Host must be based on RHEL 9.4 or Ubuntu 22.04, and should allow the following access:

    • Port 5432 (PostgreSQL)
    • SSH port (22)
    • Storage account (read/write access)
    • ACR or similar registry (read/write access)
    • Access to the database (read/write)
    • Access to the cluster (read/write)
    • Permission to deploy CRDs on the cluster
    • Access to all of the above FQDNs
    • TLS full certificate chain and private key copied to the Bastion Host
    • Sudo access on the Bastion Host
    • Network connectivity to all Kubernetes nodes

    f. Access to port 3000 of the Bastion Host should be available from any other Windows machine.
    g. The kubeconfig file of the cluster must be present on the Bastion Host.
    h. For RHEL 9.4 and Ubuntu 22.04, offline installation files will be provided and must be copied to the Bastion Host.

    The following files must be copied prior to deployment:

    File TypeLocation to Copy ToDelivery Mode
    Platform deployment tarBastion HostProvided by CT
    TLS certificate bundleBastion HostCustomer-provided
    OS package bundleBastion HostProvided by CT

    i. A public SFTP server should be available to upload tar files from ColorTokens. These files must be made accessible on the Bastion Host.

Identity Management:

  • ColorTokens console can be configured to work with any OAuth compatible Identity Provider such as Active Directory, ADFS, Okta, Auth0, Keycloak etc.