Jira Integration
The Infracast Jira integration connects to your Jira Cloud or Jira Data Center instance to:
- Create Jira issues automatically from new Infracast findings
- Sync POA&M items to Jira as tracked issues with bidirectional status updates
Prerequisites
- Jira Cloud or Jira Data Center (Server) 8.x+
- A Jira service account with:
Browse ProjectsandCreate Issuespermissions in the target projectEdit IssuesandTransition Issuespermissions for status sync
- An API token (Jira Cloud) or personal access token (Jira Data Center)
Creating a Jira API Token
Jira Cloud:
- Log into Jira as the service account user
- Go to Account Settings → Security → API tokens → Create API token
- Label:
infracast-integration - Copy the generated token
Jira Data Center:
- Log into Jira as the service account user
- Navigate to Profile → Personal Access Tokens → Create token
- Name:
infracast-integration - Set an expiration date (recommended)
- Copy the generated token
Create a dedicated Jira service account (e.g., infracast@company.com for Cloud, or svc-infracast for Data Center) with the minimum required project permissions. This ensures audit logs clearly attribute Infracast-created issues.
Configuring the Integration
Navigate to Settings → Integrations → Add Integration → Jira:
| Field | Description |
|---|---|
| Jira URL | Your Jira instance URL, e.g., https://yourcompany.atlassian.net |
| Username / Email | Service account email (Cloud) or username (Data Center) |
| API Token | API token or personal access token |
| Project Key | Jira project key where issues will be created (e.g., SEC, INFRA) |
| Issue Type (Findings) | Jira issue type for finding-based tickets (e.g., Bug, Task) |
| Issue Type (POA&M) | Jira issue type for POA&M items (e.g., Story, Task) |
| Minimum Severity | Minimum finding severity to create a ticket (e.g., High) |
| POA&M Sync Enabled | Toggle bidirectional POA&M ↔ Jira sync |
| Field Mappings | Map Infracast fields to custom Jira fields (optional) |
Finding → Jira Issue
When finding-based ticket creation is enabled, Infracast creates a Jira issue for each new finding that meets the severity threshold.
Jira fields populated:
| Jira Field | Infracast Source |
|---|---|
| Summary | [Infracast] {Finding title} - {Asset name} |
| Description | Full finding details, asset info, CVE, CVSS score, remediation steps |
| Priority | Mapped from Infracast severity (Critical → Highest, High → High, etc.) |
| Labels | infracast, security, {asset_type} |
| Custom field: Finding ID | Infracast finding ID (for deduplication) |
| Custom field: Asset | Affected asset name |
Infracast stores the resulting Jira issue key (e.g., SEC-123) and links it back to the finding. Closing the Jira issue updates the finding's status in Infracast.
POA&M → Jira Sync
When POA&M sync is enabled, each Infracast POA&M item creates or updates a corresponding Jira issue. Status changes are synchronized bidirectionally:
| Infracast POA&M Status | Jira Issue Status |
|---|---|
| Open | To Do |
| In Progress | In Progress |
| Resolved | Done |
| Accepted Risk | Done (with risk-accepted label) |
Custom Field Mappings
Additional Infracast finding fields can be mapped to custom Jira fields:
{
"field_mappings": [
{
"infracast_field": "cve",
"jira_field": "customfield_10100"
},
{
"infracast_field": "cvss_score",
"jira_field": "customfield_10101"
}
]
}
Custom Jira field IDs can be found via the Jira REST API:
curl -u user@company.com:API_TOKEN \
"https://yourcompany.atlassian.net/rest/api/3/field" | jq '.[] | select(.custom) | {id, name}'
Troubleshooting
401 Unauthorized
Symptom: Test connection fails with 401 Unauthorized
Checks:
- For Jira Cloud: verify the email address and API token combination is correct
- For Jira Data Center: verify the username and personal access token
- Ensure the account is active and not locked out
403 Forbidden when creating issues
Symptom: Auth succeeds but issue creation returns 403
Checks:
- Verify the service account has
Create Issuespermission in the target project - Check project permission scheme: Project Settings → Permissions
Duplicate issues being created
Symptom: Multiple Jira issues exist for the same Infracast finding
Cause: Infracast uses the finding ID as a deduplication key. This can happen if the integration was re-created.
Fix: Add the Infracast finding ID to existing Jira issues using the configured custom field, then re-enable the integration.
Status transitions not working
Symptom: Closing a Jira issue doesn't update the finding status in Infracast
Checks:
- Verify the Jira webhook is configured (Infracast registers a Jira webhook for status updates): Jira → Settings → System → WebHooks
- Ensure the webhook URL is accessible from Jira's infrastructure