Log inSkip to main contentSkip to sidebar
Something went wrong, please try again.
Create and track feature requests for Atlassian products.
  • More
    DashboardsProjectsIssues
  • Give feedback to Atlassian
  • Help
    • Jira Core help
    • Keyboard Shortcuts
    • About Jira
    • Jira Credits
  • Log In
IMPORTANT: JAC is a Public system and anyone on the internet will be able to view the data in the created JAC tickets. Please don’t include Customer or Sensitive data in the JAC ticket.

Open issues

  • All issues
  • Open issues
  • Done issues
  • Viewed recently
  • Created recently
  • Resolved recently
  • Updated recently
View all issues and filters
Order by Priority
  1. Suggestion
    ACCESS-1599Ability to create users via REST api without sending invitation emails.
  2. Suggestion
    ACCESS-1872Provide option to expedite deletion of shadow sites
  3. Suggestion
    ACCESS-1913Enhance Cloud Admin REST APIs to support dedicated 'marked for deletion' status for managed accounts
  4. Suggestion
    ACCESS-2022Have the option to enable Jira mobile notifications for users under the External users Policy
  5. Suggestion
    ACCESS-2086Enable automation to retrieve the Discovered Products export - Shadow IT
  6. Suggestion
    ACCESS-2225Organization audit log: For changes to product access groups, show the affected users
  7. Suggestion
    ACCESS-1278Improve Audit log entries about the deletion of draft Confluence pages
  8. Suggestion
    ACCESS-832Enable organization admins to view the authentication policy and method each user utilized when logging into Atlassian.
  9. Suggestion
    ACCESS-1040IP allow list: Allow specific policies to only apply to specific products/pages/Spaces/Projects
  10. Suggestion
    ACCESS-1456Ability to transfer one cloud site/ product to another organisation
  11. Suggestion
    ACCESS-1567Apply IP allowlist restrictions to Connect Apps
  12. Suggestion
    ACCESS-2070Rest APIs to Claim/ Unclaim Accounts
  13. Suggestion
    ACCESS-2113Allow SCIM provisioning for JSM SSO portal-only customers
  14. Suggestion
    ACCESS-2295Enable Use of Wildcards in Audit Logs
  15. Suggestion
    ACCESS-2180Add Manager SCIM attributes to the Managed Accounts profile UI
  16. Suggestion
    ACCESS-1533Allow for org and site admin permissions to be assigned via groups (local or provisioned)
  17. Suggestion
    ACCESS-1431Add ability to automate account unclaiming and claiming
  18. Suggestion
    ACCESS-894Org admins must be able to enforce a particular social login as the log in method
  19. Suggestion
    ACCESS-1260Additional events and information on user activity logs for Confluence
  20. Suggestion
    ACCESS-2028Add User provisioning Troubleshooting log button to Identity provider directory page for Google Workspace sync and Azure AD sync integrations
  21. Suggestion
    ACCESS-2198Email or in-product notification before SCIM API key expiry
  22. Suggestion
    ACCESS-977Ability to exclude or remove a site from User Provisioning (SCIM)
  23. Suggestion
    ACCESS-1074Support Bitbucket, Trello, Statuspage, Atlas, and Jira Product Discovery on the Discovered Products section
  24. Suggestion
    ACCESS-1747Allow administrators to set managed users marketing email subscriptions
  25. Suggestion
    ACCESS-1891Allow admin to see the "Join as Admin" option for Discovered products
  26. Suggestion
    ACCESS-1969User Counts per site/product
  27. Suggestion
    ACCESS-2286Atlassian Guard should part of Jira software as a package
  28. Suggestion
    ACCESS-1879Active filter under user search also shows invited users
  29. Suggestion
    ACCESS-1009Ability to control site/organization access for accounts via user provisioning
  30. Suggestion
    ACCESS-1166Add capabilities to organization REST API
  31. Suggestion
    ACCESS-1397Sync group membership from local default group to synced group
  32. Suggestion
    ACCESS-1847Display Accurate Deletion Date on Admin Portal for Cancelled Subscriptions
  33. Suggestion
    ACCESS-1853Provide option to show the site deletion workflow status and associated date in the Org admin page.
  34. Suggestion
    ACCESS-625Provide support for OpenID Connect (besides SAML) for SSO
  35. Suggestion
    ACCESS-1548Retry on SERVFAIL/network error response from DNS Lookups & fallback to secondary DNS resolution
  36. Suggestion
    ACCESS-2219Ability to configure SSO on a per-project basis in JSM for Portal-Only Customers.
  37. Suggestion
    ACCESS-1587Allow customers to import/export IP allowlist
  38. Suggestion
    ACCESS-2284Allow the Microsoft for nested groups integration to connect with web service credentials.
  39. Suggestion
    ACCESS-1526Allow non-enterprise customers to temporarily have multiple IDPs
  40. Suggestion
    ACCESS-761Support encrypted SAML assertions
  41. Suggestion
    ACCESS-1486Add option to Google Workspace sync settings to sync all groups
  42. Suggestion
    ACCESS-1737Re-sync a provisioned external account with the Provisioned data following email address change
  43. Suggestion
    ACCESS-1784Azure AD Connect Notification for Expired Credentials
  44. Suggestion
    ACCESS-2283Support manager attribute sync for other supported IDPs
  45. Suggestion
    ACCESS-2025Rotating DKIM Keys for Email Domain Verification
  46. Suggestion
    ACCESS-2281At this moment, alerts in Atlassian Guard Detect can't be deleted or sent to an archive area
  47. Suggestion
    ACCESS-2282Grant Org admins a billing admin role when they join discovered products.
  48. Suggestion
    ACCESS-2243Agent users performing actions from JSM portal do not update their last seen values for JSM
  49. Suggestion
    ACCESS-905Provide a web UI to change the managed accounts' public name for organization admins
  50. Suggestion
    ACCESS-1771Reduce the IP address range to be allowlisted based on customer location
