You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A security compliance inspection tool for PagerDuty incident management platforms. Audits authentication settings, user roles and access controls, service configurations, escalation policy coverage, audit logging, API key management, and integration security against enterprise security baselines and compliance frameworks.
PagerDuty is a critical incident response platform; misconfigurations can lead to missed alerts, unauthorized access to incident data, or gaps in on-call coverage. This tool uses the PagerDuty REST API v2 to evaluate security posture.
PAGERDUTY_API_KEY=<account_api_key>
PAGERDUTY_BASE_URL=https://api.pagerduty.com # default
PAGERDUTY_USER_EMAIL=<requester_email> # required for some endpoints
4. Security Controls
#
Control
API Source
Severity
1
SSO enforcement enabled for account
GET /abilities → check for sso
Critical
2
User roles follow least privilege (minimal admins)
GET /users → role field analysis
Critical
3
No users with owner role beyond account owner
GET /users → role = 'owner'
High
4
Team-based access configured (users assigned to teams)
GET /users + GET /teams/{id}/members
High
5
All services have escalation policies assigned
GET /services → escalation_policy
Critical
6
Escalation policies have multiple escalation levels
GET /escalation_policies → escalation_rules count
High
7
Escalation policies do not terminate without notification
GET /escalation_policies → final rule analysis
High
8
On-call schedules provide 24/7 coverage (no gaps)
GET /schedules → final_schedule gap analysis
High
9
On-call schedule has multiple participants (no single point)
GET /schedules → schedule_layers user count
Medium
10
Incident response plays configured for critical services
GET /response_plays
Medium
11
Audit logging is active and accessible
GET /audit/records → verify records exist
High
12
Audit log retention meets compliance requirements
GET /audit/records → oldest record date check
Medium
13
API keys are rotated (no keys older than 90 days)
GET /audit/records → key creation events
High
14
Webhook endpoints use HTTPS
GET /extensions + GET /webhooks/subscriptions → URL scheme
High
15
Webhook signatures verified (HMAC)
GET /webhooks/subscriptions → delivery_method config
Medium
16
Integration permissions are scoped appropriately
GET /services/{id}/integrations → integration type review
Medium
17
Notification rules configured for all users
GET /users/{id}/notification_rules for each user
Medium
18
Contact methods verified for all on-call users
GET /users/{id}/contact_methods for on-call users
High
19
Service urgency rules configured (not all high)
GET /services → incident_urgency_rule
Low
20
Custom incident priorities defined and used
GET /priorities
Low
21
Service dependencies mapped for impact analysis
GET /business_services + GET /service_dependencies
Medium
22
Acknowledgement timeouts configured on services
GET /services → acknowledgement_timeout
Medium
23
Auto-resolve timeouts configured on services
GET /services → auto_resolve_timeout
Low
24
Analytics access restricted to appropriate roles
GET /abilities → analytics capability check
Medium
25
Change events tracking enabled for services
GET /services/{id} → change event integration
Low
5. Compliance Framework Mappings
Control
FedRAMP
CMMC
SOC 2
CIS
PCI-DSS
STIG
IRAP
ISMAP
1. SSO enforcement
IA-2
IA.L2-3.5.1
CC6.1
4.1
8.3.1
SRG-APP-000148
ISM-1557
8.2.1
2. Least privilege roles
AC-6(1)
AC.L2-3.1.5
CC6.3
6.1
7.1.1
SRG-APP-000340
ISM-1508
8.1.2
3. Owner role restricted
AC-6(5)
AC.L2-3.1.5
CC6.3
6.2
7.1.2
SRG-APP-000340
ISM-1508
8.1.3
4. Team-based access
AC-3
AC.L2-3.1.2
CC6.1
6.1
7.1.1
SRG-APP-000033
ISM-1508
8.1.1
5. Services have escalation policies
IR-4
IR.L2-3.6.1
CC7.3
17.1
12.10.1
SRG-APP-000516
ISM-0043
16.1.1
6. Multi-level escalation
IR-4(1)
IR.L2-3.6.2
CC7.3
17.2
12.10.1
SRG-APP-000516
ISM-0043
16.1.2
7. Escalation terminates with notification
IR-4
IR.L2-3.6.1
CC7.3
17.1
12.10.1
SRG-APP-000516
ISM-0043
16.1.1
8. 24/7 on-call coverage
IR-7
IR.L2-3.6.1
CC7.3
17.3
12.10.1
SRG-APP-000516
ISM-0043
16.1.3
9. Multiple on-call participants
IR-7(1)
IR.L2-3.6.2
CC7.3
17.3
12.10.1
SRG-APP-000516
ISM-0043
16.1.3
10. Response plays configured
IR-4(1)
IR.L2-3.6.2
CC7.4
17.4
12.10.6
SRG-APP-000516
ISM-0043
16.1.4
11. Audit logging active
AU-2
AU.L2-3.3.1
CC7.2
8.1
10.1
SRG-APP-000089
ISM-0580
12.1.1
12. Audit log retention
AU-11
AU.L2-3.3.1
CC7.2
8.3
10.7
SRG-APP-000515
ISM-0859
12.1.2
13. API key rotation
IA-5(1)
IA.L2-3.5.10
CC6.1
4.4
8.2.4
SRG-APP-000174
ISM-1557
8.2.4
14. HTTPS webhooks
SC-8(1)
SC.L2-3.13.8
CC6.7
14.4
4.1
SRG-APP-000441
ISM-0487
10.1.1
15. Webhook HMAC signatures
SC-8(1)
SC.L2-3.13.8
CC6.7
14.4
4.1
SRG-APP-000441
ISM-0487
10.1.1
16. Integration scoping
AC-6
AC.L2-3.1.1
CC6.3
6.1
7.1.1
SRG-APP-000033
ISM-1508
8.1.1
17. Notification rules configured
IR-6
IR.L2-3.6.1
CC7.3
17.5
12.10.1
SRG-APP-000516
ISM-0043
16.1.5
18. Contact methods verified
IR-7
IR.L2-3.6.1
CC7.3
17.5
12.10.1
SRG-APP-000516
ISM-0043
16.1.5
19. Service urgency configured
IR-4
IR.L2-3.6.1
CC7.3
17.6
12.10.1
SRG-APP-000516
ISM-0043
16.1.1
20. Incident priorities defined
IR-4
IR.L2-3.6.1
CC7.4
17.6
12.10.1
SRG-APP-000516
ISM-0043
16.1.1
21. Service dependencies mapped
CM-8
CM.L2-3.4.1
CC3.1
2.1
2.4
SRG-APP-000141
ISM-1284
6.1.1
22. Ack timeouts configured
IR-4
IR.L2-3.6.1
CC7.3
17.1
12.10.1
SRG-APP-000516
ISM-0043
16.1.1
23. Auto-resolve timeouts
IR-4
IR.L2-3.6.1
CC7.3
17.1
12.10.1
SRG-APP-000516
ISM-0043
16.1.1
24. Analytics access restricted
AC-6
AC.L2-3.1.1
CC6.3
6.1
7.1.1
SRG-APP-000033
ISM-1508
8.1.1
25. Change event tracking
CM-3
CM.L2-3.4.3
CC8.1
2.3
6.4.5
SRG-APP-000128
ISM-1211
6.2.1
6. Existing Tools
Tool
Type
Notes
PagerDuty Admin Dashboard
Built-in
Manual review, no automation
PagerDuty Analytics
Built-in
Performance metrics, not security audit
PagerDuty Audit Records API
Built-in API
Raw audit data, no analysis
Terraform PagerDuty Provider
Open source IaC
Config-as-code but not audit-focused
Drata / Vanta
Commercial SaaS
PagerDuty integration for SOC 2
No open-source PagerDuty security inspector exists
pagerduty-sec-inspector [flags]
Flags:
--api-key string PagerDuty API key (or PAGERDUTY_API_KEY env)
--email string Requester email for API calls (or PAGERDUTY_USER_EMAIL env)
--base-url string API base URL (default: https://api.pagerduty.com)
--controls string Comma-separated control IDs to run (default: all)
--skip-controls string Comma-separated control IDs to skip
--severity string Minimum severity: critical,high,medium,low (default: low)
--format string Output format: json,csv,html,sarif (default: json)
--output string Output file path (default: stdout)
--include-analytics Include analytics data in assessment
--api-key-max-age int Max API key age in days (default: 90)
--schedule-coverage-days int Days ahead to check on-call coverage (default: 30)
--concurrency int Max concurrent API requests (default: 10)
--timeout duration HTTP request timeout (default: 30s)
--verbose Enable verbose/debug logging
--version Print version and exit
--help Show help
Example Usage
# Full inspection with JSON output
pagerduty-sec-inspector --api-key "$PD_API_KEY" --email admin@company.com \
--format json --output report.json
# Critical controls only, HTML report
pagerduty-sec-inspector --severity critical --format html --output dashboard.html
# On-call coverage check for next 60 days
pagerduty-sec-inspector --controls 5,6,7,8,9 --schedule-coverage-days 60 --format json
# CI/CD integration with SARIF
pagerduty-sec-inspector --format sarif --output results.sarif