Why Jira works as SOC 2 evidence
SOC 2 controls come in two shapes. Some are periodic: a quarterly access review, a monthly scan review, an annual risk assessment. Others are event-driven: they happen whenever something occurs, such as a code change, a new hire, a departure, an incident or a new vendor. For event-driven controls, a Type 2 auditor typically asks for the population (every occurrence in the observation period), picks a sample from it, and then checks each sampled item for the evidence your policy promises: an approval, a ticket link, a completion date. How many items they sample is their decision.
That is where Jira SOC 2 evidence shines. If the work already happens in Jira, every change, access request and incident is a ticket with dates, a status and a history. Jira's History tab records when someone edits a field or moves the ticket through its workflow, and who did it. Set up well, a ticket answers the two questions an auditor asks of every sample: did the control step happen, and who did it?
Note: Jira Cloud now calls issues "work items" in its interface. This article uses "issue" and "ticket" because JQL and most teams still do.
Which SOC 2 controls Jira can evidence
A common mapping (your auditor confirms what applies to your scope):
| Control | Jira record | Usual criteria | What a sampled ticket should show |
|---|---|---|---|
| Change management | A change ticket per production change | CC8.1 | Linked pull request, approval by someone other than the author, testing, deployment date |
| Access requests | An onboarding or access request ticket | CC6.2, CC6.3 | Who asked, who approved, which systems and roles, when access was granted |
| Access removal | An offboarding ticket | CC6.2, CC6.3 | Departure date, each system removed, completion within your policy's deadline |
| Incidents | An incident ticket plus a post-incident review | CC7.3 to CC7.5 | Detection, severity, response timeline, root cause, follow-up actions |
| Vulnerability remediation | A ticket per finding you fix | CC7.1 | Severity, owner, due date that meets your policy, closure |
| Vendor onboarding | A vendor request ticket | CC9.2 | Risk review done before the contract, the vendor's security report or questionnaire |
Jira change management for SOC 2
Change management is where Jira earns its place. CC8.1 broadly expects changes to infrastructure and software to be authorized, tested and approved before they are implemented. Here is a Jira setup that produces that evidence by default.
A clear definition of a change
Decide which tickets count as production changes, and make them easy to find: a dedicated project, a dedicated issue type, or a label. Whatever you choose, write it into your Change Management Policy so the auditor knows what the population is.
Link every change to its code
If Jira is connected to your source code tool, putting the issue key in the branch name, commit message or pull request title makes that development work appear in the issue's Development panel. JQL can search this too: development[pullrequests].all > 0 finds issues with linked pull requests, which helps you spot changes with no code link.
Record approval as a workflow step
An approval in a comment ("LGTM, ship it") is weak evidence. A workflow transition is stronger, because the History tab records who made it and when. Options, depending on your Jira setup:
- An "Approved" status between review and deployment, so every change must pass through it.
- Conditions on the approve transition (company-managed projects), such as User Is In Group to limit approval to your change approvers, or Separation of Duties, which blocks the transition for anyone who already performed a transition on that issue.
- Validators, such as a Field required validator on the deploy transition, so a change can't move on without, for example, a test evidence or rollback plan field filled in.
- Team-managed projects have workflow rules instead, including Restrict who can move a work item (to a group, role or permission) and rules that validate details before a transition completes.
- Approval steps. Jira Service Management builds approvals into request workflows, and company-managed Jira projects can also add an approval step to a status with an approver field. Check what your plan and project type support.
Handle emergency changes explicitly
Give emergency changes a label or type, allow approval after deployment within a deadline your policy sets, and keep them in the same population.
Jira access request and removal tickets
For CC6.2 and CC6.3, the auditor usually samples new hires and leavers from an HR list and asks for the matching tickets. Make that easy:
- Separate issue types for onboarding, access change and offboarding, ideally in one project, so each population is one query.
- Required fields for the person, their manager or approver, each system and role requested, and the start or departure date. A field required validator on creation or on the approve transition keeps them from being skipped.
- Approval before provisioning. The ticket should show the approval transition happening before the "Access granted" transition, not after.
- A due date on offboarding that matches your access control policy, for example removal within one business day of departure, so late removals are visible.
These tickets also check your quarterly user access review: a leaver who still has access points to an offboarding ticket that was missed or late.
Incidents, remediation tickets and vendors
Incidents and post-incident reviews
Record every security incident as a ticket with severity, detection and resolution times, and a link to its post-incident review. Jira Service Management has linked incident and post-incident review work types (post-incident reviews are on its Premium plan); otherwise a linked ticket or Confluence page works. Keep follow-up actions as linked tickets so their completion is visible.
Vulnerability remediation
Each finding you decide to fix gets a ticket with the severity and a due date set by your policy's remediation timeframes. Link those tickets from the monthly vulnerability scan review and from the penetration test report, so a reviewer can follow a finding from the scan to its fix.
Vendor onboarding
A vendor request ticket created before the contract is signed is a dated record that the security review came first. Attach the vendor's security report or questionnaire and record the risk rating.
JQL filters that produce the audit population
Auditors want a complete list for the period and how it was produced. Write one JQL query per population, save it as a filter, and keep the query text with the evidence. Examples, with your own names:
- Changes deployed in a quarter:
project = CHG AND status CHANGED TO "Deployed" DURING ("2026-07-01", "2026-09-30") - Leavers in a quarter:
project = ACCESS AND issuetype = Offboarding AND created >= "2026-07-01" AND created <= "2026-09-30" - Changes that reached deployment without ever being approved:
project = CHG AND status = "Deployed" AND status WAS NOT "Approved" - Emergency changes:
project = CHG AND labels = emergency-change
The CHANGED and WAS operators search a field's history, but only for a handful of system fields, such as status, assignee and resolution. That is one more reason to record approval as a status rather than a custom field.
Tip: run the exception queries yourself every quarter. Explaining an unapproved change before the audit beats the auditor finding it in a sample.
Exporting issue lists and keeping the audit trail in Jira intact
From search results, Jira Cloud can export CSV (all fields, current fields or filter fields), a document with descriptions and comments, or XML, or open the results in a spreadsheet. A CSV of the saved filter, taken after the period ends, is a common form of population evidence because it fixes the list at a point in time. It holds field values, not change history, so for sampled tickets the auditor generally looks at the ticket itself, History tab included.
- Don't delete tickets. Deleting a Jira Cloud issue generally can't be undone without a backup of your own, and the history goes with it. Close or resolve them instead, and limit who holds the Delete work items permission. Free plans can't restrict permissions with permission schemes, so this needs a paid plan.
- Avoid bulk-closing review tickets. A transition made by a board tidy-up records the wrong person as having done the step.
- Watch workflow changes. Jira's audit log records changes to workflows, permission schemes and issue deletions, which helps you show the controls in Jira were in place all period. It is available to Jira admins on paid plans, not on Free.
Linking Jira issues into Confluence evidence pages
If your compliance evidence lives in Confluence, point it at Jira rather than copying from it:
- The Jira work items macro (type
/jirain the editor) shows a single issue, a count, or a table of issues from a JQL query or a Jira search URL, with the columns you choose. - Smart Links: paste an issue or filter URL and display it inline, as a card or embedded.
Two cautions. People viewing the page see only the Jira issues their own Jira permissions allow, so an auditor reading the page needs Jira access to the relevant projects. And a live list reflects Jira as it is today, not as it was when the period closed. Use the macro for navigation, and attach the dated CSV export as the record of the period. For more on organizing evidence, see SOC 2 evidence collection.
Collecting Jira evidence with Compliance in a Box
Compliance in a Box turns one Confluence space into your SOC 2 program. Its recurring activities are the periodic reviews where your Jira evidence comes together, and each period gets its own evidence page: an ordinary Confluence page, created under the activity page before the period is due (14 days ahead by default), with a checklist and a heading for each item to provide. It is the place to add the Jira macro, link your saved filters and attach that period's exports.
- User Access Review (quarterly, mapped to CC6.2 and CC6.3): the page asks for the systems in scope, the reviewer, the users removed or changed, and the exports attached. Link that quarter's offboarding and access change filters alongside them.
- Vulnerability Scan Review (monthly, CC7.1): scan results and triage decisions, with the remediation tickets for that month linked from the triage section.
- Penetration Test (annual): the report, the findings and the remediation tickets.
- Vendor Risk Review (annual, CC9.2): the vendor list, the SOC reports collected and the risk ratings, which your vendor onboarding tickets feed.
Only the activity owner and Compliance Admins can edit an evidence page, and the app never writes to it after creating it. When the page is complete, the owner selects Submit for approval, and every approver must approve. The approval is bound to the exact page version that was submitted: editing the page before approval cancels the submission, and if someone edits it after approval, the app shows it as edited since approval. The generated Activity Completion Report then links each period to exactly the approved evidence page version, so an auditor sees the Jira population and the sign-off on that population together.
The event-driven rules belong in your policies. The app's SOC 2 content includes a Change Management Policy and a Secure Software Development Policy (both mapped to CC8.1), an Access Control Policy and an Incident Response Plan, each with version-bound approvals. Write your Jira workflow requirements into them.
FAQ
Is Jira enough for SOC 2 change management evidence?
Often it carries most of it, if each change ticket links to its pull request and records an approval by someone other than the author. Auditors may also look at branch protection and deployment settings in your code and deployment tools, so expect to show those too.
Does the auditor need access to Jira?
It depends on your auditor. Some work from exports and screenshots, others ask for read-only access to the relevant projects so they can open sampled tickets and their history themselves. Ask early, and give access through a group you can remove at the end.