Skip to main content

Encryption posture

In transit

PathProtocolNotes
Customer → ingestion-gateway (api.infrasage.dev)TLS 1.3Cloudflare edge terminates TLS then re-encrypts to origin
Customer → console (console.infrasage.dev)TLS 1.3HSTS, secure cookies, SameSite=strict
Ingestion-gateway → ClickHouseTLS (opt-in via CLICKHOUSE_TLS_ENABLED=true)Default false today because same-cluster; set to true for cross-AZ or cross-cluster deploys
AIOps-engine → ClickHouseTLS (same flag)Ditto
AIOps-engine → BedrockTLS 1.3AWS SDK default; not disable-able
AIOps-engine → Anthropic direct (optional)TLS 1.3Anthropic SDK default
Engine → engine (leader election)mTLS supportedOptional, enable via Helm mesh.mtls.enabled=true

We pin the AWS-recommended TLS 1.3 modern cipher list. TLS 1.0 and 1.1 are rejected at the edge.

At rest

StorageEncryption defaultCustomer-managed keys
ClickHouse data PV (EBS gp3 / io2)AWS-managed KMS (SSE-EBS)Supported via helm/infrasage/values.yamlebs.kmsKeyArn
Redpanda log-segment volumesAWS-managed KMS (SSE-EBS)Supported
S3 backups (clickhouse-backup)AWS SSE-KMSSupported (BYOK on S3 bucket policy)
Container images (ghcr.io)Cosign signatures + registry TLSN/A
Kubernetes secretsDefault K8s encryption at rest (EncryptionConfiguration)Supported

Secret management

Recommended for production: the ExternalSecrets operator pointing at AWS Secrets Manager, HashiCorp Vault, or GCP Secret Manager.

# helm/infrasage/values-prod.yaml
externalSecrets:
enabled: true
backend: aws # or "vault" or "gcp"
role: arn:aws:iam::123:role/infrasage-secrets-reader

Discouraged outside dev: Kubernetes Secret objects created directly with kubectl create secret. These are not encrypted at rest unless EncryptionConfiguration is enabled on the cluster.

Forbidden in production: hardcoded credentials in values.yaml. The Helm install will fail if INFRASAGE_ADMIN_PASSWORD is unset, and no default admin credential ships with the chart.

KMS key rotation

  • Ingest gateway API keys: manual rotation through the /api/v1/keys API, recommended cadence 90 days
  • Database credentials: manual rotation by updating the secret, recommended cadence 180 days
  • LLM provider keys: manual rotation in the Bedrock or Anthropic console; cadence depends on the provider's policy

Automated key-rotation cron is Q1 2027 roadmap.

PII redaction (before encryption)

Even with everything encrypted end to end, InfraSage redacts sensitive strings in log payloads before they reach the RCA agent's LLM context. See Trust Center → PII handling.