Refresh results
<< Previous 1 2 3 4 5Next >>
150 of 671
Uploaded image for project: 'Atlassian Guard'
  1. Atlassian Guard
  2. ACCESS-1771

Reduce the IP address range to be allowlisted based on customer location

Log In
Gathering Interest
Export
undefinedView workflow
XMLWordPrintable

    • Icon: Suggestion Suggestion
    • Resolution: Unresolved
    • IP Allowlisting
      • guard-s7
      • jsw-s11
    • 8
    • 42
    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

      Problem Definition

      Based on Atlassian Cloud IP ranges and domains documentations, admin need to allowlist a big number of IP. Some company will have a concern about allowing a big amount of IP going into their firewall.

      Suggested Solution

      It will be great if Atlassian Cloud have the ability to narrow down the IP based on location.

      Why this is important

      From a business standpoint, there are multitudes of company with different firewall and IP range settings to which it would be best if Atlassian is able to cater to this use cases that helps the customer to maintain their position in the Cloud environment. 

      Workaround

      ~~ No longer workaround, since Server self-hosted is EOL ~~

      The workaround is not effective within the Cloud environment  as it requires the customer to pursue a server solution instead. Nonetheless, if it's critical to the business, adapting the Atlassian server option is the only feasible path right now. 

        was cloned as

        Suggestion - JRACLOUD-78041 Reduce the IP address range to be allowlisted based on product

        • Gathering Interest

              • All
              • Comments
              • Work Log
              • History
              • Activity

              bmcalary added a comment - 02/Apr/2025 2:14 AM

              Hello All, 

              Ben from Atlassian Networking.

              We have built a public tool which allows searching for an IP or filtering the ip list based on use case https://ip-ranges.atlassian.com/tool.html 

               

              Also, we would like to share these additional code examples for working with https://ip-ranges.atlassian.com/ :

              JQ example for getting Atlassian Outbound IPv4 ranges:

              curl https://ip-ranges.atlassian.com/ | jq '.items[] | select((.product[] | contains("jira")) and (.perimeter == "commercial" ) and (.direction | length == 1 and .[0] == "egress") and (.cidr | endswith("/28"))) | .cidr' | sort 
              "104.192.136.240/28"
              "104.192.137.240/28"
              "104.192.138.240/28"
              "104.192.140.240/28"
              "104.192.142.240/28"
              "104.192.143.240/28"
              "13.200.41.224/28"
              "13.236.8.224/28"
              "13.52.5.96/28"
              "16.63.53.224/28"
              "18.136.214.96/28"
              "18.184.99.224/28"
              "18.234.32.224/28"
              "18.246.31.224/28"
              "185.166.140.112/28"
              "185.166.141.112/28"
              "185.166.142.240/28"
              "185.166.143.240/28"
              "43.202.69.96/28"
              "52.215.192.224/28"

              Python example for getting Atlassian inbound ranges, with summarization:

              import ipaddress
              import json
              import urllib.request
              
              response = urllib.request.urlopen("https://ip-ranges.atlassian.com/")
              ip_ranges = json.loads(response.read().decode("utf-8"))["items"]
              
              cidrs_v4: list = []
              cidrs_v6: list = []
              for ip_range in ip_ranges:
                  if all(
                      [
                          "jira" in ip_range["product"],
                          "ingress" in ip_range["direction"],
                          ip_range["perimeter"] == "commercial",
                      ]
                  ):
                      if ipaddress.ip_network(ip_range["cidr"]).version == 4:
                          cidrs_v4.append(ipaddress.ip_network(ip_range["cidr"]))
                      else:
                          cidrs_v6.append(ipaddress.ip_network(ip_range["cidr"]))
              
              print([str(cidr) for cidr in ipaddress.collapse_addresses(cidrs_v4)])
              print([str(cidr) for cidr in ipaddress.collapse_addresses(cidrs_v6)])
              
              ['13.35.248.0/24', '13.200.41.128/25', '13.227.180.0/24', '13.227.213.0/24', '16.63.53.128/25', '43.202.69.0/25', '104.192.136.0/21', '185.166.140.0/22']
              ['2401:1d80:3000::/36'] 

              bmcalary added a comment - 02/Apr/2025 2:14 AM Hello All,  Ben from Atlassian Networking. We have built a public tool which allows searching for an IP or filtering the ip list based on use case https://ip-ranges.atlassian.com/tool.html     Also, we would like to share these additional code examples for working with https://ip-ranges.atlassian.com/ : JQ example for getting Atlassian Outbound IPv4 ranges: curl https: //ip-ranges.atlassian.com/ | jq '.items[] | select((.product[] | contains( "jira" )) and (.perimeter == "commercial" ) and (.direction | length == 1 and .[0] == "egress" ) and (.cidr | endswith( "/28" ))) | .cidr' | sort "104.192.136.240/28" "104.192.137.240/28" "104.192.138.240/28" "104.192.140.240/28" "104.192.142.240/28" "104.192.143.240/28" "13.200.41.224/28" "13.236.8.224/28" "13.52.5.96/28" "16.63.53.224/28" "18.136.214.96/28" "18.184.99.224/28" "18.234.32.224/28" "18.246.31.224/28" "185.166.140.112/28" "185.166.141.112/28" "185.166.142.240/28" "185.166.143.240/28" "43.202.69.96/28" "52.215.192.224/28" Python example for getting Atlassian inbound ranges, with summarization: import ipaddress import json import urllib.request response = urllib.request.urlopen( "https: //ip-ranges.atlassian.com/" ) ip_ranges = json.loads(response.read().decode( "utf-8" ))[ "items" ] cidrs_v4: list = [] cidrs_v6: list = [] for ip_range in ip_ranges: if all( [ "jira" in ip_range[ "product" ], "ingress" in ip_range[ "direction" ], ip_range[ "perimeter" ] == "commercial" , ] ): if ipaddress.ip_network(ip_range[ "cidr" ]).version == 4: cidrs_v4.append(ipaddress.ip_network(ip_range[ "cidr" ])) else : cidrs_v6.append(ipaddress.ip_network(ip_range[ "cidr" ])) print([str(cidr) for cidr in ipaddress.collapse_addresses(cidrs_v4)]) print([str(cidr) for cidr in ipaddress.collapse_addresses(cidrs_v6)]) [ '13.35.248.0/24' , '13.200.41.128/25' , '13.227.180.0/24' , '13.227.213.0/24' , '16.63.53.128/25' , '43.202.69.0/25' , '104.192.136.0/21' , '185.166.140.0/22' ] [ '2401:1d80:3000::/36' ]

              Ali Türkkan added a comment - 13/Apr/2023 2:27 PM

              Hi @bmcalary,

              We are having problems with adding a large number of IP addresses to Network Firewall rules. However, we wanted to try it in a different way. We opened our application completely to the outside and we wanted to see Jira, with which ip address it came to our on-premis application. As a result of our 4 different rest operations, we determined that Jira came to our local application from the following ip addresses.

              18.193.7.22

              3.69.45.100 x2

              3.72.246.5

              However, these ip addresses are not defined in the ip ranges document(https://ip-ranges.atlassian.com/). In addition, it is not defined in AWS's ip ranges(https://ip-ranges.amazonaws.com/ip-ranges.json). That's why even allowing a large number of thread spacings in the relevant document does not solve it.

              In this case, we couldn't find a way to access our on-premis application over the Jira cloud. We think Atlassian should come up with a solution in this case.

              Ali Türkkan added a comment - 13/Apr/2023 2:27 PM Hi @bmcalary, We are having problems with adding a large number of IP addresses to Network Firewall rules. However, we wanted to try it in a different way. We opened our application completely to the outside and we wanted to see Jira, with which ip address it came to our on-premis application. As a result of our 4 different rest operations, we determined that Jira came to our local application from the following ip addresses. 18.193.7.22 3.69.45.100 x2 3.72.246.5 However, these ip addresses are not defined in the ip ranges document( https://ip-ranges.atlassian.com/ ). In addition, it is not defined in AWS's ip ranges( https://ip-ranges.amazonaws.com/ip-ranges.json ). That's why even allowing a large number of thread spacings in the relevant document does not solve it. In this case, we couldn't find a way to access our on-premis application over the Jira cloud. We think Atlassian should come up with a solution in this case.

              bmcalary added a comment - 23/Aug/2022 8:04 AM - edited

              Hello everyone, Ben from Atlassian Network Engineering.

              In January 2022 we made improvements to our documentation at https://confluence.atlassian.com/cloud/atlassian-cloud-ip-ranges-and-domains-744721662.html and specifically to our list of IP addresses in https://ip-ranges.atlassian.com/ so that product, region and directional information are now included.

              Even though regional information is provided, we do not recommend that customers allow-list ingress or egress networks associated with specific regions, but instead include all networks relevant to a product and direction. This is because we optimise our network over time, continuously bringing our cloud closer to all customers by deploying additional edge regions. Due to the underlying technology of the internet, in particular unicast routing and latency-based DNS routing, these improvements can and do result in customer based clients and servers seeing new Atlassian IP addresses (from our published ranges) used for connections over time.

              This issue is not unique to Atlassian, AWS also adds expands and adds additional IP ranges to their products over time, including to the popular services EC2 and Cloudfront in https://ip-ranges.amazonaws.com/ip-ranges.json .

              All that being said, if you wish to proceed, once queried for the desired combination of product, region and direction, the resulting number of CIDR blocks should be short. However, please be mindful of the earlier warning regarding the dangers of filtering by region.

              An example script which can yield the networks one cares about might be:

              import requests
              import json
              import netaddr
              
              # Direction of requests from perspective of Atlassian i.e:
              # ingress = client ---> internet --> Atlassian Cloud (e.g. browser loading Jira)
              # egress = Atlassian Cloud ---> Internet ---> On-premises Server (e.g. Jira Cloud sending webhook or loading remote Email, Jira/Confluence/Bitbucket DC, Jenkins etc)
              direction = "ingress"
              product = "confluence"
              region = "eu-west-1"
              networks = requests.get('https://ip-ranges.atlassian.com/').json()['items']
              
              # Find the networks we want
              allow_list = []
              for network in networks:
              	if all([
              		direction in network.get("direction", []),
              		product in network.get("product", []),
              		region in network.get("region", []) or "global" in network.get("region", [])
              		]):
              		allow_list.append(network["cidr"])
              
              # Use netaddr to merge any networks which are contiguous 
              allow_list = sorted([str(x) for x in netaddr.cidr_merge(allow_list)])
              
              for cidr in allow_list:
              	print(str(cidr))
              

              Which would yield:

              104.192.136.0/21
              185.166.140.0/22
              3.251.213.64/26
              52.215.192.128/25
              

              A iteration on this script which takes into account our warning and excludes regional filtering is:

              import requests
              import json
              import netaddr
              
              # Direction of requests from perspective of Atlassian i.e:
              # ingress = client ---> internet --> Atlassian Cloud
              # egress = Atlassian Cloud ---> Internet ---> On-premises Server (Email, Jira/Confluence/Bitbucket DC), Jenkins etc)
              direction = "ingress"
              product = "confluence"
              networks = requests.get('https://ip-ranges.atlassian.com/').json()['items']
              
              # Find the networks we want
              allow_list = []
              for network in networks:
              	if all([
              		direction in network.get("direction", []),
              		product in network.get("product", [])
              		]):
              		allow_list.append(network["cidr"])
              
              # Use netaddr to merge any networks which are contiguous 
              allow_list = sorted([str(x) for x in netaddr.cidr_merge(allow_list)])
              
              for cidr in allow_list:
              	print(str(cidr))
              

               

              We do recommend using automation or polling this list (or subscribing to the upcoming AWS SNS endpoint which we will be documenting in https://confluence.atlassian.com/cloud/atlassian-cloud-ip-ranges-and-domains-744721662.html ).

              bmcalary added a comment - 23/Aug/2022 8:04 AM - edited Hello everyone, Ben from Atlassian Network Engineering. In January 2022 we made improvements to our documentation at https://confluence.atlassian.com/cloud/atlassian-cloud-ip-ranges-and-domains-744721662.html and specifically to our list of IP addresses in https://ip-ranges.atlassian.com/ so that product , region and directional information are now included. Even though regional information is provided, we do not recommend that customers allow-list ingress or egress networks associated with specific regions, but instead include all networks relevant to a product and direction. This is because we optimise our network over time, continuously bringing our cloud closer to all customers by deploying additional edge regions. Due to the underlying technology of the internet, in particular unicast routing and latency-based DNS routing, these improvements can and do result in customer based clients and servers seeing new Atlassian IP addresses (from our published ranges) used for connections over time. This issue is not unique to Atlassian, AWS also adds expands and adds additional IP ranges to their products over time, including to the popular services EC2 and Cloudfront in https://ip-ranges.amazonaws.com/ip-ranges.json . All that being said, if you wish to proceed, once queried for the desired combination of product, region and direction, the resulting number of CIDR blocks should be short. However, please be mindful of the earlier warning regarding the dangers of filtering by region. An example script which can yield the networks one cares about might be: import requests import json import netaddr # Direction of requests from perspective of Atlassian i.e: # ingress = client ---> internet --> Atlassian Cloud (e.g. browser loading Jira) # egress = Atlassian Cloud ---> Internet ---> On-premises Server (e.g. Jira Cloud sending webhook or loading remote Email, Jira/Confluence/Bitbucket DC, Jenkins etc) direction = "ingress" product = "confluence" region = "eu-west-1" networks = requests.get( 'https://ip-ranges.atlassian.com/' ).json()[ 'items' ] # Find the networks we want allow_list = [] for network in networks: if all ([ direction in network.get( "direction" , []), product in network.get( "product" , []), region in network.get( "region" , []) or " global " in network.get( "region" , []) ]): allow_list.append(network[ "cidr" ]) # Use netaddr to merge any networks which are contiguous allow_list = sorted ([ str (x) for x in netaddr.cidr_merge(allow_list)]) for cidr in allow_list: print ( str (cidr)) Which would yield: 104.192.136.0/21 185.166.140.0/22 3.251.213.64/26 52.215.192.128/25 A iteration on this script which takes into account our warning and excludes regional filtering is: import requests import json import netaddr # Direction of requests from perspective of Atlassian i.e: # ingress = client ---> internet --> Atlassian Cloud # egress = Atlassian Cloud ---> Internet ---> On-premises Server (Email, Jira/Confluence/Bitbucket DC), Jenkins etc) direction = "ingress" product = "confluence" networks = requests.get( 'https://ip-ranges.atlassian.com/' ).json()[ 'items' ] # Find the networks we want allow_list = [] for network in networks: if all ([ direction in network.get( "direction" , []), product in network.get( "product" , []) ]): allow_list.append(network[ "cidr" ]) # Use netaddr to merge any networks which are contiguous allow_list = sorted ([ str (x) for x in netaddr.cidr_merge(allow_list)]) for cidr in allow_list: print ( str (cidr))   We do recommend using automation or polling this list (or subscribing to the upcoming AWS SNS endpoint which we will be documenting in https://confluence.atlassian.com/cloud/atlassian-cloud-ip-ranges-and-domains-744721662.html ).

              Stephen Herd added a comment - 07/Dec/2020 10:45 PM

              All they would need to do for this would be to introduce a NAT for all their outbound traffic.  That way all traffic would originate from a single address vs any one of thousands.

              Stephen Herd added a comment - 07/Dec/2020 10:45 PM All they would need to do for this would be to introduce a NAT for all their outbound traffic.  That way all traffic would originate from a single address vs any one of thousands.

              Cory Galloway added a comment - 02/Dec/2019 4:27 PM

              There are way too many IPs to add.  There has to be a better way.

              Cory Galloway added a comment - 02/Dec/2019 4:27 PM There are way too many IPs to add.  There has to be a better way.

              Daminda Gunawardana added a comment - 04/Oct/2018 7:29 AM

              The workaround of a server solution is not at all acceptable given the many advantages of using a cloud service, especially in the case of a geographically widespread organisation.

              The large number of IPs and IP ranges required to be whitelisted on a firewall to facilitate the cloud service is a complication that a user organisation should be spared of.

              A quick solution to this would be very much appreciated.

              Daminda Gunawardana added a comment - 04/Oct/2018 7:29 AM The workaround of a server solution is not at all acceptable given the many advantages of using a cloud service, especially in the case of a geographically widespread organisation. The large number of IPs and IP ranges required to be whitelisted on a firewall to facilitate the cloud service is a complication that a user organisation should be spared of. A quick solution to this would be very much appreciated.

                Unassigned Unassigned
                nroslan Atiqah Roslan
                Votes:
                37 Vote for this issue
                Watchers:
                49 Start watching this issue

                  Created:
                  08/Mar/2018 7:52 AM
                  Updated:
                  23/May/2025 4:00 AM
                  • Atlassian Jira Project Management Software
                  • About Jira
                  • Report a problem
                  • Privacy policy
                  • Notice at Collection

                  Atlassian