PagerDuty Hardening Guide
Incident management security for API keys, event rules, and integration hardening
Overview
PagerDuty orchestrates incident response with integrations across monitoring, ticketing, and communication tools. REST API access, webhooks, and 700+ integrations create extensive attack surface. Compromised access reveals incident patterns, on-call schedules, and can suppress or manipulate alerts during active attacks.
Intended Audience
- Security engineers managing incident response
- SRE/DevOps administrators
- GRC professionals assessing operations security
- Third-party risk managers evaluating alerting integrations
Table of Contents
- Authentication & Access Controls
- API & Integration Security
- Incident Security
- Monitoring & Detection
1. Authentication & Access Controls
1.1 Enforce SSO with MFA
Profile Level: L1 (Baseline) NIST 800-53: IA-2(1)
ClickOps Implementation
Step 1: Configure SAML SSO
- Navigate to: Account Settings → Single Sign-On
- Configure SAML IdP
- Enable: Require SSO
Step 2: Configure User Provisioning
- Enable SCIM provisioning
- Configure JIT provisioning
- Disable password authentication
1.2 Implement Role-Based Access
Profile Level: L1 (Baseline) NIST 800-53: AC-3, AC-6
ClickOps Implementation
Step 1: Define Roles
| Role | Permissions |
|---|---|
| Account Owner | Full access (1 user) |
| Admin | User/team management |
| Manager | Team configuration |
| Responder | Incident response |
| Observer | Read-only |
Step 2: Configure Team Permissions
- Navigate to: People → Teams
- Configure team-specific permissions
- Limit cross-team visibility
2. API & Integration Security
2.1 Secure API Keys
Profile Level: L1 (Baseline) NIST 800-53: IA-5
Description
Manage PagerDuty API keys securely.
Rationale
Attack Scenario: Compromised API key suppresses alerts during attack; on-call schedule manipulation delays incident response.
ClickOps Implementation
Step 1: Audit API Keys
- Navigate to: Integrations → API Access Keys
- Review all keys
- Remove unused keys
Step 2: Create Scoped Keys
- Use read-only keys where possible
- Create service-specific keys
- Document key purposes
2.2 Integration Security
Profile Level: L1 (Baseline) NIST 800-53: CM-7
ClickOps Implementation
Step 1: Review Integrations
- Navigate to: Services → Service Directory
- Audit all service integrations
- Remove unused integrations
Step 2: Secure Webhook Endpoints
- Use HTTPS only
- Validate webhook signatures
- Implement IP allowlisting
3. Incident Security
3.1 Protect Incident Data
Profile Level: L1 (Baseline) NIST 800-53: SC-28
ClickOps Implementation
Step 1: Configure Incident Visibility
- Limit incident details in notifications
- Avoid sensitive data in alerts
- Use secure channels for details
Step 2: Secure Runbooks
- Protect runbook credentials
- Use secret references (not plaintext)
- Audit runbook access
3.2 Event Rules Security
Profile Level: L2 (Hardened) NIST 800-53: SI-4
Implementation
Step 1: Protect Event Rules
- Navigate to: Automation → Event Rules
- Audit suppression rules
- Alert on rule modifications
Step 2: Monitor Rule Changes
- Track who modifies rules
- Require approval for suppression rules
- Audit rule effectiveness
4. Monitoring & Detection
4.1 Audit Logs
Profile Level: L1 (Baseline) NIST 800-53: AU-2, AU-3
ClickOps Implementation
Step 1: Access Audit Records
- Navigate to: Analytics → Audit Records
- Review login events
- Monitor configuration changes
Detection Focus
-- Detect alert suppression manipulation
SELECT user_email, action, target
FROM pagerduty_audit_log
WHERE action LIKE '%suppress%'
OR action LIKE '%rule%'
AND timestamp > NOW() - INTERVAL '24 hours';
-- Detect unusual API activity
SELECT api_key, endpoint, COUNT(*) as requests
FROM api_log
WHERE timestamp > NOW() - INTERVAL '1 hour'
GROUP BY api_key, endpoint
HAVING COUNT(*) > 500;
Appendix A: Edition Compatibility
| Control | Professional | Business | Digital Operations |
|---|---|---|---|
| SAML SSO | ✅ | ✅ | ✅ |
| SCIM | ❌ | ✅ | ✅ |
| Audit Records | Limited | ✅ | ✅ |
| Custom Roles | ❌ | ✅ | ✅ |
Changelog
| Date | Version | Maturity | Changes | Author |
|---|---|---|---|---|
| 2025-12-14 | 0.1.0 | draft | Initial PagerDuty hardening guide | Claude Code (Opus 4.5) |