RBAC User Role Design Role Scopes Description Guest read:presets, read:preset, read:metrics, read:deduplications, read:extraction, read:dashboards, read:ai, read:workflows, read:incidents, read:incident, read:alert, read:settings Read-only access for new users Webhook write:alert, write:incident, read:alert, read:incidents Write/read alerts and incidents using API keys (internal role) WorkflowRunner write:workflows, execute:workflows Run workflows using API keys PccAnalyst (draft) read:*, update:alert, update:incident, execute:workflows Read all + update alerts/incidents for PCC analysts PccAdmin read/write/update/delete/execute: maintenance, workflows, presets, preset, rules, extraction, providers, incidents, incident, secrets, alert, settings, topology, dashboards, actions, ai + read:deduplications Full access for PCC team OpsMember (draft)read:*, update:alert, update:incident, execute:workflows Read all + update alerts/incidents for Ops members OpsAdmin read/write/update/delete/execute: maintenance, workflows, presets, preset, rules, extraction, providers, incidents, incident, secrets, alert, settings, topology, dashboards, actions, ai + read:deduplications Full access for Ops team Admin read:*, write:*, delete:*, update:*, execute:* Full access - can do everything
Scope Actions Reference Action Description read View resources write Create new resources update Modify existing resources delete Remove resources execute Run/trigger resources (e.g., workflows)
Scope Resources Reference Resource Description alert Single alert operations incidents / incident Incident management workflows Workflow definitions and execution presets / preset Saved view presets rules Alert rules configuration extraction Field extraction rules providers Data source providers settings System settings dashboards Dashboard management ai AI analysis features topology Service topology maintenance Maintenance windows secrets Secret/credential management actions Custom actions deduplications Deduplication rules metrics Metrics data
User permissions User permissions in EMS are managed through a combination of user roles and group memberships. Each user is assigned a role that defines their baseline permissions, and they can inherit additional permissions through group memberships.
User Group Design Overview User groups in EMS are designed to streamline permission management by grouping users with similar roles and responsibilities. Integrating with MyID allows for automatic user onboarding and group membership assignment based on existing organizational structures.
Group Permission Model Each user group has two role levels for different member types:
Member Type Role Level Permissions Example Group Admin Higher role Full team permissions + group management PccAdmin, OpsAdmin Group Member Lower role Basic team permissions PccAnalyst, OpsMember
Group Configuration Example ┌─────────────────────────────────────────────────────────────────┐
│ User Group: "pcc-team" │
│ ├── Admin Role: PccAdmin │
│ ├── Member Role: PccAnalyst │
│ │ │
│ ├── Group Admins: (inherit PccAdmin permissions) │
│ │ └── lead@cisco.com │
│ │ │
│ └── Group Members: (inherit PccAnalyst permissions) │
│ ├── analyst1@cisco.com │
│ └── analyst2@cisco.com │
└─────────────────────────────────────────────────────────────────┘
Permission Resolution User's effective permissions = User Role ∪ All Group Roles (based on member type in each group)
Example: - User: john@cisco.com - User Role: Guest - Groups: - "pcc-team" as Group Admin → PccAdmin - "ops-team" as Group Member → OpsMember - Effective Permissions: Guest + PccAdmin + OpsMember
Group Admin vs Group Member Capabilities Action Group Admin Group Member Inherit admin role permissions ✅ ❌ Inherit member role permissions ✅ ✅ View group members ✅ ✅ Add members to group ✅ ❌ Remove members from group ✅ ❌ Promote member to admin ✅ ❌ Change group roles ❌ (System Admin only) ❌ Delete group ❌ (System Admin only) ❌
Typical Role Pairings Group Type Admin Role Member Role PCC Team PccAdmin PccAnalyst Ops Team OpsAdmin OpsMember
User Group sync with MyID When integrating with MyID groups, we discovered that: - One user typically belongs to many MyID groups (10-50+ groups) - Syncing all MyID groups to EMS would create a messy, unmanageable group structure - Most MyID groups are irrelevant to EMS operations (e.g., company-wide, regional, HR groups)
Solution: Manual Group Creation with MyID Name Matching Instead of auto-syncing all MyID groups, EMS uses a selective matching approach :
Admin manually creates user groups in EMS Group name matches the relevant MyID group name exactly New users are auto-assigned to matching EMS groups based on their MyID group membership Group roles (admin/member) are defined in EMS during group creation Sync Strategies Strategy Description When to Use On Login Sync when user logs in Default, ensures fresh data Periodic Background job syncs all users Large user base, reduce login latency Manual Admin triggers sync for specific user Troubleshooting, immediate updates
Configuration Options Setting Type Default Description myid_sync_enabled boolean true Global toggle for MyID sync sync_on_login boolean true Sync groups on each login sync_interval_hours integer 24 Periodic sync interval remove_stale_memberships boolean false Remove memberships when user leaves MyID group
Edge Cases Case Behavior User removed from MyID group Membership remains in EMS unless remove_stale_memberships enabled EMS group renamed MyID sync stops working for that group (name must match) MyID group renamed Admin must rename EMS group to restore sync User in no matching groups User has no group memberships Duplicate group names Not allowed - unique constraint on (tenant_id, name)