Hello Everyone!
Back with a small discovery that’s worth sharing.
If you’ve been around Jira/Confluence Cloud long enough, you’ve probably seen this happen: a small automation starts as a “quick fix” (pull a report, sync a field, create issues from a form), someone generates an API token, and life is good. Then the automation becomes important. Then more automations show up. Then multiple teams start depending on the same REST API access… and suddenly that one token is powering half your workflows.
That’s when Cloud REST APIs stop being “just integrations” and start becoming infrastructure.
Atlassian Cloud REST APIs are everywhere because they’re the simplest way to connect your Atlassian data with the tools teams already use: CI/CD, HR systems, reporting pipelines, partner portals, and internal apps. And the more you rely on them, the more the authentication model matters.
Here’s the good news: Atlassian has been making it easier to do machine-to-machine access properly in Cloud, without tying critical automations to a person.
In Atlassian Cloud, you can create service accounts, non-human identities intended for scripts, integrations, and automations[ref]. For each organization, Atlassian allows up to five service accounts for free (and points to Atlassian Guard if you need more).
Once you have a service account, you can generate credentials for it, like API tokens with scopes, and you can manage and monitor those tokens (created, expiry, last used) from a central place in the administration panel. Alongside API tokens, you can also set up OAuth 2.0 credentials to obtain access tokens for REST API calls.[ref]
Why this matters in real life is pretty simple:
And once you start doing more than one integration, the pattern becomes even more valuable: instead of one token powering everything, you can move toward one service identity per integration (or per team/system). If a token rotates for one workflow, it doesn’t knock over the rest. If one integration gets paused, nothing else needs to be touched.
Quick note, because it comes up a lot: Atlassian also supports OAuth 2.0 (3LO) for apps that need to access APIs on behalf of a user. That’s great for user-context integrations. But for pure machine-to-machine automation, service accounts + scoped credentials are often the more straightforward fit. [ref]
If you’re using Cloud REST APIs today, here’s a simple question worth asking yourself: “If this token expires tonight, who wakes up tomorrow?”
If the answer is “too many people,” service accounts are one of the cleanest ways to bring calm back, without changing what your automations actually do.
Would love to hear how others are handling this: are your automations still tied to person-owned tokens, or have you started moving them to service accounts and per-integration identities?
Also, if you have anything specific, integration, or a way of solving this, do comment. Let's make this post even more informational!
Ananjan_miniOrange
5 comments