Skip to content

Core Concepts

This page explains the core domain objects and concepts that power VeraID. Understanding these building blocks is essential for effective use of the platform, whether you are working through the dashboard or integrating via the API.


Identities

An identity in VeraID represents a non-human identity (NHI) — any automated actor that authenticates to systems, accesses resources, or performs actions without direct human interaction.

Every identity has a type that describes its function:

TypeDescriptionExamples
SERVICE_ACCOUNTLong-lived accounts used by applications and servicesGCP service account, AWS IAM role, Azure managed identity
API_KEYStatic keys used to authenticate API requestsStripe API key, Twilio auth token, internal service keys
OAUTH_TOKENOAuth 2.0 client credentials or refresh tokensGitHub App token, Slack bot token, Salesforce connected app
CI_CDTokens and identities used in build and deployment pipelinesGitHub Actions OIDC, GitLab CI token, Jenkins credentials
AI_AGENTAutonomous AI agents that make decisions and call toolsLLM-powered agents, copilots, autonomous workflows
IOT_DEVICEEmbedded devices that communicate with cloud servicesSensors, gateways, edge compute nodes
KUBERNETES_PODWorkload identities running in Kubernetes clustersPod service accounts, SPIFFE identities

Identity attributes

Every identity record includes:

  • Owner — The human user responsible for the identity. VeraID maps human-to-NHI relationships so that when an owner leaves the organization, all their NHIs can be flagged or decommissioned automatically.
  • Platform — The cloud provider or service where the identity originates (e.g., aws, gcp, azure, github).
  • Risk score — A dynamic score from 0 to 100 reflecting the identity’s current security posture.
  • Lifecycle state — The current state of the identity (see Lifecycle States below).
  • Tags and metadata — Arbitrary key-value pairs for classification, cost center tracking, or integration metadata.

Cross-platform correlation

VeraID correlates identities across providers. A single logical service may have an AWS IAM role, a GCP service account, and a GitHub Actions token — VeraID links these into a unified identity view so you can assess risk and enforce policy holistically.


Credentials

A credential is a secret value that an identity uses to authenticate. VeraID acts as a credential vault — storing, encrypting, rotating, and revoking credentials on your behalf.

Credential format

All credentials managed by VeraID follow a consistent format:

kd_{env}_{random}
PrefixEnvironmentUse case
kd_live_ProductionLive API calls against production systems
kd_test_Test / StagingDevelopment and testing — isolated from production data
kd_jit_Just-in-timeShort-lived temporary credentials with automatic expiry

Credential types

TypeDescription
API_KEYStatic API key for service-to-service authentication
JWTJSON Web Token, typically short-lived with claims-based authorization
OAUTH_TOKENOAuth 2.0 access or refresh token
CERTIFICATEX.509 certificate for mTLS or code signing
SSH_KEYSSH public/private key pair for secure shell access
TEMPORARYEphemeral credential issued via JIT access, auto-expires after a defined TTL

Encryption at rest

All credential values are encrypted using envelope encryption with AES-256-GCM. A unique data encryption key (DEK) protects each credential. DEKs are themselves encrypted by a key encryption key (KEK) managed through your cloud provider’s KMS. Plaintext credential values are never stored on disk or logged.

Scopes and usage limits

Credentials can be scoped to specific resources and operations. You can also enforce usage limits — for example, restricting a credential to a maximum of 1,000 API calls per day or limiting it to read-only operations on a specific set of endpoints.


Policies

VeraID uses policy-based access control (PBAC) to govern what identities can do. Policies are declarative rules that evaluate in real time to produce an ALLOW or DENY decision.

Policy structure

A policy consists of:

  • Name and description — Human-readable label and purpose.
  • Effect — Either ALLOW or DENY. Deny rules always take precedence over allow rules.
  • Subjects — The identities or identity groups the policy applies to.
  • Resources — The resources or resource patterns the policy governs.
  • Actions — The operations being controlled (e.g., read, write, delete, invoke).
  • Conditions — Optional constraints that must be satisfied for the policy to apply.

Condition types

Conditions add contextual constraints to policies:

ConditionDescriptionExample
Time windowRestrict access to specific hours or daysAllow CI/CD tokens only during business hours
IP rangeRestrict access to specific CIDR blocksAllow only from corporate VPN range 10.0.0.0/8
Rate limitCap the number of requests per time windowMaximum 100 requests per minute
MFA requiredRequire step-up authenticationRequire MFA for production credential access
Resource tagMatch against resource metadataAllow access only to resources tagged env:staging
Risk scoreEvaluate against the identity’s current risk scoreDeny access if risk score exceeds 75

