Skip to content

Identity Groups

Identity groups let you organize non-human identities by team, function, environment, or any dimension that aligns with your operational model. Instead of managing policies and access rules for individual identities, you define them once at the group level and every member inherits them automatically.

Why Use Groups

Managing identities individually does not scale. As your organization grows from dozens to thousands of NHIs, group-based governance becomes essential:

  • Policy inheritance — Assign a policy to a group and every member identity is automatically covered. Add a new identity to the group and it immediately inherits all group policies.
  • Bulk operations — Suspend, activate, or rotate credentials for an entire group in a single action.
  • Organizational alignment — Mirror your team structure, service architecture, or deployment topology in your identity model.
  • Simplified auditing — Review access and risk posture at the group level rather than inspecting hundreds of individual identities.

Group Structure

A group is a named collection of identities with its own metadata and policy bindings.

FieldTypeDescription
idstringUnique group identifier (UUID v4)
namestringHuman-readable group name (unique within tenant)
descriptionstringPurpose or scope of the group
metadataJSONArbitrary key-value pairs (e.g., cost center, business unit)
tagsstring[]Labels for filtering and nested group queries
memberCountnumberCurrent number of identities in the group
policiesstring[]IDs of policies bound to this group
createdAtdatetimeTimestamp of group creation
updatedAtdatetimeTimestamp of last modification

Example Group Object

{
"id": "grp_a4e7c1d9-3b8f-42e6-9a1c-5d7f2e8b0c3a",
"name": "payments-team-production",
"description": "All production NHIs owned by the payments team",
"metadata": {
"team": "payments",
"environment": "production",
"costCenter": "ENG-042"
},
"tags": ["production", "pci-scope"],
"memberCount": 14,
"policies": [
"pol_rotation-90d",
"pol_ip-allowlist-prod",
"pol_risk-threshold-50"
],
"createdAt": "2025-11-01T09:00:00Z",
"updatedAt": "2026-03-18T16:45:00Z"
}

Grouping Strategies

Choose a grouping strategy that matches how your organization thinks about identity ownership and governance.

By Team

Group identities by the team that owns and operates them. This is the most common strategy and aligns policy ownership with operational responsibility.

payments-team-production
├── payment-processor (SERVICE_ACCOUNT)
├── stripe-webhook-handler (API_KEY)
├── billing-cron-job (CI_CD)
└── payment-fraud-detector (AI_AGENT)

By Function

Group identities by their operational function, regardless of which team owns them. Useful for applying function-specific policies such as credential rotation intervals or IP restrictions.

ci-cd-pipelines
├── deploy-pipeline-staging (CI_CD)
├── deploy-pipeline-production (CI_CD)
├── terraform-plan-runner (CI_CD)
└── argocd-sync-agent (CI_CD)

By Environment

Group identities by deployment environment to enforce environment-specific access controls, network restrictions, and risk thresholds.

production-identities
├── api-gateway (SERVICE_ACCOUNT)
├── payment-processor (SERVICE_ACCOUNT)
├── deploy-pipeline-production (CI_CD)
└── monitoring-agent (SERVICE_ACCOUNT)

Managing Groups

Create a Group

Terminal window
curl -X POST https://app.veraid.io/api/v1/groups \
-H "Authorization: Bearer kd_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"name": "payments-team-production",
"description": "All production NHIs owned by the payments team",
"metadata": {
"team": "payments",
"environment": "production"
},
"tags": ["production", "pci-scope"]
}'

Add Identities to a Group

Add one or more identities to an existing group. Identities immediately inherit all group policies.

Terminal window
curl -X POST https://app.veraid.io/api/v1/groups/grp_a4e7c1d9-3b8f-42e6-9a1c-5d7f2e8b0c3a/members \
-H "Authorization: Bearer kd_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"identityIds": [
"idt_3a1f8c29-b7d4-4e2a-9c8f-1d5e7a2b4c6d",
"idt_7b2e50a8-ceea-462a-a5e7-8f14e45fb72c"
]
}'

Remove Identities from a Group

Terminal window
curl -X DELETE https://app.veraid.io/api/v1/groups/grp_a4e7c1d9-3b8f-42e6-9a1c-5d7f2e8b0c3a/members \
-H "Authorization: Bearer kd_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"identityIds": [
"idt_3a1f8c29-b7d4-4e2a-9c8f-1d5e7a2b4c6d"
]
}'

List Group Members

Terminal window
curl -X GET "https://app.veraid.io/api/v1/groups/grp_a4e7c1d9-3b8f-42e6-9a1c-5d7f2e8b0c3a/members?page=1&limit=50" \
-H "Authorization: Bearer kd_live_your_api_key"

Group-Based Policy Assignment

Policies assigned to a group apply to every member identity. When an identity belongs to multiple groups, policies from all groups are combined — the most restrictive rule wins in case of conflicts.

Bind a Policy to a Group

Terminal window
curl -X POST https://app.veraid.io/api/v1/groups/grp_a4e7c1d9-3b8f-42e6-9a1c-5d7f2e8b0c3a/policies \
-H "Authorization: Bearer kd_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"policyIds": [
"pol_rotation-90d",
"pol_ip-allowlist-prod"
]
}'

Bulk Operations

Groups enable you to perform lifecycle actions across many identities at once.

Bulk Suspend

Suspend all identities in a group. Useful during incident response or owner offboarding.

Terminal window
curl -X POST https://app.veraid.io/api/v1/groups/grp_a4e7c1d9-3b8f-42e6-9a1c-5d7f2e8b0c3a/suspend \
-H "Authorization: Bearer kd_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"reason": "Security incident — suspending all payments-team identities pending investigation"
}'

Bulk Activate

Reactivate all suspended identities in a group after an investigation is resolved.

Terminal window
curl -X POST https://app.veraid.io/api/v1/groups/grp_a4e7c1d9-3b8f-42e6-9a1c-5d7f2e8b0c3a/activate \
-H "Authorization: Bearer kd_live_your_api_key"

Bulk Credential Rotation

Trigger credential rotation for every identity in a group. Each identity’s credentials are rotated according to their individual rotation policies, with grace periods honored.

Terminal window
curl -X POST https://app.veraid.io/api/v1/groups/grp_a4e7c1d9-3b8f-42e6-9a1c-5d7f2e8b0c3a/rotate-credentials \
-H "Authorization: Bearer kd_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"reason": "Quarterly security rotation",
"gracePeriodHours": 24
}'

Group Risk Overview

The group detail view on the dashboard provides an aggregated risk overview:

  • Average risk score across all members
  • Highest-risk members ranked by score
  • Risk distribution histogram showing how members fall across Low, Medium, High, and Critical levels
  • Trend analysis showing how the group’s aggregate risk has changed over time

This view helps security teams quickly identify which groups require attention and drill down into specific high-risk identities.

What’s Next