Encryption posture
In transit
| Path | Protocol | Notes |
|---|---|---|
Customer → ingestion-gateway (api.infrasage.dev) | TLS 1.3 | Cloudflare edge terminates TLS then re-encrypts to origin |
Customer → console (console.infrasage.dev) | TLS 1.3 | HSTS, secure cookies, SameSite=strict |
| Ingestion-gateway → ClickHouse | TLS (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 → ClickHouse | TLS (same flag) | Ditto |
| AIOps-engine → Bedrock | TLS 1.3 | AWS SDK default; not disable-able |
| AIOps-engine → Anthropic direct (optional) | TLS 1.3 | Anthropic SDK default |
| Engine → engine (leader election) | mTLS supported | Optional, 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
| Storage | Encryption default | Customer-managed keys |
|---|---|---|
ClickHouse data PV (EBS gp3 / io2) | AWS-managed KMS (SSE-EBS) | Supported via helm/infrasage/values.yaml → ebs.kmsKeyArn |
| Redpanda log-segment volumes | AWS-managed KMS (SSE-EBS) | Supported |
S3 backups (clickhouse-backup) | AWS SSE-KMS | Supported (BYOK on S3 bucket policy) |
| Container images (ghcr.io) | Cosign signatures + registry TLS | N/A |
| Kubernetes secrets | Default 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/keysAPI, 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.