Skip to main content

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 Projects and Create Issues permissions in the target project
    • Edit Issues and Transition Issues permissions for status sync
  • An API token (Jira Cloud) or personal access token (Jira Data Center)

Creating a Jira API Token

Jira Cloud:

  1. Log into Jira as the service account user
  2. Go to Account Settings → Security → API tokens → Create API token
  3. Label: infracast-integration
  4. Copy the generated token

Jira Data Center:

  1. Log into Jira as the service account user
  2. Navigate to Profile → Personal Access Tokens → Create token
  3. Name: infracast-integration
  4. Set an expiration date (recommended)
  5. Copy the generated token
tip

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:

FieldDescription
Jira URLYour Jira instance URL, e.g., https://yourcompany.atlassian.net
Username / EmailService account email (Cloud) or username (Data Center)
API TokenAPI token or personal access token
Project KeyJira 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 SeverityMinimum finding severity to create a ticket (e.g., High)
POA&M Sync EnabledToggle bidirectional POA&M ↔ Jira sync
Field MappingsMap 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 FieldInfracast Source
Summary[Infracast] {Finding title} - {Asset name}
DescriptionFull finding details, asset info, CVE, CVSS score, remediation steps
PriorityMapped from Infracast severity (Critical → Highest, High → High, etc.)
Labelsinfracast, security, {asset_type}
Custom field: Finding IDInfracast finding ID (for deduplication)
Custom field: AssetAffected 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 StatusJira Issue Status
OpenTo Do
In ProgressIn Progress
ResolvedDone
Accepted RiskDone (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:

  1. For Jira Cloud: verify the email address and API token combination is correct
  2. For Jira Data Center: verify the username and personal access token
  3. Ensure the account is active and not locked out

403 Forbidden when creating issues

Symptom: Auth succeeds but issue creation returns 403

Checks:

  1. Verify the service account has Create Issues permission in the target project
  2. 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:

  1. Verify the Jira webhook is configured (Infracast registers a Jira webhook for status updates): Jira → Settings → System → WebHooks
  2. Ensure the webhook URL is accessible from Jira's infrastructure