Security at Cirrova
Cirrova is built on Microsoft Azure and designed with a security-first architecture. This page explains how we protect your data, authenticate access, and handle your Azure credentials — so your team can evaluate Cirrova with confidence.
1. Infrastructure & Hosting
Cirrova runs entirely on Microsoft Azure infrastructure. All infrastructure components are accessed using Managed Identity — the application never stores cloud credentials directly.
- Hosting: Azure App Service with managed runtime patching
- Database: Azure SQL with Entra ID–only authentication (SQL logins disabled); databases are not publicly accessible and access is restricted via role-based controls to permitted managed identities only
- Cost metric data: Azure Data Explorer — stores collected cost and resource metrics with long-term retention
- Secrets management: Azure Key Vault — no secrets are stored in application configuration or source code
- Credential resolution: Application credentials are resolved at startup via Key Vault; secrets are never logged or exposed via API responses
- Monitoring & logging: Application and audit logs are written to Azure Data Explorer
- Internal access controls: Cirrova team access to infrastructure components is protected by enforced Entra MFA
2. Data in Transit & at Rest
In transit
- All traffic is served over HTTPS/TLS — unencrypted connections are redirected automatically
- Database connections use
Encrypt=True; TrustServerCertificate=False— TLS is enforced and certificate authenticity is verified
At rest
- Azure SQL data benefits from transparent data encryption (TDE), enabled by default on all Azure SQL databases
- Azure credentials you provide (service principal client secrets) are encrypted using the .NET Data Protection API before storage; they are decrypted in memory only when a collection run requires them
- User passwords are hashed using BCrypt with per-user salts — plaintext passwords are never stored
- MFA secrets (TOTP) are encrypted at rest using the Data Protection API
- Password reset and invitation tokens are stored as SHA-256 hashes with expiry timestamps — tokens cannot be reconstructed from stored values
3. Authentication
User authentication
- Email + password: Passwords must be a minimum of 12 characters. Credentials are validated against a BCrypt hash — the application never holds plaintext passwords
- Single Sign-On (SSO): Cirrova supports SSO via Microsoft Entra ID (Azure AD) using OpenID Connect. Users authenticate directly with your identity provider — Cirrova never sees your SSO credentials
- Multi-factor authentication (MFA): Organisation owners can enforce TOTP-based MFA for all non-SSO users. MFA secrets are encrypted at rest
API key authentication
- Keys are stored as SHA-256 hashes — the plaintext key is shown once at creation and is never stored or recoverable
- Each key has a 12-character prefix retained for audit trail identification
- Keys can be assigned an optional expiry date and revoked at any time
- Every API key use is logged with the key prefix, organisation, user, endpoint accessed, and timestamp
Token lifecycle
- Session tokens (JWT) are signed with HMAC-SHA256 using a secret stored exclusively in Key Vault
- Tokens are short-lived (60 minutes by default) and are not persisted server-side
- SSO sessions use separate short-lived cookies (HttpOnly, SameSite=Lax, 10-minute expiry)
5. Your Azure Credentials
Cirrova needs read access to your Azure environment to collect cost and resource data. Here is exactly how credentials are handled:
- Service principal credentials (client ID + secret) or Managed Identity can be used to grant Cirrova access to your subscriptions
- Client secrets are encrypted immediately on receipt using the .NET Data Protection API and stored in encrypted form. They are decrypted in application memory only during scheduled collection runs
- Cirrova requests the minimum required Azure RBAC permissions:
Cost Management Reader,Reader, andMonitoring Readerroles at the subscription scope - Credentials are never logged, included in error messages, or returned via API responses
- You can rotate or revoke credentials at any time from within Cirrova or directly in your Azure portal — collection runs will fail gracefully if credentials are invalid
6. Audit Logging
Every significant action in Cirrova generates an audit log entry. Logged events include:
- User logins (successful and failed) and logouts
- API key creation, use, and revocation
- User and organisation management changes
- Tenant credential additions and updates
- Collection runs (start, completion, failures)
- Cost anomaly detection events
- Report generation and delivery
- Licence and subscription changes
- Support ticket creation
Each log entry captures: user ID, organisation ID, event type, IP address, user agent, and timestamp. Logs are retained in Azure Data Explorer according to your organisation's plan retention period.
7. Data Retention & Deletion
- Retention periods are applied per organisation based on your subscription plan
- A daily background process purges cost records, anomaly data, and collection snapshots that fall outside your retention window
- Enterprise plan customers can configure custom retention periods
- On cancellation, your data can be exported before deletion — contact us to arrange this
8. Multi-Organisation Architecture
Cirrova is a multi-organisation SaaS platform. Organisation isolation is enforced at every layer:
- Database queries always include an organisation ID filter — the application does not rely solely on application-layer checks
- API responses are validated against the authenticated user's organisation before any data is returned
Each organisation can connect to multiple Azure tenants, with per-tenant role assignments inside the organisation. Combined with multi-organisation hosting on a partner licence, this is designed for MSPs and enterprise teams managing multiple customer or business-unit environments.
9. Vulnerability & Patch Management
- Cirrova utilises PaaS components exclusively within the Azure stack — there are no self-managed virtual machines or operating systems. All underlying infrastructure, runtimes, and platform components are patched and maintained by Microsoft as part of the managed service
- Application dependencies are monitored for known vulnerabilities
- Security issues can be reported to: security@cirrova.io
10. Compliance
| Area | Status |
|---|---|
| Data residency | Cirrova is deployed in the Australia East Azure region. Contact us if you have custom data residency requirements |
| Entra ID / Azure AD SSO | Available on Control plans and above |
| MFA enforcement | Available now — configurable per organisation |
| Audit logging | Available now on all plans |
| Custom data retention | Available on Enterprise plan |
Have security questions before you sign up?
Our team is happy to answer detailed security questions or walk through our architecture with your security team.