Policy evaluation

When an identity makes a request, VeraID evaluates all applicable policies:

  1. Collect all policies whose subjects, resources, and actions match the request.
  2. Evaluate conditions against the current context (time, IP, risk score, etc.).
  3. If any matching policy has effect DENY, the request is denied.
  4. If at least one matching policy has effect ALLOW, the request is allowed.
  5. If no policies match, the request is denied by default (implicit deny).

Risk scoring

Every identity in VeraID has a risk score — a number from 0 to 100 that reflects its current security posture. Risk scores are dynamic and update continuously as conditions change.

Score ranges

RangeLevelMeaning
0–25LowIdentity follows best practices, no anomalies detected
26–50MediumMinor issues detected — e.g., credential approaching expiry
51–75HighSignificant risks — e.g., overprivileged access, behavioral anomaly
76–100CriticalImmediate action required — e.g., credential leaked, active compromise

Scoring factors

Risk scores are calculated from multiple weighted signals:

  • Credential hygiene — Age of credentials, rotation frequency, whether secrets are stored in plaintext.
  • Privilege level — Breadth of access, number of policies granting write or admin permissions.
  • Behavioral patterns — Deviations from historical usage (unusual hours, new IP ranges, spike in API calls).
  • Policy compliance — Whether the identity conforms to organizational policies or has policy violations.
  • Exposure analysis — Whether credentials have appeared in public repositories, logs, or breach databases.
  • Owner status — Whether the human owner is still active in the organization.

Score-based automation

You can use risk scores to trigger automated responses:

  • Alert when an identity’s risk score exceeds a threshold.
  • Suspend identities that cross a critical threshold until reviewed.
  • Require approval for high-risk identities to access sensitive resources.
  • Escalate to the identity owner or security team for investigation.

Lifecycle states

Every identity moves through a defined set of lifecycle states. VeraID tracks state transitions and enforces governance rules at each stage.

DISCOVERED → ACTIVE → SUSPENDED → REVOKED
↑ ↓
└──────────┘
(Reactivate)
StateDescription
DISCOVEREDIdentity found during a scan but not yet reviewed or onboarded
ACTIVEIdentity is approved, monitored, and permitted to operate
SUSPENDEDIdentity is temporarily disabled — credentials are frozen but not destroyed
REVOKEDIdentity is permanently decommissioned — all credentials are destroyed

State transitions

  • DISCOVERED → ACTIVE — An administrator reviews and approves the identity, assigns an owner, and attaches policies.
  • ACTIVE → SUSPENDED — Triggered manually, by a risk score threshold, or by an automated policy (e.g., owner offboarded).
  • SUSPENDED → ACTIVE — An administrator reactivates the identity after investigation or remediation.
  • ACTIVE → REVOKED or SUSPENDED → REVOKED — Permanent decommissioning. All associated credentials are destroyed and audit records are sealed.

Organizations and multi-tenancy

VeraID is a multi-tenant platform. Every object — identities, credentials, policies, audit logs — belongs to exactly one organization.

Row-level security (RLS)

Tenant isolation is enforced at the database level using PostgreSQL row-level security. Every table includes an organizationId column, and RLS policies ensure that queries can only return rows belonging to the authenticated user’s organization. This guarantee holds even in the event of application-level bugs — the database itself prevents cross-tenant data access.

Organization hierarchy

Organizations can contain:

  • Members — Human users with roles (Owner, Admin, Member, Viewer).
  • Identities — All NHIs belonging to the organization.
  • Policies — Access control rules scoped to the organization.
  • Integrations — Connected cloud providers and SaaS platforms.
  • Audit logs — Immutable event records for all organization activity.

Audit logging

Every action in VeraID produces an audit log entry — an immutable record of who did what, when, and from where. Audit logs are the foundation of compliance reporting and incident investigation.

Log structure

Each audit log entry contains:

FieldDescription
idUnique event identifier
timestampISO 8601 timestamp with microsecond precision
actorThe identity or user that performed the action
actionThe operation performed (e.g., credential.created, policy.updated)
resourceThe object that was acted upon
outcomeSUCCESS or FAILURE
metadataAdditional context — IP address, user agent, request ID, risk score at time of action
organizationIdThe organization the event belongs to

Immutability and retention

Audit logs are stored in TimescaleDB hypertables — time-series optimized tables that automatically partition data by time. Logs are append-only and cannot be modified or deleted through the application. Retention policies are configurable per organization, with a default retention of 7 years to meet SOC 2 and ISO 27001 requirements.