<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Grafana Labs blog on Grafana Labs — tagged &#39;security&#39;</title>
<link>https://grafana.com/blog/</link>
<description>Recent content tagged &#39;security&#39; in Grafana Labs blog</description>
<atom:link href="/tags/security/index.xml" rel="self" type="application/rss+xml"/><item>
<title>How to scale access control in Grafana Cloud</title>
<link>https://grafana.com/blog/how-to-scale-access-control-in-grafana-cloud/</link>
<pubDate>Tue, 07 Jul 2026 17:02:52 +0000</pubDate>
<author>Jake Batty</author>
<guid>https://grafana.com/blog/how-to-scale-access-control-in-grafana-cloud/</guid>
<description>
&lt;p&gt;One of the primary reasons organizations adopt Grafana Cloud is to create a single pane of glass across the data they collect from self-hosted systems, cloud providers, and third-party platforms. Bringing those signals together enables richer correlations, reduces tool sprawl, and makes it easier for teams to understand what&#39;s happening across their environment.&lt;/p&gt;&lt;p&gt;But as observability grows and becomes more centralized, access management becomes more important. When infrastructure metrics, application logs, business KPIs, and customer-specific data all live in the same platform, organizations need a scalable way to ensure the right people have access to the right resources without creating additional administrative overhead.&lt;/p&gt;&lt;p&gt;The good news is this can all be done directly in &lt;u&gt;&lt;a href=&quot;https://grafana.com/products/cloud/&quot;&gt;Grafana Cloud&lt;/a&gt;&lt;/u&gt;. To illustrate how this can work in practice, let&#39;s look at a fictional company modeled after a common scenario.&lt;/p&gt;&lt;h2&gt;Meet AcmeCloud (and the challenge of manual provisioning access) &lt;/h2&gt;&lt;p&gt;AcmeCloud, a platform-as-a-service provider, has set up a new Grafana Cloud instance to visualize infrastructure metrics, business metrics, sensitive application logs pertaining to each of their customers, and more—all in one place. Now they need to provision access across their organization.&lt;/p&gt;&lt;p&gt;They have hundreds of users that require access, and different roles have different needs:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Admins need full control of data and users&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;SREs need to configure data sources, explore telemetry, and build dashboards&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Contractors, working on behalf of specific AcmeCloud customers, need to log in but only to see the dashboards and data relevant to their tenant&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;At this scale, manual provisioning isn&#39;t an option. Neither is trying to keep users in sync between AcmeCloud&#39;s identity provider and Grafana Cloud by hand. It&#39;s simply too time-consuming and too prone to errors.&lt;/p&gt;&lt;p&gt;For organizations facing similar growth, this is often the point where access management starts to become a scalability challenge rather than an administrative task.&lt;/p&gt;&lt;h2&gt;Establishing a single source of truth with SSO and SCIM&lt;/h2&gt;&lt;p&gt;Instead of handling everything manually, AcmeCloud relies on SSO (Single Sign-On) for authentication and SCIM (System for Cross-domain Identity Management) for provisioning.&lt;/p&gt;&lt;p&gt;SSO handles how users logged in, while SCIM ensures the right users and groups are automatically available in Grafana Cloud. There are many options for authenticating users in Grafana Cloud, including native integrations with identity providers as well as support for generic authentication methods. To see the full list of supported methods and integrations, &lt;u&gt;&lt;a href=&quot;https://grafana.com/docs/grafana/latest/setup-grafana/configure-access/configure-authentication/&quot;&gt;read more here&lt;/a&gt;&lt;/u&gt;.&lt;/p&gt;&lt;p&gt;As users are added, removed, or updated in the identity provider, those changes are reflected in Grafana Cloud automatically. The same concept applies to groups, which are mapped directly to &lt;u&gt;&lt;a href=&quot;https://grafana.com/docs/grafana/latest/administration/team-management/&quot;&gt;Grafana teams&lt;/a&gt;&lt;/u&gt;. Groups within the identity provider typically organize users by job function, which correlate to a Grafana team in most cases, since users working in the same role typically have the same use cases and permission levels.&lt;/p&gt;&lt;p&gt;The result is a single source of truth for identity, with no need to manually reconcile users or worry about configuration drift.&lt;/p&gt;&lt;p&gt;For organizations implementing this approach, Grafana&#39;s SSO and SCIM integrations make it possible to manage users and groups from the identity provider rather than treating Grafana as a separate identity system.&lt;/p&gt;&lt;p&gt;If you are new to the concept of SCIM provisioning, check out &lt;u&gt;&lt;a href=&quot;https://grafana.com/blog/introducing-scim-provisioning-in-grafana-enterprise-grade-user-management-made-simple/&quot;&gt;this blog&lt;/a&gt;&lt;/u&gt; to learn more.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Tip: &lt;/strong&gt;Establish clear group naming conventions in your identity provider before enabling SCIM. It makes permission mapping significantly easier as your environment grows.&lt;/p&gt;&lt;/blockquote&gt;&lt;h2&gt;Building a layered access model with RBAC&lt;/h2&gt;&lt;p&gt;With users now syncing into Grafana Cloud, the next step is defining what those users can actually do.&lt;/p&gt;&lt;p&gt;AcmeCloud opts to manage access primarily through role-based access control (RBAC).This helps to maintain scalability while providing greater flexibility and security through a combination of basic roles, team memberships, and resource-level permissions. Dive deeper on creating a RBAC strategy and configuration through the &lt;u&gt;&lt;a href=&quot;https://grafana.com/docs/grafana/latest/administration/roles-and-permissions/access-control/plan-rbac-rollout-strategy/&quot;&gt;guidance in our documentation&lt;/a&gt;&lt;/u&gt;.&lt;/p&gt;&lt;p&gt;Basic roles in Grafana set the foundation, with assignments mapped from the identity provider: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Admins are assigned the Admin role&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Internal AcmeCloud users from the SRE team receive the Editor role&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Contractors receive no basic role at all &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This allows the internal SRE team to access dashboards and data broadly. They can build dashboards and alerts, as well as query metrics, logs, and traces across all tenants. All that is missing now is the ability to configure or alter data sources.&lt;/p&gt;&lt;p&gt;Contractors can log in, but they&#39;re presented with an empty Grafana experience by default. For now, there are no available actions to take in Grafana, but they need the ability to view dashboards based on data solely containing their own tenant id.&lt;/p&gt;&lt;p&gt;To build on the permissions provided through basic roles, teams that were provisioned through SCIM are used to layer on additional access.&lt;/p&gt;&lt;p&gt;Users inherit permissions from both their basic role and any teams they belong to. This is an important distinction: permissions in Grafana are additive, not restrictive. A user&#39;s effective access is the combination of all assigned roles and team memberships.&lt;/p&gt;&lt;p&gt;For internal users from the SRE team, a shared team is granted additional capabilities, including the ability to configure and manage data sources. This extends their access beyond what the Editor role provides by default.&lt;/p&gt;&lt;p&gt;For organizations designing their own access model, a useful starting point is to assign the minimum role required and then use teams to grant additional capabilities as needed.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Tip: &lt;/strong&gt;Avoid using highly permissive basic roles as a shortcut. Teams are often a more scalable way to manage access as responsibilities evolve.&lt;/p&gt;&lt;/blockquote&gt;&lt;h2&gt;Restricting dashboard visibility with teams and folders&lt;/h2&gt;&lt;p&gt;Contractors are grouped into tenant-specific teams, with no additional capabilities added at that level. Instead, access is controlled through folder permissions.&lt;/p&gt;&lt;p&gt;Each team is given view access to a specific dashboard folder, so contractors can only see only the dashboards relevant to their tenant and nothing else.&lt;/p&gt;&lt;p&gt;Folder permissions provided a simple and scalable way to partition dashboard visibility without creating separate Grafana instances for every customer.&lt;/p&gt;&lt;p&gt;For AcmeCloud, this approach balanced operational simplicity with tenant isolation. Organizations managing multiple customers, business units, or environments often find folder permissions to be one of the simplest ways to segment dashboard access.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Design your folder structure with future growth in mind. Reorganizing hundreds of dashboards later can become a significant effort.&lt;/p&gt;&lt;/blockquote&gt;&lt;h2&gt;Enforcing data-level isolation with LBAC&lt;/h2&gt;&lt;p&gt;Up to this point, AcmeCloud has been using RBAC to determine what users could access within Grafana Cloud. But dashboard visibility and permissions were only part of the problem. &lt;/p&gt;&lt;p&gt;AcmeCloud also needs to ensure that access to dashboards doesn&#39;t automatically mean access to all underlying data. This is where label-based access control (LBAC) came into play.&lt;/p&gt;&lt;p&gt;By using LBAC, data is scoped by the tenant. That way, even if a user has access to a dashboard, queries are restricted so they only return data associated with their assigned tenant. Read more &lt;u&gt;&lt;a href=&quot;https://grafana.com/docs/grafana/latest/administration/data-source-management/teamlbac/&quot;&gt;here&lt;/a&gt;&lt;/u&gt; for guidance on configuration and limitations.&lt;/p&gt;&lt;p&gt;This adds a final layer of protection, ensuring that customer data remains isolated-even within a shared Grafana instance.&lt;/p&gt;&lt;p&gt;For organizations operating multi-tenant environments, this distinction is important. Dashboard permissions control what users can see, but data-level controls determine what data they can access. Both are required to build a complete access strategy.&lt;/p&gt;&lt;h2&gt;Delivering the right experience for every user&lt;/h2&gt;&lt;p&gt;From the contractor&#39;s perspective, the experience is intentionally limited.&lt;/p&gt;&lt;p&gt;After logging in via SSO, they&#39;re placed into their tenant-specific team and land on a predefined home dashboard. They can only view the dashboards within their assigned folder and they can&#39;t explore beyond that scope—no visibility into other tenants, and no risk of accessing unrelated data.&lt;/p&gt;&lt;p&gt;What made this setup work isn&#39;t any single feature. Instead, it&#39;s how all these features are combined to address scalability, flexibility, and security demands.&lt;/p&gt;&lt;p&gt;SCIM handles scale and lifecycle management. RBAC—implemented through basic roles, teams, and folder permissions—defines who can access resources. LBAC then ensures data-level isolation within those resources.&lt;/p&gt;&lt;p&gt;Individually, each of these capabilities is straightforward. Together, they form a layered access model that allows organizations to onboard large numbers of users, both internal and external, without sacrificing control.&lt;/p&gt;&lt;h2&gt;Bringing it all together&lt;/h2&gt;&lt;p&gt;As Grafana usage grows, access management becomes just as important as observability itself. Designing around user types, scope, and data boundaries from the start makes it possible to scale confidently without losing track of who can see and do what.&lt;/p&gt;&lt;p&gt;The AcmeCloud example demonstrates a pattern that many organizations can adopt: centralize identity with SSO and SCIM, use roles and teams to define capabilities, control visibility through folders, and enforce data isolation with LBAC.&lt;/p&gt;&lt;p&gt;A single pane of glass doesn&#39;t have to mean broad access to everything. With a layered approach to access control, organizations can centralize observability while still maintaining the security and governance required as their environments grow.&lt;/p&gt;
</description></item><item>
<title>Post-incident review for TanStack npm supply chain ransom incident: No unauthorized access to customer production systems</title>
<link>https://grafana.com/blog/post-incident-review-for-tanstack-npm-supply-chain-ransom-incident/</link>
<pubDate>Tue, 23 Jun 2026 20:24:27 +0000</pubDate>
<author>Joe McManus</author>
<guid>https://grafana.com/blog/post-incident-review-for-tanstack-npm-supply-chain-ransom-incident/</guid>
<description>
&lt;p&gt;On May 27, we completed our internal investigation of the &lt;a href=&quot;https://grafana.com/blog/grafana-labs-security-update-latest-on-tanstack-npm-supply-chain-ransomware-incident/&quot;&gt;recent TanStack supply chain ransom incident&lt;/a&gt; and confirmed our initial findings: The incident was strictly limited to Grafana Labs&#39; GitHub environment. There was no unauthorized access to customer production systems, and the Grafana Cloud platform was not affected. &lt;/p&gt;&lt;p&gt;For an additional, independent audit, we engaged Mandiant, a leader in cybersecurity and incident response. We provided them with API access to Grafana Labs&#39; log environment to conduct queries across our systems for their investigation, which started on June 1. &lt;strong&gt;Mandiant confirmed that there was “no evidence of code tampering or repository poisoning within public organizations or production repositories delivered to end users.” &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Since we discovered the incident, the Grafana Labs security teams have been running two parallel workstreams: completing the investigation and hardening our security operations. We are publishing this blog in the spirit of transparency to share more details about our incident response and remediation efforts.&lt;/p&gt;&lt;h2&gt;Summary and impact &lt;/h2&gt;&lt;p&gt;If you’re looking for the short version instead of reading &lt;a href=&quot;https://grafana.com/blog/grafana-labs-security-update-latest-on-tanstack-npm-supply-chain-ransomware-incident/&quot;&gt;our previous updates&lt;/a&gt;, here is the TL;DR: The TanStack supply chain attack hit us on May 11 via the Mini Shai-Hulud campaign. At the time, we believed we had successfully rotated every credential involved in this incident. We missed one. I won’t blame this oversight on hubris; the data we had at the time simply led us to believe our rotation was exhaustive. We were mistaken.&lt;/p&gt;&lt;p&gt;A bad actor utilized that overlooked credential to clone our entire repository collection. They then reached out on May 16, demanding a ransom to prevent a code leak.&lt;/p&gt;&lt;p&gt;Since Grafana Labs is an open source company, you might wonder why this is a concern. While most of our source code is public, we do maintain private repos for things like internal tools and specific Grafana Cloud features. It was a heavy decision, but we stuck to our principles and the &lt;a href=&quot;https://www.fbi.gov/how-we-can-help-you/scams-and-safety/common-frauds-and-scams/ransomware&quot;&gt;FBI’s documented guidance&lt;/a&gt;: We did not pay. &lt;/p&gt;&lt;p&gt;We launched our mitigation efforts immediately, and we confirmed that there was no unauthorized access to customer production systems, and the Grafana Cloud platform was not affected. We also confirmed that while our codebase was downloaded, it was not altered. Our customers and open source users do not need to take any action.&lt;/p&gt;&lt;h2&gt;Grafana Labs’ response &lt;/h2&gt;&lt;p&gt;We were alerted to the incident on a Saturday, and teams across the entire company took action quickly and decisively. (Or to borrow a phrase from one my favorite rappers Big Daddy Kane, ain&#39;t no half-stepping at Grafana Labs.)&lt;/p&gt;&lt;p&gt;In response, Grafana Labs suspended all GitHub applications on May 17, initiated a global code freeze on May 18, and conducted a cross-platform audit of Vault, GitHub, Okta, Kubernetes, AWS, GCP, and host logs to verify that no production customer data was compromised.&lt;/p&gt;&lt;p&gt;In the weeks following, our engineering teams contributed to a comprehensive audit that included but was not limited to:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Completing 1,500 security-focused PR reviews&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Auditing 280 GitHub applications, stripping permissions and removing several&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Scanning 1,200 repositories for any signs of tampering&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Executing 2,300 PR reviews looking for unauthorized changes in a single critical repo&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Finishing infrastructure audits and retiring legacy systems&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Performing wide-ranging new access audits&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;It was a massive undertaking, but each team stepped up in an extraordinary way to do their part. Engineering, security, and cross-functional partners worked tirelessly to respond, demonstrating the collaboration and the shared commitment we have to our community and our customers that I have always valued here at Grafana Labs. &lt;/p&gt;&lt;p&gt;After the initial assessment, we found that in addition to source code, the downloaded content included GitHub repositories that some Grafana Labs teams use to collaborate on and store internal operational information and other details about our business. This includes, for example, business contact names and email addresses that would be exchanged in a professional setting and email addresses that were used in some past marketing campaigns. This was not information pulled from or processed through the use of production systems or the Grafana Cloud platform. &lt;/p&gt;&lt;p&gt;If you wish to know if email addresses with your domain were identified, please reach out to Grafana Labs support. &lt;/p&gt;&lt;h2&gt;Incident timeline&lt;/h2&gt;&lt;p&gt;All times are in UTC &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;19:21 11 May - First malicious code executed on self-hosted runners by Shai Hulud threat actors, leaking credentials. Rotated credentials.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;07:21 14 May - First malicious commit made by the threat actor using grafana-delivery-bot, leaked from Shai Hulud attackers.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;13:28 14 May - Data exfiltration of repos begins.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;20:57 15 May - Data extortion threat actor publishes their extortion demand.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;08:30 16 May - Grafana Labs security team becomes aware of the claimed ransom and begins seeking confirmation.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;17:39 16 May - Compromise confirmed; incident declared.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;19:33 16 May - All known affected credentials and GitHub applications suspended/rotated. Suspension and rotation of all other GitHub applications and accessible credentials begins.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;21:10 16 May - Suspension of all GitHub applications completed.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;16:40 17 May - All code changes made by GitHub application accounts associated with the threat actor identified and reverted.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;16:52 17 May - Root cause, attack chain of compromise identified.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;17:21 17 May - DockerHub credentials determined not compromised.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;17:51 17 May - All malicious workflow runs identified. Final list of affected secrets compiled and rotated. Rotation of all other ci/common secrets from affected repos continues. &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;23:23 17 May - Last of the potentially accessible credentials confirmed rotated or suspended.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;03:08 18 May - Begin freeze of all non-critical code and deployment changes.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;08:00 25 May - All-engineering security hardening week commences.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;10:58 26 May - Commit review completed, service thawing begins. A repository needs to have been fully reviewed and transitioned to use a GitHub application token broker for short-term, finely-scoped credentials before being thawed. &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;10:54 27 May - Transition from repos directly pushing images to DockerHub to pushing to Google Cloud Artifact Registry occurs.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;27 May - Internal investigation complete. No additional attack activity or compromised credentials were discovered. &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;08:00 2 June - All-engineering security hardening week concludes. &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;20:43 3 June - Review of repositories for data loss completed. &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;18 June - Mandiant investigation completed, corroborating internal investigation. &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;What’s next &lt;/h2&gt;&lt;p&gt;The investigation is now closed, but our work to improve security operations at Grafana Labs will continue. Dostoyevsky once noted that &quot;when reason fails, the devil helps!&quot; I’m quoting “Crime and Punishment” to underscore our philosophy: We only wanted to implement changes that actually moved the needle on security. &lt;/p&gt;&lt;p&gt;We’ve spent the past month executing high-impact controls, including a token broker, fine-grained access controls, additional alerting, and static analysis. In addition, we have moved off of certain GitHub Actions and now use more tightly scoped actions with short-lived tokens. &lt;/p&gt;&lt;p&gt;We have also started the process of compartmentalizing our GitHub organizations and isolating all archived repos into a dedicated organization with actions disabled.&lt;/p&gt;&lt;p&gt;We will share an overview of our response efforts and the technical details of how we improved our security posture from our post-incident review in the coming weeks.&lt;/p&gt;
</description></item><item>
<title>Grafana Labs security update: Latest on TanStack npm supply chain ransomware incident</title>
<link>https://grafana.com/blog/grafana-labs-security-update-latest-on-tanstack-npm-supply-chain-ransomware-incident/</link>
<pubDate>Tue, 19 May 2026 18:11:35 +0000</pubDate>
<author>Joe McManus</author>
<guid>https://grafana.com/blog/grafana-labs-security-update-latest-on-tanstack-npm-supply-chain-ransomware-incident/</guid>
<description>
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Updated on June 23, 2026: &lt;/strong&gt;&lt;/em&gt;&lt;em&gt;For more information about our incident response and remediation, please read our &lt;/em&gt;&lt;em&gt;&lt;a href=&quot;https://grafana.com/blog/post-incident-review-for-tanstack-npm-supply-chain-ransom-incident/&quot;&gt;post-incident review blog post &lt;/a&gt;&lt;/em&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Updated on June 1, 2026: &lt;/strong&gt;&lt;/em&gt;&lt;em&gt;Our internal investigation is complete, and it confirms our initial findings that there was no unauthorized access to customer production systems or the Grafana Cloud platform. We have engaged Mandiant, a leader in cybersecurity and incident response, to perform an additional audit, and expect its post-incident report to be completed in June. As part of our standard security practices, we will share in the coming weeks additional information from our post-incident review and ways in which we have improved our security posture.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Should we ever determine that our customers&#39; systems or operations have been impacted, we will notify them directly.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;On May 16, 2026, Grafana Labs confirmed a targeted attack by a cybercrime group that gained unauthorized access to our GitHub repositories and downloaded our codebase. They then issued a ransom demand under threat of data disclosure. &lt;/p&gt;&lt;p&gt;Since we &lt;u&gt;&lt;a href=&quot;https://www.linkedin.com/posts/grafana-labs_we-recently-discovered-that-an-unauthorized-activity-7461591118028251136-qx_C?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAABAC5n4BJlgtgNSZszVPk_CBxwmt60TmGRM&quot;&gt;posted our initial findings&lt;/a&gt;&lt;/u&gt; that day, our investigation has continued, and we are publishing this blog to share more details about our incident response and mitigation. A post-incident report will be published when our investigation is complete. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;To date, the investigation has found no evidence that customer production systems or operations have been compromised. This incident was strictly limited to the Grafana Labs GitHub environment and did not affect our production systems or the Grafana Cloud platform.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;After the initial assessment, we found that in addition to source code, the downloaded content included GitHub repositories that some Grafana Labs teams use to collaborate on and store internal operational information and other details about our business. This includes business contact names and email addresses that would be exchanged in a professional relationship context, not information pulled from or processed through the use of production systems or the Grafana Cloud platform. &lt;/p&gt;&lt;p&gt;To be clear to the users of Grafana Labs&#39; open source projects and the Grafana Cloud platform: our codebase was downloaded, but it was not altered. No action is needed from our customers or open source users at this time.&lt;/p&gt;&lt;p&gt;Our investigation is ongoing as we continue to review logs, telemetry, and all available data within our company-wide GitHub repos. Should we ever determine that any customer&#39;s systems or operations are impacted, we will notify them directly.&lt;/p&gt;&lt;p&gt;At Grafana Labs, earning and maintaining our community’s trust is foundational to everything we do. We recognize that customers rely on us as a trusted partner, and we do not take that responsibility lightly. We are sharing this update in the spirit of transparency because we understand you may have questions and because we take this matter seriously.&lt;/p&gt;&lt;h2&gt;Summary and background &lt;/h2&gt;&lt;p&gt;The incident originated from a TanStack npm supply chain attack via the &lt;u&gt;&lt;a href=&quot;https://snyk.io/blog/tanstack-npm-packages-compromised/&quot;&gt;Mini Shai-Hulud campaign&lt;/a&gt;&lt;/u&gt;. We detected the malicious activity on May 11 and immediately initiated our incident response plan. &lt;/p&gt;&lt;p&gt;We performed analysis and quickly rotated a significant number of GitHub workflow tokens, but a missed token led to the attackers gaining access to our GitHub repositories. A subsequent review confirmed that a specific GitHub workflow we originally deemed not impacted had, in fact, been compromised.&lt;/p&gt;&lt;p&gt;On May 16, we received a demand from a bad actor for a ransom payment to prevent the release of our codebase. Grafana Labs determined the appropriate path forward is &lt;em&gt;not &lt;/em&gt;to pay the ransom. This decision aligns with the &lt;a href=&quot;https://www.fbi.gov/how-we-can-help-you/scams-and-safety/common-frauds-and-scams/ransomware&quot;&gt;FBI’s formal position &lt;/a&gt;that paying a ransom does not guarantee security and only serves to incentivize further criminal enterprise.&lt;/p&gt;&lt;p&gt;As soon as we were contacted by the ransom gang, we launched mitigation efforts, which have included rotating automation tokens, implementing enhanced monitoring, auditing all commits since the May 11 incident, and significantly hardening our GitHub security posture.&lt;/p&gt;&lt;p&gt;We have also notified federal law enforcement and will maintain an ongoing dialogue with them about the situation.  &lt;/p&gt;&lt;h2&gt;Impact and response&lt;/h2&gt;&lt;p&gt;Current findings indicate the scope of this incident is limited to the Grafana Labs GitHub repositories, which include public and private source code along with internal GitHub repos. &lt;/p&gt;&lt;p&gt;There is no evidence that customer production systems or operations have been compromised. &lt;/p&gt;&lt;p&gt;As part of our standard security practices, we will share additional information from our post-incident review when our investigation is complete.&lt;/p&gt;&lt;p&gt;Grafana Labs is also taking steps to increase security measures to protect our systems. We are currently implementing significant measures to further secure our CI/CD (continuous integration and continuous deployment) pipelines and prevent a recurrence of this type of issue.&lt;/p&gt;&lt;p&gt;Our teams remain focused on the continued investigation and the deployment of increased security controls.&lt;/p&gt;
</description></item><item>
<title>Grafana security release: Critical and high severity security fixes for CVE-2026-27876 and CVE-2026-27880</title>
<link>https://grafana.com/blog/grafana-security-release-critical-and-high-severity-security-fixes-for-cve-2026-27876-and-cve-2026-27880/</link>
<pubDate>Thu, 26 Mar 2026 04:43:23 +0000</pubDate>
<author>Mariell Hoversholm</author>
<guid>https://grafana.com/blog/grafana-security-release-critical-and-high-severity-security-fixes-for-cve-2026-27876-and-cve-2026-27880/</guid>
<description>
&lt;p&gt;Today we are releasing Grafana 12.4.2 along with patches for Grafana 12.3, 12.2, 12.1, and 11.6, which include critical and high severity security fixes. We recommend that you install the newly released versions as soon as possible.&lt;/p&gt;&lt;p&gt;Grafana 12.4.2 with security fixes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;/grafana/download/12.4.2&quot;&gt;Download Grafana 12.4.2&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Grafana 12.3.6 with security fixes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;/grafana/download/12.3.6&quot;&gt;Download Grafana 12.3.6&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Grafana 12.2.8 with security fixes: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;/grafana/download/12.2.8&quot;&gt;Download Grafana 12.2.8&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Grafana 12.1.10 with security fixes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;/grafana/download/12.1.10&quot;&gt;Download Grafana 12.1.10&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Grafana 11.6.14 with security fixes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href=&quot;/grafana/download/11.6.14&quot;&gt;Download Grafana 11.6.14&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;As per our security policy, Grafana Labs customers have received security patched versions two weeks in advance under embargo, and Grafana Cloud has been patched. &lt;/p&gt;&lt;p&gt;We have also coordinated closely with all cloud providers licensed to offer Grafana Cloud. They received early notification under embargo and confirmed that their offerings are secure at the time of this announcement. This is applicable to Amazon Managed Grafana and Azure Managed Grafana.&lt;/p&gt;&lt;h2&gt;CVE-2026-27876: SQL expressions arbitrary file write enabling remote code execution&lt;/h2&gt;&lt;p&gt;Grafana&#39;s SQL expressions feature enables transforming query data with familiar SQL syntax. This syntax, however, also permitted writing arbitrary files to the file system in such a way that one could chain several attack vectors to achieve remote code execution.&lt;/p&gt;&lt;p&gt;The CVSS score for this vulnerability is 9.1 CRITICAL (&lt;u&gt;&lt;a href=&quot;https://www.first.org/cvss/calculator/3.1&quot;&gt;CVSS link&lt;/a&gt;&lt;/u&gt;).&lt;/p&gt;&lt;p&gt;&lt;strong&gt;The following prerequisites are required for this vulnerability:&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Access to execute data source queries (Viewer permissions or higher)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The sqlExpressions feature toggle must be enabled on the Grafana instance.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Impact&lt;/h2&gt;&lt;p&gt;An attacker with access to execute data source queries could overwrite a Sqlyze driver or write an AWS data source configuration file in order to achieve full remote code execution. We have confirmed this vulnerability could be exploited to acquire an SSH connection to the Grafana host.&lt;/p&gt;&lt;h2&gt;Impacted versions&lt;/h2&gt;&lt;p&gt;Grafana versions v11.6.0 and later are impacted by this vulnerability. &lt;/p&gt;&lt;h2&gt;Solutions and mitigations&lt;/h2&gt;&lt;p&gt;We recommend upgrading to one of the patched versions listed above as soon as possible.&lt;/p&gt;&lt;p&gt;If an upgrade is not immediately possible, the following workarounds reduce risk. Note: these may cause disruption to Grafana users and do not fully remediate the vulnerability.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Option 1:&lt;/strong&gt; Disable the sqlExpressions feature toggle.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Option 2:&lt;/strong&gt; Perform ALL of the following:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;If you have Sqlyze installed: update to at least v1.5.0 or disable it.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Disable all AWS data sources you have installed.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;CVE-2026-27880: Unauthenticated denial-of-service via OpenFeature endpoint&lt;/h2&gt;&lt;p&gt;Grafana&#39;s OpenFeature feature flag validation endpoints do not require authentication and accept unbounded user input. This input is read into memory.&lt;/p&gt;&lt;p&gt;The CVSS score for this vulnerability is 7.5 HIGH (&lt;u&gt;&lt;a href=&quot;https://www.first.org/cvss/calculator/3.1&quot;&gt;CVSS link&lt;/a&gt;&lt;/u&gt;).&lt;/p&gt;&lt;h2&gt;Impact&lt;/h2&gt;&lt;p&gt;An attacker could crash the Grafana server by sending requests that exhaust available memory.&lt;/p&gt;&lt;h2&gt;Impacted versions&lt;/h2&gt;&lt;p&gt;Grafana versions v12.1.0 and later are impacted by this vulnerability. &lt;/p&gt;&lt;h2&gt;Solutions and mitigations&lt;/h2&gt;&lt;p&gt;We recommend upgrading to one of the patched versions listed above as soon as possible.&lt;/p&gt;&lt;p&gt;If an upgrade is not immediately possible, any of the following workarounds reduces risk:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Deploy Grafana in a highly available environment with automatic restarts.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Implement a reverse proxy in front of Grafana that limits input payload size. Cloudflare does this by default. Nginx supports this &lt;u&gt;&lt;a href=&quot;https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size&quot;&gt;via explicit configuration&lt;/a&gt;&lt;/u&gt;.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Timeline and post-incident review&lt;/h2&gt;&lt;p&gt;Here is a detailed incident timeline. All times are in UTC.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;CVE-2026-27876&lt;/strong&gt;&lt;/p&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;&lt;p&gt;&lt;strong&gt;Date/Time (UTC)&lt;/strong&gt;&lt;/p&gt;&lt;/th&gt;&lt;th&gt;&lt;p&gt;&lt;strong&gt;Event&lt;/strong&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2025-02-06&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;sqlExpressions feature reimplemented with MySQL syntax and released in v11.6.0&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2026-02-23 13:33&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Internal incident declared&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2026-02-23 15:08&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Grafana Cloud patched&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2026-03-09&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Private release issued to customers under embargo&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2026-03-25&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Public release&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2026-03-26 04:00&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Blog published&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;CVE-2026-27880&lt;/strong&gt;&lt;/p&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;&lt;p&gt;&lt;strong&gt;Date/Time (UTC)&lt;/strong&gt;&lt;/p&gt;&lt;/th&gt;&lt;th&gt;&lt;p&gt;&lt;strong&gt;Event&lt;/strong&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2025-06-27&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;New OpenFeature evaluation endpoint introduced and released in v12.1.0&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2026-02-24 13:12&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Internal incident declared&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2026-02-24 17:49&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Grafana Cloud stacks not behind Cloudflare were patched; Cloudflare-backed stacks were not affected&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2026-03-09&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Private release issued to customers under embargo&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2026-03-25&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Public release&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2026-03-26 04:00&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Blog published&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;/p&gt;&lt;h2&gt;Acknowledgements&lt;/h2&gt;&lt;p&gt;We would like to thank Liad Eliyahu, Head of Research at Miggo Security, for responsibly disclosing CVE-2026-27876 through our bug bounty program.&lt;/p&gt;&lt;p&gt;CVE-2026-27880 was discovered internally by the Grafana Labs security team.&lt;/p&gt;&lt;h2&gt;Reporting security issues&lt;/h2&gt;&lt;p&gt;If you think you have found a security vulnerability, please go to our &lt;u&gt;&lt;a href=&quot;/legal/report-a-security-issue/&quot;&gt;Report a security issue&lt;/a&gt;&lt;/u&gt; page to learn how to send a security report.&lt;/p&gt;&lt;p&gt;Grafana Labs will send you a response indicating the next steps in handling your report. After the initial reply to your report, the security team will keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; We ask you to not disclose the vulnerability before it has been fixed and announced, unless you received a response from the Grafana Labs security team that you can do so.&lt;/p&gt;&lt;p&gt;You can also read more about our &lt;u&gt;&lt;a href=&quot;https://app.intigriti.com/programs/grafanalabs/grafanaossbbp/&quot;&gt;bug bounty program&lt;/a&gt;&lt;/u&gt; and have a look at our &lt;u&gt;&lt;a href=&quot;/security/hall-of-fame/&quot;&gt;Security Hall of Fame&lt;/a&gt;&lt;/u&gt;.&lt;/p&gt;&lt;h2&gt;Security announcements&lt;/h2&gt;&lt;p&gt;We maintain a &lt;u&gt;&lt;a href=&quot;/security/security-advisories/&quot;&gt;security advisories page&lt;/a&gt;&lt;/u&gt;, where we always post a summary, remediation, and mitigation details for any patch containing security fixes. You can also subscribe to our &lt;u&gt;&lt;a href=&quot;/blog/index.xml&quot;&gt;RSS feed&lt;/a&gt;&lt;/u&gt;.&lt;/p&gt;&lt;h2&gt;&lt;/h2&gt;
</description></item><item>
<title>Bridge the DevSec divide: Using Grafana Cloud and Miggo for runtime protection</title>
<link>https://grafana.com/blog/grafana-cloud-and-miggo-for-runtime-protection/</link>
<pubDate>Tue, 17 Mar 2026 15:17:47 +0000</pubDate>
<author>Jonathan Price</author>
<guid>https://grafana.com/blog/grafana-cloud-and-miggo-for-runtime-protection/</guid>
<description>
&lt;p&gt;&lt;em&gt;Note: This blog post is co-authored by Daniel Shechter, CEO and co-founder of Miggo Security.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Modern runtime security is critical to understand complex systems and detect and protect against attacks, especially in rapidly evolving cloud native architectures. For many security teams, however, achieving deep visibility into runtime risks remains a moving target. &lt;/p&gt;&lt;p&gt;To address this challenge, Grafana Labs and &lt;u&gt;&lt;a href=&quot;https://www.miggo.io/&quot;&gt;Miggo Security&lt;/a&gt;&lt;/u&gt;, a leader in AI-driven runtime security and application detection and response (ADR), have partnered on a joint solution to deliver evidence-based runtime security without the typical runtime costs. The solution builds directly on existing production telemetry in &lt;u&gt;&lt;a href=&quot;/products/cloud/&quot;&gt;Grafana Cloud&lt;/a&gt;&lt;/u&gt; to help organizations determine what is truly exposed, what actually executes in production, and which vulnerabilities represent real, exploitable risk. Most importantly, it does this without duplicating instrumentation or introducing operational overhead.&lt;/p&gt;&lt;p&gt;In this blog, we’ll explore why securing modern cloud native workloads has traditionally been a challenge, the limitations of traditional runtime approaches, and how building security directly on top of Grafana Cloud represents a major step forward for CISOs, application owners, and platform engineering teams.&lt;/p&gt;&lt;h2&gt;The problem: Securing cloud native applications&lt;/h2&gt;&lt;p&gt;The shift toward microservices has fundamentally changed the attack surface. As development velocity increases, it’s more difficult than ever to understand how your systems really function, how they might be attacked, or how they’re already under attack today. &lt;/p&gt;&lt;p&gt;Traditional security methods like static application security testing (SAST) and software composition analysis (SCA) rely on scanning our code and dependencies at build time. While this can surface potential issues in our own code and every published vulnerability possibly present in our dependencies, the true positive rate is painfully low: only 2% of discovered dependency vulnerabilities are actually exploitable. The other 98% exists in code the running system never calls. Tools like dynamic or interactive application security testing (DAST/IAST) try to mitigate this problem, but trade false positive rates for intensive setup and maintenance.&lt;/p&gt;&lt;p&gt;While widely utilized, such approaches are no longer sufficient. Teams are currently overloaded with vulnerabilities that turn out to be irrelevant, while actual critical vulnerabilities go unnoticed. The common practice of pushing this noise onto developers or ops teams to manage erodes trust: when 98% of the issues we ship to them have no real risk, developers are right not to trust us. &lt;/p&gt;&lt;h2&gt;The promise and pain of runtime security&lt;/h2&gt;&lt;p&gt;The solution the industry is gravitating towards is runtime security. If we deploy standard sensors on our running workloads, we can know what services are actually running in production, what they connect to, and what functions they actually call. Not only can we see how connected and sensitive a service is to prioritize it, we can see if a vulnerability is reachable and if the vulnerable section of code is actually called. This information about reachability allows us to immediately focus on the 2% of vulnerabilities that actually matter. We can show owning software teams exactly why a vulnerability matters, building trust rather than hurting it.&lt;/p&gt;&lt;p&gt;This has great promise, but also comes with challenges. There are a few key reasons why achieving visibility into runtime risk is particularly difficult.&lt;/p&gt;&lt;h3&gt;Challenge 1: The deployment tax&lt;/h3&gt;&lt;p&gt;Runtime security has a cost. &lt;/p&gt;&lt;p&gt;Runtime application self-protection (RASP) of the 2010s proved that deep runtime instrumentation could unlock real application visibility, but at a steep cost: performance drag, vendor lock-in, and fragile upgrades. &lt;/p&gt;&lt;p&gt;eBPF emerged over the 2020s as an answer, sidestepping runtime dependencies by hooking directly into the kernel. This dramatically improves ease of deployment over RASP, and has led to hundreds of vendors leveraging eBPF sensors to collect runtime signals to power a range of security products. This innovation, again, comes with a cost: each eBPF sensor can add 1-3% of compute overhead. There is no standardization for this collection in the security industry, so security teams can end up paying different vendors to collect and store the same data to power their different products, and further pay compute overhead over 10% on their running workloads. &lt;/p&gt;&lt;p&gt;This further strains relationships and erodes trust: platform teams do not want heavy security sensors slowing down their production environments—or worse, breaking them.&lt;/p&gt;&lt;h3&gt;Challenge 2: Runtime context&lt;/h3&gt;&lt;p&gt;Most runtime security solutions operate at the level of a single process or container, blind to broader context. Cutting through the noise requires understanding the actual threat model: whether an attacker can realistically exploit a vulnerability, whether the vulnerable service is even reachable, and the potential blast radius.&lt;/p&gt;&lt;p&gt;The result is an overwhelmed security team, fielding both static and runtime findings with no principled way of connecting and prioritizing. Fixing everything is impossible, and prioritizing incorrectly means expending energy without reducing risk.&lt;/p&gt;&lt;h3&gt;Challenge 3: The affected &lt;code&gt;programRoutine&lt;/code&gt; problem&lt;/h3&gt;&lt;p&gt;In order to understand if you’re running a vulnerable piece of code from a dependency, we need to know the actual pieces of code we’re running. The way this is intended to work is that dependency maintainers include a &lt;code&gt;programRoutine&lt;/code&gt; (a specific method or function) in the list of &lt;code&gt;affected&lt;/code&gt; systems in a CVE record. Then, we can look for invocations of that function on our running services, and know if the vulnerability is reachable. &lt;/p&gt;&lt;p&gt;This would be great, if dependency maintainers consistently included these definitions in their CVE records. Unfortunately, they don’t; less than 10% of CVE records contain an affected &lt;code&gt;programRoutine&lt;/code&gt;. And actually, Grafana Labs is one of those maintainers not consistently including these in our CVEs records. To be clear, this is partially intentional: calling out the affected &lt;code&gt;programRoutine&lt;/code&gt; would make it easier to write an exploit. However, this still limits the full promise of runtime visibility. &lt;/p&gt;&lt;h2&gt;Enter Miggo and Grafana Cloud: Execution-backed security with zero added complexity&lt;/h2&gt;&lt;p&gt;All of these challenges are solvable. While every runtime security vendor has their own bespoke sensor, they do not need to. And this doesn’t require defining new standards; the standards already exist. Runtime security depends on the same core system signals, such as metrics, logs, traces, and profiles, that already exist within most organizations’ observability stacks.&lt;/p&gt;&lt;p&gt;Grafana Labs and Miggo are excited to announce our partnership leveraging these synergies. Grafana Cloud customers already collect the traces and profiles that are at the core of runtime security. Instead of adding new sensors and re-collecting the same signals, Miggo builds directly on &lt;u&gt;&lt;a href=&quot;/products/cloud/traces/&quot;&gt;Grafana Cloud Traces&lt;/a&gt;&lt;/u&gt;, the fully managed distributed tracing system powered by Tempo, and &lt;u&gt;&lt;a href=&quot;/products/cloud/profiles/&quot;&gt;Grafana Cloud Profiles&lt;/a&gt;&lt;/u&gt;, the hosted continuous profiling tool powered by Pyroscope. This solves the deployment tax challenge, as this model requires deploying and maintaining zero additional sensors for security teams. &lt;/p&gt;&lt;p&gt;With Miggo’s advanced vulnerability and system analysis, we also solve the runtime context and affected &lt;code&gt;programRoutine&lt;/code&gt; challenges. Miggo’s vulnerability research team finds the affected functions not disclosed in CVEs, giving users true visibility into what vulnerabilities are actively exploitable in their systems. Miggo further analyzes the telemetry data to give security teams a complete picture of their system state, and integrates with security systems to drive mitigation. &lt;/p&gt;&lt;p&gt;In a nutshell, the process works like this: &lt;/p&gt;&lt;h3&gt;Step 1: Collect (Grafana Cloud)&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Developers collect telemetry data on their systems leveraging the same tools they already use, including direct instrumentation, &lt;u&gt;&lt;a href=&quot;/docs/alloy/latest/&quot;&gt;Alloy&lt;/a&gt;&lt;/u&gt;, &lt;u&gt;&lt;a href=&quot;/docs/beyla/latest/&quot;&gt;Beyla&lt;/a&gt;&lt;/u&gt;, or any other OTel collector &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Telemetry data is ingested into &lt;strong&gt;Grafana Cloud Traces&lt;/strong&gt; (request flows, service interactions, endpoints) and &lt;strong&gt;Grafana Cloud Profiles &lt;/strong&gt;(what code paths actually ran)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Step 2: Analyze (Miggo)&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Ingest via Grafana Cloud APIs, correlate with vulnerability intel&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Determine reachability, exposure, blast radius, and exploitability indicators&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Build dynamic runtime application graph/inventory&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Step 3: Prioritize&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Execution-backed prioritization&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Focus remediation on what materially impacts risk&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Step 4: Mitigate&lt;/h3&gt;&lt;p&gt;&lt;u&gt;&lt;a href=&quot;https://www.miggo.io/product/miggo-waf-copilot&quot;&gt;Miggo WAF Copilot&lt;/a&gt;&lt;/u&gt; generates vulnerability-specific protections (virtual patches) based on observed traffic patterns.&lt;/p&gt;&lt;h2&gt;Use cases&lt;/h2&gt;&lt;p&gt;Below, we walk through three examples of how this powerful combination solves critical security challenges.&lt;/p&gt;&lt;h3&gt;1. Establishing runtime truth &lt;/h3&gt;&lt;p&gt;The first challenge is visibility: security starts with knowing what’s running. Miggo constructs a dynamic runtime application graph and continuously updated inventory of services, APIs, and third parties derived directly from Grafana Cloud telemetry.&lt;/p&gt;&lt;p&gt;By building an inventory and behavioral baseline of the application, MCP server, or agent, customers get an exposure map and Runtime BOM without interrupting developers&#39; processes. Runtime data eliminates outdated architecture maps and confusion regarding what was planned vs. implemented. You get an up-to-date view of what’s actually running.&lt;/p&gt;&lt;h3&gt;2. Evidence-based prioritization &lt;/h3&gt;&lt;p&gt;Once you establish what the application looks like, you can move beyond guessing to providing an opinion based on runtime truth. Miggo correlates vulnerabilities with Grafana Cloud Traces and Cloud Profiles to determine reachability and execution.&lt;/p&gt;&lt;p&gt;Traces bring environment context into vulnerabilities. Consider two services: an internet-facing API with access to PII in Postgres and Amazon S3 vs. an internal reporting job that runs every 24 hours and never touches user input. To your team, a high vulnerability on the former is more pressing than on the latter.&lt;/p&gt;&lt;p&gt;Profiles flesh out execution. Code can sit on disk and never run, yet still trigger scanner alerts. By analyzing profiles, Miggo determines whether a dependency is actually loaded—and whether a vulnerable function is ever called.&lt;/p&gt;&lt;p&gt;By validating static findings against runtime truth, organizations see a 60–90% reduction in critical vulnerability backlog noise. Because the evidence comes from traces and profiles that engineering and ops already work with, findings land with credibility and help bridge the divide between dev and security teams.&lt;/p&gt;&lt;h3&gt;3. Immediate mitigation via WAF Copilot&lt;/h3&gt;&lt;p&gt;Runtime mitigation tools like pod termination are blunt instruments: they aren’t tailored to a specific vulnerability or a service’s runtime context, and carry the risk of disrupting production.&lt;/p&gt;&lt;p&gt;To reduce this friction, Miggo guides remediation with virtual patching via WAF Copilot. This provides a faster, less risky alternative to traditional patching, reducing the exposure window immediately while development teams implement permanent code fixes. WAF Copilot understands what a vulnerability does and how it can be exploited, generating precise rules that are robust against multiple exploitation patterns without blocking legitimate traffic.&lt;/p&gt;&lt;h2&gt;What’s next? See the solution live at RSAC 2026&lt;/h2&gt;&lt;p&gt;We are just scratching the surface of what is possible when you embed security directly into observability workflows. This Miggo and Grafana Cloud integration delivers immediate ROI, including improved audit defensibility with evidence-based reporting and zero added complexity to the observability stack.&lt;/p&gt;&lt;p&gt;If you are attending &lt;u&gt;&lt;a href=&quot;https://www.rsaconference.com/&quot;&gt;RSAC 2026&lt;/a&gt;&lt;/u&gt;, we invite you to see the solution live:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Joint workshop:&lt;/strong&gt; Join us for our session &lt;em&gt;&quot;Security Observability: Turning Production Telemetry into Real Security Decisions&quot;&lt;/em&gt; on March 25 at 3:00 PM.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Live demos:&lt;/strong&gt; Visit the Miggo Security booth #6573 in the North Hall, or check out one of our two private sessions.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;For more details or to schedule a meeting on-site, &lt;u&gt;&lt;a href=&quot;https://www.miggo.io/security-observability-turning-production-telemetry-into-real-security-decisions&quot;&gt;click here&lt;/a&gt;&lt;/u&gt;.&lt;/p&gt;&lt;p&gt;To learn more about how Grafana Labs and Miggo Security are turning production telemetry into real security decisions, visit &lt;u&gt;&lt;a href=&quot;https://www.miggo.io/book-a-grafana-miggo-demo&quot;&gt;here&lt;/a&gt;&lt;/u&gt;.&lt;/p&gt;
</description></item><item>
<title>The Grafana Cloud identity blueprint: balancing security and scale</title>
<link>https://grafana.com/blog/the-grafana-cloud-identity-blueprint-balancing-security-and-scale/</link>
<pubDate>Tue, 24 Feb 2026 20:38:39 +0000</pubDate>
<author>Sarah Constant</author>
<guid>https://grafana.com/blog/the-grafana-cloud-identity-blueprint-balancing-security-and-scale/</guid>
<description>
&lt;p&gt;If you&#39;ve ever rolled out Grafana Cloud to a growing engineering organization, this pattern may sound familiar:&lt;/p&gt;&lt;p&gt;Everything feels simple at first. You invite a few teammates, give them access, and dashboards start appearing. Then the team grows. Then the number of stacks grows. Over time, a model that once felt fast and empowering starts to feel risky, difficult to understand, and even harder to undo.&lt;/p&gt;&lt;p&gt;This post is about avoiding that moment.&lt;/p&gt;&lt;p&gt;In a &lt;u&gt;&lt;a href=&quot;/blog/managing-access-in-grafana-a-single-stack-journey-with-teams-roles-and-real-world-patterns/&quot;&gt;previous post&lt;/a&gt;&lt;/u&gt;, I described the single-stack model, where &lt;a href=&quot;/docs/grafana/latest/administration/team-management/?pg=blog&amp;plcmt=body-txt&quot;&gt;Grafana teams&lt;/a&gt; and folders handle multi-tenancy inside a single Grafana stack. That model scales well operationally, but only if your identity and access approach scales alongside it.&lt;/p&gt;&lt;p&gt;As organizations grow, a new question tends to surface:&lt;em&gt; How do I give engineers fast and automated access to Grafana without turning my entire Grafana Cloud account into a shared administrative surface?&lt;/em&gt;&lt;/p&gt;&lt;p&gt;The answer is not more manual role assignments or more process. Instead, it is a layered identity model, with SCIM acting as the mechanism that allows that model to work reliably at scale.&lt;/p&gt;&lt;h2&gt;The starting point: standard Grafana Cloud access&lt;/h2&gt;&lt;p&gt;Most teams begin with the default Grafana Cloud access model.&lt;/p&gt;&lt;p&gt;Users are added directly in the &lt;u&gt;&lt;a href=&quot;/docs/grafana-cloud/security-and-account-management/cloud-portal/?pg=blog&amp;plcmt=body-txt&quot;&gt;Grafana Cloud portal&lt;/a&gt;&lt;/u&gt; and assigned an &lt;u&gt;&lt;a href=&quot;/docs/grafana-cloud/security-and-account-management/authentication-and-permissions/cloud-roles/&quot;&gt;organization role&lt;/a&gt;&lt;/u&gt; such as admin, editor, or viewer. That role is automatically inherited as a &lt;u&gt;&lt;a href=&quot;/docs/grafana-cloud/security-and-account-management/authentication-and-permissions/access-control/rbac-fixed-basic-role-definitions/?pg=blog&amp;plcmt=body-txt#basic-role-assignments&quot;&gt;basic role&lt;/a&gt;&lt;/u&gt; by every Grafana stack in the account.&lt;/p&gt;&lt;p&gt;Authentication is intentionally simple. Users can sign in with a username and password or with a social login provider such as Google or GitHub. For small teams, this simplicity is a major advantage. You can be productive almost immediately, without investing time in identity integration.&lt;/p&gt;&lt;p&gt;At the same time, this model relies on an assumption that does not hold indefinitely. It assumes that anyone who needs Grafana access should also have account-wide visibility and permissions.&lt;/p&gt;&lt;p&gt;As usage grows, that assumption becomes difficult to defend. Universal access is harder to audit, harder to govern, and riskier to revoke cleanly. The solution is not to abandon simplicity, but to separate where Grafana is administered from where it is actually used.&lt;/p&gt;&lt;h2&gt;Why SCIM matters for operating at scale&lt;/h2&gt;&lt;p&gt;For organizations using Okta or Entra ID, &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/setup-grafana/configure-access/configure-scim-provisioning/?pg=blog&amp;plcmt=body-txt&quot;&gt;SCIM provisioning&lt;/a&gt;&lt;/u&gt; is what makes a layered identity model practical.&lt;/p&gt;&lt;p&gt;Rather than manually creating and maintaining teams, SCIM allows your identity provider to push users and teams into Grafana automatically, with membership already defined. Your IdP becomes the system of record for who exists and where they belong.&lt;/p&gt;&lt;p&gt;SCIM also enables immediate deprovisioning. When a user is disabled in your identity provider, their access to the Grafana stack is removed in near real-time. This significantly reduces exposure from stale accounts and offboarding gaps.&lt;/p&gt;&lt;p&gt;Just as importantly, SCIM enables day-zero readiness when combined with &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/administration/roles-and-permissions/access-control/?pg=blog&amp;plcmt=body-txt&quot;&gt;RBAC&lt;/a&gt;&lt;/u&gt;, &lt;u&gt;&lt;a href=&quot;/docs/grafana/next/administration/roles-and-permissions/folder-access-control/?pg=blog&amp;plcmt=body-txt&quot;&gt;folders,&lt;/a&gt;&lt;/u&gt; and &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/administration/data-source-management/teamlbac/?pg=blog&amp;plcmt=body-txt&quot;&gt;data source permissions&lt;/a&gt;&lt;/u&gt;. New engineers arrive to find their dashboards, folders, and team memberships already in place, without manual setup or access requests.&lt;/p&gt;&lt;p&gt;As organizations grow, manual access models do not merely slow things down. They eventually become a source of operational and security risk. With SCIM now generally available for Grafana Cloud stacks, this approach is accessible well before teams reach that breaking point.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Note: SCIM provisioning uses credentials (a token or service account) to automate provisioning. Treat it like an admin credential: store it in a vault/secret manager, rotate it regularly, restrict who can create/manage it, and monitor provisioning activity for anomalies.&lt;/p&gt;&lt;/blockquote&gt;&lt;h2&gt;Layer one: the Grafana Cloud portal as an administrative vault&lt;/h2&gt;&lt;p&gt;The Grafana Cloud portal acts as the control plane for your account. It governs billing, stack creation, support access, and account-level configuration. Because it represents your entire observability footprint, it benefits from being treated as a tightly controlled administrative space.&lt;/p&gt;&lt;p&gt;In practice, this means that access to the portal should be limited to a small group of platform or observability administrators. Most engineers don’t need to sign in to grafana.com at all. Keeping this group small reduces the potential blast radius of mistakes and simplifies compliance and auditing.&lt;/p&gt;&lt;p&gt;Access to the portal is best managed declaratively or through your identity provider. Terraform-based management and private SSO both ensure that authentication strength and lifecycle policies live in your IdP rather than being managed manually in Grafana.&lt;/p&gt;&lt;p&gt;It is also a good practice to maintain a single &quot;break glass&quot; account. This account should not rely on SSO and should be stored securely in a password vault with access reviewed and tested periodically. Its purpose is to ensure you retain access if your identity provider is unavailable.&lt;/p&gt;&lt;p&gt;Bottom line: This layer is intentionally restrictive. The Grafana Cloud portal is designed for operators, not for day-to-day engineering work.&lt;/p&gt;&lt;h2&gt;Layer two: the Grafana stack as an automated workspace&lt;/h2&gt;&lt;p&gt;The Grafana stack is where engineering teams spend their time. This is where dashboards are explored, alerts are investigated, and incidents are understood.&lt;/p&gt;&lt;p&gt;At this layer, the priority shifts from strict control to predictable automation.&lt;/p&gt;&lt;p&gt;In more security-conscious environments, engineers should authenticate directly against their stack URL, such as your-org.grafana.net. &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/setup-grafana/configure-access/configure-authentication/?pg=blog&amp;plcmt=body-txt&quot;&gt;Stack-level SSO&lt;/a&gt;&lt;/u&gt; reduces the risk that the portal becomes an unintended access path to production data.&lt;/p&gt;&lt;p&gt;User and team creation at the stack level should be driven by your identity provider rather than by manual invitation. Engineers should not have to wait for access to be granted. Ideally, access already exists before they ever sign in.&lt;/p&gt;&lt;p&gt;Even outside of Okta or Entra ID environments, stack-level private SSO using SAML, OIDC, or OAuth allows Grafana to defer authentication decisions to the system you already trust.&lt;/p&gt;&lt;p&gt;This separation is what allows tight governance at the account level while preserving a smooth experience for engineers.&lt;/p&gt;&lt;p&gt;As organizations grow, manual access isn&#39;t just slow, it can become a security risk. Using SCIM for Grafana stacks (which is now generally available for Okta and Entra ID) lets you automate the boring parts of access control before things get messy.&lt;/p&gt;&lt;p&gt;Once it’s running, you should set up alerts for your provisioning logs to flag anything unusual, such as:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Unexpected spikes in user creation.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Bulk deletes or disables that weren&#39;t planned.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Changes to team memberships in sensitive groups.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;You can find the technical details in our &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/setup-grafana/configure-access/configure-scim-provisioning/?pg=blog&amp;plcmt=body-txt&quot;&gt;SCIM documentation&lt;/a&gt;&lt;/u&gt;, or speak to your account team if you want to try the Private Preview for Grafana Cloud portal SSO.&lt;/p&gt;&lt;p&gt;&lt;u&gt;&lt;em&gt;&lt;a href=&quot;/products/cloud/?pg=blog&amp;plcmt=body-txt&quot;&gt;Grafana Cloud&lt;/a&gt;&lt;/em&gt;&lt;/u&gt;&lt;em&gt; is the easiest way to get started with metrics, logs, traces, dashboards, and more. We have a generous forever-free tier and plans for every use case. &lt;/em&gt;&lt;u&gt;&lt;em&gt;&lt;a href=&quot;/auth/sign-up/create-user/?pg=blog&amp;plcmt=body-txt&quot;&gt;Sign up for free now&lt;/a&gt;&lt;/em&gt;&lt;/u&gt;&lt;em&gt;!&lt;/em&gt;&lt;/p&gt;
</description></item><item>
<title>Grafana Enterprise security update: critical severity security fix for CVE-2025-41115</title>
<link>https://grafana.com/blog/grafana-enterprise-security-update-critical-severity-security-fix-for-cve-2025-41115/</link>
<pubDate>Wed, 19 Nov 2025 18:28:02 +0000</pubDate>
<author>Vardan Torosyan</author>
<guid>https://grafana.com/blog/grafana-enterprise-security-update-critical-severity-security-fix-for-cve-2025-41115/</guid>
<description>
&lt;p&gt;&lt;em&gt;Updated Nov. 28, 2025: In the timeline, the time reported for 2025-11-04 was corrected from 19:14 UTC to 15:59 UTC.  &lt;/em&gt;&lt;/p&gt;&lt;p&gt;Along with the release of &lt;u&gt;&lt;a href=&quot;/blog/2025/11/19/grafana-12-3-release-all-the-latest-features&quot;&gt;Grafana Enterprise 12.3&lt;/a&gt;&lt;/u&gt;, we are releasing updated versions of Grafana Enterprise 12.2.1, 12.1.3 and 12.0.6, all of which contain a fix for a critical severity vulnerability (CVE-2025-41115) discovered in the SCIM (System for Cross-domain Identity Management). This issue could allow privilege escalation or user impersonation under certain configurations. &lt;/p&gt;&lt;p&gt;Grafana Enterprise 12.3.0 latest release with security patch:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;u&gt;&lt;a href=&quot;/grafana/download/12.3.0&quot;&gt;Download Grafana Enterprise 12.3&lt;/a&gt;&lt;/u&gt; &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Grafana Enterprise 12.2.1 with security patch:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;u&gt;&lt;a href=&quot;/grafana/download/12.2.1+security-01&quot;&gt;Download Grafana Enterprise 12.2.1&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Grafana Enterprise 12.1.3 with security patch:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;u&gt;&lt;a href=&quot;/grafana/download/12.1.3+security-01&quot;&gt;Download Grafana Enterprise 12.1.3&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Grafana Enterprise 12.0.6 with security patch:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;u&gt;&lt;a href=&quot;/grafana/download/12.0.6+security-01&quot;&gt;Download Grafana Enterprise 12.0.6&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Grafana Labs customers received patch versions in advance and appropriate patches have been applied to Grafana Cloud. As always, we closely coordinated with all cloud providers licensed to offer Grafana Cloud Pro. They have received early notification under embargo and confirmed that their offerings are secure at the time of this announcement. This is applicable to Amazon Managed Grafana and Azure Managed Grafana.&lt;/p&gt;&lt;p&gt;Grafana OSS users are &lt;em&gt;not&lt;/em&gt; affected by this issue. &lt;/p&gt;&lt;h2&gt;Incorrect privilege assignment (CVE-2025-41115) &lt;/h2&gt;&lt;h3&gt;Summary&lt;/h3&gt;&lt;p&gt;SCIM provisioning was &lt;u&gt;&lt;a href=&quot;/blog/2025/05/14/introducing-scim-provisioning-in-grafana-enterprise-grade-user-management-made-simple/&quot;&gt;introduced&lt;/a&gt;&lt;/u&gt; in Grafana Enterprise and Grafana Cloud in April to improve how organizations manage users and teams in Grafana by introducing automated user lifecycle management.&lt;/p&gt;&lt;p&gt;In Grafana versions 12.x where SCIM provisioning is enabled and configured, a vulnerability in user identity handling allows a malicious or compromised SCIM client to provision a user with a numeric externalId, which in turn could allow to override internal user IDs and lead to impersonation or privilege escalation.&lt;/p&gt;&lt;p&gt;This vulnerability applies only if &lt;strong&gt;all&lt;/strong&gt; of the following conditions are met:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;enableSCIM&lt;/code&gt; feature flag set to true (&lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/setup-grafana/configure-access/configure-scim-provisioning/&quot;&gt;docs on the SCIM provisioning feature&lt;/a&gt;&lt;/u&gt;)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code&gt;user_sync_enabled&lt;/code&gt; config option in the &lt;code&gt;[auth.scim]&lt;/code&gt; block set to true&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The CVSS score for this vulnerability is &lt;u&gt;&lt;a href=&quot;https://www.first.org/cvss/calculator/3-1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H.&quot;&gt;10.0 Critical&lt;/a&gt;&lt;/u&gt;.&lt;/p&gt;&lt;h3&gt;Impact&lt;/h3&gt;&lt;p&gt;Grafana maps the SCIM &lt;code&gt;externalId&lt;/code&gt; directly to the internal &lt;code&gt;user.uid&lt;/code&gt;; therefore, numeric values (e.g. &quot;1&quot;) may be interpreted as internal numeric user IDs. &lt;/p&gt;&lt;p&gt;In specific cases this could allow the newly provisioned user to be treated as an existing internal account, such as the Admin, leading to potential impersonation or privilege escalation.&lt;/p&gt;&lt;h3&gt;Impacted versions&lt;/h3&gt;&lt;p&gt;The vulnerability impacts Grafana Enterprise running on the following versions:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Grafana Enterprise 12.0.0 to 12.2.1&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Appropriate patches have been applied to Grafana Cloud.&lt;/p&gt;&lt;h3&gt;Solutions and mitigations&lt;/h3&gt;&lt;p&gt;If your instance is vulnerable, we strongly recommend upgrading to one of the patched versions as soon as possible.&lt;/p&gt;&lt;h3&gt;Timeline and post-incident review&lt;/h3&gt;&lt;p&gt;Here is a detailed incident timeline starting from when we originally introduced the issue. All times are in UTC.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;2025-11-04 15:59 As part of internal audit and testing, we discovered that there is a scenario where user IDs can be overwritten when using SCIM with specific configuration.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;2025-11-04 16:30 Internal incident declared. CVE-2025-41115 reserved.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;2025-11-04 16:45 We concluded that the vulnerability has not been exploited in Grafana Cloud. Introduced immediate patch.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;2025-11-05 17:52 Private release.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;2025-11-19 10:33 Public release. &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;2025-11-19 19:30 Blog post published.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Reporting security issues&lt;/h2&gt;&lt;p&gt;If you think you have found a security vulnerability, please go to our &lt;u&gt;&lt;a href=&quot;/legal/report-a-security-issue/&quot;&gt;Report a security issue page&lt;/a&gt;&lt;/u&gt; to learn how to send a security report.&lt;/p&gt;&lt;p&gt;Grafana Labs will send you a response indicating the next steps in handling your report. After the initial reply to your report, the security team will keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Important: We ask you to not disclose the vulnerability before it has been fixed and announced, unless you received a response from the Grafana Labs security team that you can do so.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;You can also read more about &lt;a href=&quot;https://github.com/grafana/bugbounty&quot;&gt;our bug bounty program&lt;/a&gt; and find out who has made our &lt;a href=&quot;/security/hall-of-fame/&quot;&gt;Security Hall of Fame&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;Security announcements&lt;/h2&gt;&lt;p&gt;We maintain a &lt;a href=&quot;/tags/security/&quot;&gt;security category&lt;/a&gt; on our blog, where we will always post a summary, remediation, and mitigation details for any patch containing security fixes. You can also subscribe to our &lt;a href=&quot;/tags/security/index.xml&quot;&gt;RSS feed&lt;/a&gt;.&lt;/p&gt;
</description></item><item>
<title>Single-tenant vs. multi-tenant architecture with Grafana Cloud: A guide to choosing the right approach</title>
<link>https://grafana.com/blog/single-tenant-vs-multi-tenant-architecture-with-grafana-cloud-how-to-choose-the-right-approach/</link>
<pubDate>Thu, 18 Sep 2025 15:29:37 +0000</pubDate>
<author>Naima Alexander </author>
<guid>https://grafana.com/blog/single-tenant-vs-multi-tenant-architecture-with-grafana-cloud-how-to-choose-the-right-approach/</guid>
<description>
&lt;p&gt;Grafana Cloud’s flexibility is one of its greatest strengths, but the breadth of choices can sometimes be overwhelming. We see this a lot when it comes to selecting the right architectural approach, with organizations unsure of how many stacks they need to host their environment.&lt;/p&gt;&lt;p&gt;Grafana Cloud provides robust features for managing tenancy, enabling organizations to effectively handle diverse teams and projects. In this blog, we’ll explore the advantages and disadvantages of managing Grafana Cloud tenants through multiple stacks for data isolation and permission control. We&#39;ll also look at the pros and cons of maintaining a single stack and managing permissions via role-based access control (RBAC) and labeling.&lt;/p&gt;&lt;p&gt;And while we recommend using a single-stack approach in most cases, this should help you and your organization come to an informed decision about the architectural approach that best fits your specific needs.&lt;/p&gt;&lt;h2&gt;The pros and cons of maintaining a single-stack architecture with Grafana Cloud&lt;/h2&gt;&lt;p&gt;Role-based access control, or &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/administration/roles-and-permissions/access-control/?pg=blog&amp;plcmt=body-txt&quot;&gt;RBAC&lt;/a&gt;&lt;/u&gt;, paired with a single-stack approach provides a standardized way of granting, changing, and revoking access when it comes to viewing and modifying Grafana Cloud resources such as dashboards, reports, and administrative settings. RBAC also provides the ability to create custom roles that go beyond “Admin,” “Editor,” and “Viewer” to control who can access which resources d on a more granular level.&lt;/p&gt;&lt;p&gt;Taking that a step further, you can use label-based access control, or &lt;u&gt;&lt;a href=&quot;/docs/grafana-cloud/account-management/authentication-and-permissions/access-policies/label-access-policies/?pg=blog&amp;plcmt=body-txt&quot;&gt;LBAC&lt;/a&gt;&lt;/u&gt;, to create access policies so users can only query the metrics or logs data that meet specific label requirements. LBAC is useful if you want to separate access to the telemetry backends within a single stack. Instead of giving someone access to all of the metrics or logs within a stack, you only give them access to a specific label set of the metrics or logs in that stack. &lt;/p&gt;&lt;p&gt;The LBAC feature allows you to associate multiple sets of Prometheus label selectors with a policy. As a result, queries only return data that match at least one of the provided selectors.&lt;/p&gt;&lt;h3&gt;&lt;strong&gt;Advantages &lt;/strong&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Organized configuration&lt;/strong&gt;: LBAC rules can easily be attached to Cloud Access Policies&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Centralized management&lt;/strong&gt;:&lt;strong&gt; &lt;/strong&gt;Managing users, roles, and permissions in one place is easier than configuring and maintaining multiple instances. This reduces administrative overhead.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Simplified maintenance:&lt;/strong&gt; Updates, backups, and maintenance tasks are simplified with a single instance. You can apply changes across all dashboards without having to replicate efforts across multiple stacks.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Easier integration&lt;/strong&gt;:&lt;strong&gt; &lt;/strong&gt;Integrating with other tools and systems (like authentication providers) is more straightforward in a single stack, reducing complexity in the overall architecture.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;&lt;strong&gt;Disadvantages&lt;/strong&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Risks of misconfiguration&lt;/strong&gt;: If LBAC is misconfigured, it could lead to potential data leaks.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Limited granularity&lt;/strong&gt;: Different teams and departments may have unique requirements for their dashboards, and labels and RBAC don’t provide the level of granularity around managing permissions that having multiple stacks does. &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;The advantages and disadvantages of a multi-tenant architecture with Grafana Cloud&lt;/h2&gt;&lt;p&gt;With a &lt;u&gt;&lt;a href=&quot;/docs/grafana-cloud/security-and-account-management/cloud-stacks/stack-architecture-guidance/?pg=blog&amp;plcmt=body-txt&quot;&gt;multi-tenant architecture approach&lt;/a&gt;&lt;/u&gt;, you create a stack with a distinct UI frontend for every team that needs one. Each team logs into the same Grafana Cloud instance, accessing their distinct stack backends as data sources. &lt;/p&gt;&lt;p&gt;Multiple production stacks are recommended when the goal is complete isolation among departments or teams and you don&#39;t expect any need to combine data or resources from different stacks. This is typically used by resellers and managed service providers that have customers who shouldn’t have access to one another’s data.&lt;/p&gt;&lt;h3&gt;&lt;strong&gt;Advantages&lt;/strong&gt; &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Performance&lt;/strong&gt;: This approach ensures better query performance and limits the impact of teams, departments, or clients on one another.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost attribution&lt;/strong&gt;: When you’re using multiple stacks and each stack belongs to a team, it’s easy to attribute costs to each team, client, or department.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Centralized billing&lt;/strong&gt;: Each Grafana Cloud instance of each stack includes a &lt;code&gt;grafanacloud-usage&lt;/code&gt; data source that powers the included &lt;u&gt;&lt;a href=&quot;/docs/grafana-cloud/cost-management-and-billing/?pg=blog&amp;plcmt=body-txt&quot;&gt;billing dashboard&lt;/a&gt;&lt;/u&gt;. On the central billing dashboard it’s easy to see the usage of each telemetry signal per stack.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Data segregation&lt;/strong&gt;: Each team, department, or client can have its own stack, ensuring sensitive data isn&#39;t accessible to unauthorized users from other teams.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Compliance&lt;/strong&gt;: Isolating data can help meet regulatory requirements. It’s easier to control data access and ensure compliance within distinct environments.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Customizability&lt;/strong&gt;: Teams can customize their own stack settings, plugins, and dashboards without impacting others, allowing for tailored solutions.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Easier dashboard sharing&lt;/strong&gt;: You have several options to share dashboards. If all stacks are in the same region, you can leverage &lt;u&gt;&lt;a href=&quot;/docs/grafana-cloud/connect-externally-hosted/multi-stack-data-sources/?pg=blog&amp;plcmt=body-txt&quot;&gt;multi-stack querying&lt;/a&gt;&lt;/u&gt;, so you can centralize visibility across environments without duplicating data.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;&lt;strong&gt;Disadvantages&lt;/strong&gt; &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cross-tenant querying&lt;/strong&gt;: Querying all tenants together by the admin team requires additional configurations, and the admin team may need to log into each Grafana Cloud instance or consolidate metrics tenants into one stack.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Correlation challenges&lt;/strong&gt;: Grafana Labs recommends customers use a single stack as their production observability environment because cross-stack correlation won&#39;t function properly.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consistency and best practices&lt;/strong&gt;: Ensuring consistent practices and standards across multiple stacks can be challenging, potentially leading to varying levels of quality and performance.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;&lt;/h2&gt;&lt;h2&gt;&lt;strong&gt;Make the choice that&#39;s right for your organization&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;Choosing the right architectural approach in Grafana Cloud ultimately depends on your organization’s priorities around isolation, collaboration, compliance, and administrative overhead. &lt;/p&gt;&lt;p&gt;Multiple stacks provide strong boundaries, cost attribution, and customization, making them well-suited for scenarios where complete isolation is non-negotiable, such as with managed service providers or highly regulated environments. &lt;/p&gt;&lt;p&gt;On the other hand, a single-stack architecture with RBAC and LBAC offers simplicity, centralized management, and easier integrations, which often aligns better with organizations seeking operational efficiency and cross-team visibility. This approach is recommended for most Grafana Cloud customers, since they are managing their own stacks and aren&#39;t under strict regulatory requirements.&lt;/p&gt;&lt;p&gt;There’s no one-size-fits-all answer, but by weighing the trade-offs outlined here, you can select the model that best balances your technical requirements with your business goals.&lt;/p&gt;&lt;p&gt;&lt;u&gt;&lt;em&gt;&lt;a href=&quot;/products/cloud/?pg=blog&amp;plcmt=body-txt&quot;&gt;Grafana Cloud&lt;/a&gt;&lt;/em&gt;&lt;/u&gt;&lt;em&gt; is the easiest way to get started with metrics, logs, traces, dashboards, and more. We have a generous forever-free tier and plans for every use case. &lt;/em&gt;&lt;u&gt;&lt;em&gt;&lt;a href=&quot;/auth/sign-up/create-user/?pg=blog&amp;plcmt=body-txt&quot;&gt;Sign up for free now!&lt;/a&gt;&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;
</description></item><item>
<title>Managing access in Grafana: a single stack journey with teams, roles, and real-world patterns</title>
<link>https://grafana.com/blog/managing-access-in-grafana-a-single-stack-journey-with-teams-roles-and-real-world-patterns/</link>
<pubDate>Mon, 08 Sep 2025 15:56:59 +0000</pubDate>
<author>Sarah Constant</author>
<guid>https://grafana.com/blog/managing-access-in-grafana-a-single-stack-journey-with-teams-roles-and-real-world-patterns/</guid>
<description>
&lt;p&gt;When multiple teams use Grafana, it can start to feel a bit messy. Dashboards pile up, permissions become unclear, and teams accidentally overwrite each other’s work. &lt;/p&gt;&lt;p&gt;To help you and your organization stay clear, collaborative, and secure, we recommend putting all users in a single Grafana Cloud stack and managing access with teams, roles, and folders. To illustrate this, I&#39;ll share a hypothetical example of how you can put this into practice across three teams. &lt;/p&gt;&lt;p&gt;Let&#39;s dive in!&lt;/p&gt;&lt;h2&gt;Three teams, one stack&lt;/h2&gt;&lt;p&gt;Let’s imagine that it’s Monday morning, and I’m sitting down with my coffee ready to start the work day. In this hypothetical, I&#39;m part of the observability team serving an engineering organization of 50 people, and my goal today is to set up Grafana for our various engineering teams. &lt;/p&gt;&lt;p&gt;As part of this process, I want to reduce setup and maintenance work. I also want to make sure teams can access the right dashboards and data, avoid stepping on each other’s work, and still collaborate when needed. I do all of this in a single Grafana Cloud stack—no multi-stack complexity required.&lt;/p&gt;&lt;p&gt;In our setup, we have three teams:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Team A&lt;/strong&gt; builds product features and needs autonomy with their own dashboards and data sources. &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Team B&lt;/strong&gt; handles data engineering and needs autonomy with their own dashboards.  &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Team C&lt;/strong&gt; is our observability team (that’s us), and we act as admins of the Grafana stack.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;p&gt;Note:&lt;strong&gt; &lt;/strong&gt;For the purpose of this blog post, we&#39;ll focus on the steps you&#39;d need to follow in Grafana Cloud. However, the same basic concepts can be followed in Grafana Enterprise. &lt;/p&gt;&lt;/blockquote&gt;&lt;h2&gt;1. Create the stack&lt;/h2&gt;&lt;p&gt;With &lt;u&gt;&lt;a href=&quot;/docs/grafana-cloud/security-and-account-management/cloud-stacks/?pg=blog&amp;plcmt=body-txt&quot;&gt;a single stack&lt;/a&gt;&lt;/u&gt;, I get unified SSO, centralized configuration, and plugin management.  Equally important: Having everything under one stack means teams are not isolated in silos. They can discover each other’s dashboards, share work, and learn from one another. &lt;/p&gt;&lt;p&gt;When everyone works in a single stack, collaboration becomes much easier. A dashboard built by one team can be shared directly with others, without duplicating it across stacks. Teams can choose to open specific folders or dashboards, encouraging re-use and cross-learning while still maintaining ownership of their own work. &lt;/p&gt;&lt;p&gt;Shared spaces, like an “Everyone” folder, make it simple to publish executive dashboards or cross-team metrics that all groups can benefit from. And because everything lives in one environment, users are easily set up to adapt when teams reorganize, collaborate across groups, or swarm together on new projects.&lt;/p&gt;&lt;h2&gt;2. Create teams and their folders&lt;/h2&gt;&lt;p&gt;I start by adding new users with the Viewer role &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/setup-grafana/configure-grafana/?pg=blog&amp;plcmt=body-txt#auto_assign_org_role&quot;&gt;by default&lt;/a&gt;&lt;/u&gt;. It’s a safe baseline: they can see everything, but they can&#39;t change anything.  &lt;/p&gt;&lt;p&gt;Each team needs to be added to the same stack and to a &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/administration/team-management/configure-grafana-teams/?pg=blog&amp;plcmt=body-txt#create-a-grafana-team&quot;&gt;Grafana Team&lt;/a&gt;&lt;/u&gt;. To do this, I create a &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/dashboards/manage-dashboards/?pg=blog&amp;plcmt=body-txt#create-a-dashboard-folder&quot;&gt;folder&lt;/a&gt;&lt;/u&gt; for each team that they can manage and grant them the &lt;code&gt;fixed:teams:read&lt;/code&gt; &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/?pg=blog&amp;plcmt=body-txt#fixed-role-definitions&quot;&gt;fixed role&lt;/a&gt;&lt;/u&gt;.  This means they can share items in their team folder with other teams, to encourage collaboration and learning from each other.&lt;/p&gt;&lt;p&gt;I upgrade Team C to the Admin role so that they can manage all resources in the instance.&lt;/p&gt;&lt;p&gt;To encourage creativity while keeping things tidy, I create a personal folder for each team member that they can manage for drafting content and then moving it into their team folder when ready.&lt;/p&gt;&lt;h2&gt;3. Design top-level folder structure&lt;/h2&gt;&lt;p&gt;I will limit the number of top-level folders to keep things organized and secure. We will have an &quot;Everyone&quot; folder for shared items that all teams can manage, an &quot;Admins&quot; folder for sensitive content only we can access (Team C’s folder), and one folder per team.&lt;/p&gt;&lt;p&gt;This setup helps users quickly understand where to go, what they can access, and what they can manage.&lt;/p&gt;&lt;h2&gt;4. Configure data access &lt;/h2&gt;&lt;p&gt;Next, I focus on how teams interact with data. All teams forward metrics to a shared database tenant, but not everyone should see all of the data. I create one shared metrics &lt;u&gt;&lt;a href=&quot;/docs/grafana-cloud/connect-externally-hosted/data-sources/?pg=blog&amp;plcmt=body-txt#add-a-data-source&quot;&gt;data source&lt;/a&gt;&lt;/u&gt; and grant each team &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/administration/data-source-management/?pg=blog&amp;plcmt=body-txt#assign-data-source-permissions-to-users-service-accounts-teams-or-roles&quot;&gt;query access&lt;/a&gt;&lt;/u&gt; only to their slice of the data, based on &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/administration/data-source-management/teamlbac/create-teamlbac-rules/?pg=blog&amp;plcmt=body-txt#create-a-lbac-for-data-sources-rule-for-a-team&quot;&gt;label based access controls (LBAC) per team&lt;/a&gt;&lt;/u&gt;. This way, we maintain a central observability pipeline but still preserve data separation.&lt;/p&gt;&lt;p&gt;I grant the &lt;code&gt;datasources:explorer&lt;/code&gt; &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/?pg=blog&amp;plcmt=body-txt#fixed-role-definitions&quot;&gt;fixed role&lt;/a&gt;&lt;/u&gt; to all teams so they can use the Drilldown app for easily exploring data sources.&lt;/p&gt;&lt;p&gt;Team A, however, needs to build and manage their own data sources for product-specific use cases. For them, I grant the &lt;code&gt;datasources:creator&lt;/code&gt; &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/administration/roles-and-permissions/access-control/assign-rbac-roles/?pg=blog&amp;plcmt=body-txt#assign-fixed-roles-in-the-ui-using-the-role-picker&quot;&gt;fixed role&lt;/a&gt;&lt;/u&gt; so they can create and manage their own data sources independently.&lt;/p&gt;&lt;h2&gt;5. Consider non-folder resources and stack-wide permissions&lt;/h2&gt;&lt;p&gt;Not all Grafana resources live in folders. Service accounts, alert contact points, &lt;a href=&quot;/docs/grafana-cloud/send-data/fleet-management/?pg=blog&amp;plcmt=body-txt&quot;&gt;Fleet Management&lt;/a&gt; collectors, and other feature resources are managed at the stack level. For these, I check the role options in the team management UI and assign &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/administration/roles-and-permissions/access-control/assign-rbac-roles/?pg=blog&amp;plcmt=body-txt#assign-fixed-roles-in-the-ui-using-the-role-picker&quot;&gt;fixed roles&lt;/a&gt;&lt;/u&gt; to teams carefully.&lt;/p&gt;&lt;p&gt;For example, I grant teams the &lt;a href=&quot;/docs/grafana-cloud/monitor-applications/frontend-observability/?pg=blog&amp;plcmt=body-txt&quot;&gt;Frontend Observability&lt;/a&gt; writer fixed role so that they can create and manage services.  &lt;/p&gt;&lt;h3&gt;&lt;strong&gt;6. Scale it with Terraform and SSO&lt;/strong&gt;&lt;/h3&gt;&lt;p&gt;Once the model is working, I codify it. &lt;/p&gt;&lt;p&gt;All new users get added from an Identity Provider through &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/setup-grafana/configure-security/configure-scim-provisioning/manage-users-teams/?pg=blog&amp;plcmt=body-txt#manage-users-and-teams-with-scim&quot;&gt;SCIM&lt;/a&gt;&lt;/u&gt; (I use Okta in this example). As they sync they are automatically assigned to the right team based on their Okta group membership. I use &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/setup-grafana/configure-security/configure-authentication/saml/configure-saml-team-role-mapping/?pg=blog&amp;plcmt=body-txt#configure-role-sync-for-saml&quot;&gt;role sync&lt;/a&gt;&lt;/u&gt; logic to assign the Admin role for our team instead of the default, which I’ve set to the Viewer role.&lt;/p&gt;&lt;p&gt;I use Terraform to provision teams their &lt;u&gt;&lt;a href=&quot;https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/folder_permission&quot;&gt;folders&lt;/a&gt;&lt;/u&gt;, &lt;u&gt;&lt;a href=&quot;https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/role_assignment&quot;&gt;fixed roles&lt;/a&gt;&lt;/u&gt;, and shared datasource &lt;u&gt;&lt;a href=&quot;https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/data_source_config_lbac_rules&quot;&gt;LBAC rules&lt;/a&gt;&lt;/u&gt;. &lt;/p&gt;&lt;p&gt;Let&#39;s say I need to add a new team called Team D.  Now I’ll only need to push new Okta groups to Grafana and run my Terraform script, and then they’ll automatically be set up and ready to start using Grafana.&lt;/p&gt;&lt;h3&gt;&lt;strong&gt;Where to go from here&lt;/strong&gt;&lt;/h3&gt;&lt;p&gt;Getting access and permissions right in Grafana is one of the best ways to unlock its full potential. With the right structure in place, teams can collaborate more easily, stay secure without extra overhead, and build on each other’s work instead of starting from scratch. To really get a deeper understanding of these ideas, here are a few resources that can help.&lt;/p&gt;&lt;p&gt;Our &lt;u&gt;&lt;a href=&quot;/blog/2024/09/10/grafana-access-management-how-to-use-teams-for-seamless-user-and-permission-management/&quot;&gt;least privilege custom role explainer blog&lt;/a&gt;&lt;/u&gt; walks through how to design roles that keep things simple and safe, so people have just the access they need. My &lt;u&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=gj27qKPSVsM&quot;&gt;LBAC for metrics data sources demo&lt;/a&gt;&lt;/u&gt; shows how you can give every team a clear view of their own data while still benefiting from a shared pipeline. And our &lt;u&gt;&lt;a href=&quot;/blog/2025/05/14/introducing-scim-provisioning-in-grafana-enterprise-grade-user-management-made-simple/&quot;&gt;introducing SCIM blog&lt;/a&gt;&lt;/u&gt; covers how to connect Grafana to your identity provider, making it easy to bring new users on board and keep permissions in sync as your organization grows.&lt;/p&gt;&lt;p&gt;Taken together, these resources will help you put the single-stack model into practice and set your teams up to get the very most from Grafana.&lt;/p&gt;&lt;p&gt;&lt;u&gt;&lt;em&gt;&lt;a href=&quot;/products/cloud/?pg=blog&amp;plcmt=body-txt&quot;&gt;Grafana Cloud&lt;/a&gt;&lt;/em&gt;&lt;/u&gt;&lt;em&gt; is the easiest way to get started with metrics, logs, traces, dashboards, and more. We have a generous forever-free tier and plans for every use case. &lt;/em&gt;&lt;u&gt;&lt;em&gt;&lt;a href=&quot;/auth/sign-up/create-user/?pg=blog&amp;plcmt=body-txt&quot;&gt;Sign up for free now!&lt;/a&gt;&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;
</description></item><item>
<title>Canary tokens: Learn all about the unsung heroes of security at Grafana Labs</title>
<link>https://grafana.com/blog/canary-tokens-learn-all-about-the-unsung-heroes-of-security-at-grafana-labs/</link>
<pubDate>Mon, 25 Aug 2025 15:44:51 +0000</pubDate>
<author>Mostafa Moradian</author>
<guid>https://grafana.com/blog/canary-tokens-learn-all-about-the-unsung-heroes-of-security-at-grafana-labs/</guid>
<description>
&lt;p&gt;We&#39;ve written at length about a recent security incident tied to a GitHub action, but what we haven&#39;t publicized yet is how we found the trail left by the attacker: canary tokens. &lt;/p&gt;&lt;p&gt;To quickly recap the &lt;u&gt;&lt;a href=&quot;/blog/2025/05/15/grafana-security-update-post-incident-review-for-github-workflow-vulnerability-and-whats-next/&quot;&gt;security incident&lt;/a&gt;&lt;/u&gt; in question, on April 26 a vulnerable GitHub Action workflow allowed an unauthorized user access to a limited number of tokens.&lt;/p&gt;&lt;p&gt;Our &lt;u&gt;&lt;a href=&quot;/blog/2025/05/15/grafana-security-update-post-incident-review-for-github-workflow-vulnerability-and-whats-next/&quot;&gt;investigation&lt;/a&gt;&lt;/u&gt; into the incident concluded May 12, and we confirmed that &lt;strong&gt;there were no code modifications, unauthorized access to production systems, exposure of customer data, or access to personal information.&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;After the initial incident was triggered (but before our investigation concluded), the attacker deleted their fork, PRs, and workflow runs in an attempt to cover their tracks. This led to unauthorized access to secrets across five public repositories, though this did not impact production systems or customer data either. We disabled affected workflows, rotated all exposed credentials, and audited our repositories with Trufflehog, &lt;u&gt;&lt;a href=&quot;/blog/2025/06/26/how-to-detect-vulnerable-github-actions-at-scale-with-zizmor/&quot;&gt;Zizmor&lt;/a&gt;&lt;/u&gt;, and Gato-X. We also conducted a full access log review in Grafana Loki and other data sources. You can read the initial announcement &lt;u&gt;&lt;a href=&quot;/blog/2025/04/27/grafana-security-update-no-customer-impact-from-github-workflow-vulnerability/&quot;&gt;here&lt;/a&gt;&lt;/u&gt; and the PIR &lt;u&gt;&lt;a href=&quot;/blog/2025/05/15/grafana-security-update-post-incident-review-for-github-workflow-vulnerability-and-whats-next/&quot;&gt;here&lt;/a&gt;&lt;/u&gt;.&lt;/p&gt;&lt;p&gt;Without canary tokens and our watchful team, it would have taken longer to detect the attack. In this blog, we&#39;ll explain what canary tokens are and show you how they&#39;ve helped us. We&#39;ll also tell you how they can help you detect intrusions before they become serious security incidents. &lt;/p&gt;&lt;h2&gt;What are canary tokens? And how do we use them at Grafana Labs?&lt;/h2&gt;&lt;p&gt;Canary tokens are digital tripwires or decoys that look valuable to an intruder but have no legitimate use. If someone finds and uses one you&#39;ve deployed, you&#39;ll receive an immediate alert. &lt;/p&gt;&lt;p&gt;Named after coal-mining canaries (early warning for toxic gas), these tokens are far lighter than honeypots. They can take many simple forms, such as API keys, files, URLs, or DNS entries, making them fast and easy to deploy across your environment.&lt;/p&gt;&lt;p&gt;In our case, canary tokens weren’t just an experiment, they were the primary signal that told us an attacker was inside: An AWS API key was validated by the attacker; we got a real-time alert; teams swarmed; and the intrusion was contained within minutes.&lt;/p&gt;&lt;p&gt;Here are the actionable lessons from that detection and why placement and deployment matter more than the token itself:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Speed wins:&lt;/strong&gt; Canary tokens turn hours of triage into minutes of containment.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Placement matters:&lt;/strong&gt; Choose the right token types and place them where attackers actually look.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Precision in pinpointing:&lt;/strong&gt; Utilize organization-level tokens for broad compromise detection and repository-level tokens to identify specific entry points.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Metadata is gold:&lt;/strong&gt; Comprehensive reminder text, token names, and locations are crucial for efficient triage.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integration is key:&lt;/strong&gt; Canary tokens only shine when paired with clear naming, automated alerting, and integrated response workflows.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Iterative scaling:&lt;/strong&gt; Begin with a small-scale placement in high-risk areas. Only then, by refining your response strategy, can you scale use of canary tokens.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;How we built our canary token infrastructure&lt;/h3&gt;&lt;p&gt;There are two options for deploying canary tokens:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;DIY setup: &lt;/strong&gt;Generate tokens (API keys, fake files, custom URLs) yourself and build or plug into your existing monitoring system to catch any token use. This gives you full control over token behavior and alert handling, making it ideal for custom platforms.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automated platforms: &lt;/strong&gt;Solutions like &lt;u&gt;&lt;a href=&quot;https://canary.tools/&quot;&gt;Thinkst&lt;/a&gt;&lt;/u&gt; or &lt;u&gt;&lt;a href=&quot;https://tracebit.com/&quot;&gt;TraceBit&lt;/a&gt;&lt;/u&gt; offer out-of-the-box token creation, monitoring, and notifications across major cloud providers and apps. For any bespoke tokens or corner-case scenarios, you’ll still need to handle monitoring yourself to ensure complete coverage.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;While a DIY approach could be sufficient for a relatively small environment, we needed something that could scale without manual intervention. So, after experimenting with Thinkst’s &lt;u&gt;&lt;a href=&quot;https://github.com/thinkst/canarytokens&quot;&gt;OSS&lt;/a&gt;&lt;/u&gt; and &lt;u&gt;&lt;a href=&quot;https://canarytokens.org/nest/&quot;&gt;free&lt;/a&gt;&lt;/u&gt; editions, we switched to their &lt;u&gt;&lt;a href=&quot;https://canary.tools/&quot;&gt;cloud&lt;/a&gt;&lt;/u&gt; version for features missing in OSS, such as undetectable tokens, a robust API, audit-trail logging, and a full authentication/authorization system.&lt;/p&gt;&lt;p&gt;To make the most out of our setup, we connected the notifications of the Thinkst platform to Grafana Cloud IRM &lt;u&gt;&lt;a href=&quot;/docs/grafana-cloud/alerting-and-irm/irm/configure/integrations/webhooks/incoming-webhooks/oncall-webhooks/&quot;&gt;webhooks&lt;/a&gt;&lt;/u&gt;, as shown below:&lt;/p&gt;&lt;p&gt;The webhook is then being listened to by the Grafana Cloud IRM integration:&lt;/p&gt;&lt;p&gt;This setup allows us to route canary tokens’ notifications to Slack (as you can see in the Routes section above) and automate escalation chains (as you can see in the screenshot below). If you&#39;d like to do something similar, further details on Grafana Cloud IRM integrations are available &lt;u&gt;&lt;a href=&quot;/docs/grafana-cloud/alerting-and-irm/irm/configure/integrations/&quot;&gt;here&lt;/a&gt;&lt;/u&gt;.&lt;/p&gt;&lt;h3&gt;Canary token lifecycle&lt;/h3&gt;&lt;p&gt;We use a simple, four-step lifecycle to operationalize canary tokens and turn them into an actionable detection and response capability:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create&lt;/strong&gt;: Generate a unique token, like an AWS API key, PDF link, or DNS subdomain that “phones home” when accessed.  &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Place:&lt;/strong&gt; Embed tokens where attackers would look, like code repos, config directories, vaults, cloud consoles, databases, or shared drives.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Monitor:&lt;/strong&gt; A background service watches for any token use and sends an alert with metadata (timestamp, IP, hostname). Keep in mind: If you’re not using a platform, you must build custom monitoring.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Respond:&lt;/strong&gt; Investigate alerts, isolate affected assets, and remediate before any real data is touched. Keep the triggered token for forensics and replace it immediately.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2&gt;Canary tokens and TruffleHog to the rescue!&lt;/h2&gt;&lt;p&gt;We planted AWS API key canary tokens (alongside a few others) in organization- and repository-level secrets. When the attacker exfiltrated the secrets and ran &lt;u&gt;&lt;a href=&quot;https://github.com/trufflesecurity/trufflehog&quot;&gt;TruffleHog&lt;/a&gt;&lt;/u&gt; to validate them, TruffleHog’s &lt;code&gt;sts:GetCallerIdentity&lt;/code&gt; &lt;u&gt;&lt;a href=&quot;https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity.html&quot;&gt;call&lt;/a&gt;&lt;/u&gt; against our tokens triggered the canary, unlike free canary tokens that are automatically detected by TruffleHog &lt;u&gt;&lt;a href=&quot;https://trufflesecurity.com/blog/canaries&quot;&gt;without calling the AWS API&lt;/a&gt;&lt;/u&gt;. &lt;/p&gt;&lt;p&gt;Because Thinkst was watching those AWS accounts, we got an immediate Slack alert. That one notification, thanks to our strategic token placement, revealed the exact entry point. The Detection &amp; Response team reacted to the notification and raised an incident. Teams across R&amp;D and Security sprang into action to contain and remediate the incident, which, again, resulted in no code modifications, unauthorized access to production systems, exposure of customer data, or access to personal information. &lt;/p&gt;&lt;h3&gt;Our canary token placement strategy&lt;/h3&gt;&lt;p&gt;Given GitHub&#39;s central role as our primary source of truth, safeguarding it with canary tokens is crucial. Specifically, we strategically deploy AWS API key canary tokens within GitHub Secrets by placing the tokens at the organization level (to flag any repo breach) and per repository (to precisely pinpoint intrusions at the repository level). Other platforms get their own flavors. For example, &lt;u&gt;&lt;a href=&quot;https://help.canary.tools/hc/en-gb/articles/360021010497-How-do-I-create-a-Google-Docs-Sheets-Token&quot;&gt;Google Docs&lt;/a&gt;&lt;/u&gt; tokens live in shared Google Drive files, email-based tokens in dummy inboxes, and DNS tokens in unused subdomains.&lt;/p&gt;&lt;p&gt;The key is to map out every asset (repos, CI/CD pipelines, cloud consoles, vaults, pods, containers, etc.) and sprinkle a diverse mix of tokens wherever an attacker might snoop. We’ve deployed tens of thousands (or an infinite amount, for that matter), so watch your steps, since there’s a tripwire behind every click.&lt;/p&gt;&lt;h2&gt;How you can utilize canary tokens in your security setup&lt;/h2&gt;&lt;p&gt;Now that we&#39;ve walked through how we deploy canary tokens, we want to share some tips for how you can utilize them as well. For the purposes of this blog, we&#39;ll focus our advice on the same tools we use internally (because we believe in them as tried and tested technologies), but most of the general guidance still applies for other similar tools.&lt;/p&gt;&lt;h3&gt;Shaping your placement strategy with team discussion&lt;/h3&gt;&lt;p&gt;Some key questions you should consider before deciding on your canary placement and alerting strategy include:&lt;/p&gt;&lt;h4&gt;Which token types catch attackers best?&lt;/h4&gt;&lt;p&gt;Pick from Thinkst’s &lt;u&gt;&lt;a href=&quot;https://help.canary.tools/hc/en-gb/articles/4701687447325-What-are-Canarytokens&quot;&gt;catalog&lt;/a&gt;&lt;/u&gt; (over two dozen types) to match your environment and threats. Mix cloud/API keys (AWS, Azure, Slack) with file- or link-based tokens (PDFs, DNS, URLs) so you cover code repos, docs, and networks. Use a variety to broaden detection.&lt;/p&gt;&lt;h4&gt;How do you make alerts impossible to miss?&lt;/h4&gt;&lt;p&gt;Tune your alert thresholds and channels to strike the right balance between urgency and noise. Consider:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Acknowledge alerts early:&lt;/strong&gt; Acknowledge alerts promptly on the Thinkst platform to avoid grouping subsequent alerts and missing notifications of repeated canary token triggers from different IP addresses.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;METADATA IS IMPORTANT:&lt;/strong&gt; For quicker investigation, ensure every notification includes canary token metadata (name, location, reminder text). The Thinkst platform automates this if the reminder text is correctly configured.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Where do alerts need to land?&lt;/h4&gt;&lt;p&gt;Choose channels your team actually watches:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Immediate channels:&lt;/strong&gt; Slack (with webhooks) or the Grafana Cloud IRM mobile app for 24/7 paging&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Secondary channels:&lt;/strong&gt; Security mailing lists, SIEM, or ticketing (e.g., Splunk) for structured incident tracking&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Map each severity level to the right channel so nothing slips through.&lt;/p&gt;&lt;h4&gt;Where should tokens live?&lt;/h4&gt;&lt;p&gt;Sprinkle tokens in high-risk and high-value spots:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;CI/CD pipelines&lt;/strong&gt;: As dummy environment variables, test jobs, or secondary workflows&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Private GitHub/GitLab repositories&lt;/strong&gt;: In config files, comments or branch-specific .env files&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Developer workstations &amp; build servers&lt;/strong&gt;: In ~/.aws/credentials, hidden directories or registry entries&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cloud accounts &amp; consoles&lt;/strong&gt;: Nested within IAM policies or metadata documents&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Shared network drives &amp; documentation&lt;/strong&gt;: In ordinary looking directories or PDFs&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Public GitHub/GitLab repositories&lt;/strong&gt;: Be cautious here! Alert fatigue is a real thing. Limit use of canary tokens in public repositories to avoid false positives from automated secret scanners triggered by inadvertently exposed sensitive information like AWS API keys in Git branches (i.e., obvious places).&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;How do you prevent accidental triggers?&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Educate teams&lt;/strong&gt;: Explain the “what” and “where” of canary tokens.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Demo alerts&lt;/strong&gt;: Show how tokens work and what notifications look like.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Announce deployments&lt;/strong&gt;: Share rollout plans in team channels.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Document “off-limits” zones&lt;/strong&gt;: Post common token names and locations in your wiki.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use runbooks&lt;/strong&gt;: Guide responders through investigations to avoid confusion.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;You have two communication strategies for canary tokens:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Silent&lt;/strong&gt;: No internal notice, which is better for catching insiders but higher false positives.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Communicative&lt;/strong&gt;: Teams know about tokens, with fewer false positives but risk tipping off attackers.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Who are you trying to catch?&lt;/h4&gt;&lt;p&gt;Identify target adversaries for canary tokens. Understand that advanced attackers use unique methods, so tokens alone are insufficient for full access prevention.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;External attackers&lt;/strong&gt; probing repos or cloud assets&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automated scanners&lt;/strong&gt; hunting for exposed secrets&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Insider threats&lt;/strong&gt; snooping on token-laden areas&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Supply-chain attackers&lt;/strong&gt; targeting CI/CD&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Phishing or social-engineering&lt;/strong&gt; via document or email tokens&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;By answering these, you’ll align token types, alerting, and placement with your organization’s risks and tools, thus turning every token into a reliable tripwire.&lt;/p&gt;&lt;h2&gt;Best practices, limitations, and gotchas&lt;/h2&gt;&lt;p&gt;Canary tokens provide valuable, high-confidence alerts of compromise, but triggering one means an attacker is already inside your system. While effective, they are not a foolproof solution and have limitations.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Provider support varies:&lt;/strong&gt; Not every token type is available on every platform. If you build your own bespoke API or secret-generation service, you’ll need to roll your own monitoring. One way to do that is to log token IDs (never the secret!) into &lt;u&gt;&lt;a href=&quot;/docs/loki/latest/&quot;&gt;Grafana Loki&lt;/a&gt;&lt;/u&gt;, set up &lt;u&gt;&lt;a href=&quot;/docs/grafana/latest/alerting/&quot;&gt;Grafana Alerting alerts&lt;/a&gt;&lt;/u&gt; on those IDs, and feed incidents into &lt;u&gt;&lt;a href=&quot;/docs/grafana-cloud/alerting-and-irm/irm/&quot;&gt;Grafana Cloud IRM&lt;/a&gt;&lt;/u&gt;.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Monitoring availability:&lt;/strong&gt; If your token-watching infrastructure goes down, or worse, becomes compromised, you lose visibility entirely. So, secure your infrastructure!&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;False positives from insiders:&lt;/strong&gt; Before we formally announced our token rollout, a handful of teammates accidentally tripped tokens simply by poking around. By asking them why they accessed those credentials, we quickly labeled those alerts as benign and moved on.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Obfuscated attacker source:&lt;/strong&gt; VPNs hide real IPs, so location data can be misleading. Some browser-based tokens can add fingerprinting, but that only works for web-triggered tokens.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;API rate limits:&lt;/strong&gt; Even when vendors advertise “unlimited” API calls, their infrastructure typically enforces limitations. Blast too many token creation or update requests at once and you’ll hit throttling or even break the API.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Here are the key best practices we’ve learnt over time:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use descriptive reminders:&lt;/strong&gt; Leverage Thinkst’s “reminder” text field to tag each token with owner, environment, and location. You can also store JSON in that field and retrieve it later via the UI or API.  That metadata lets you pinpoint precisely what was touched.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;One token per location:&lt;/strong&gt; When a token fires, archive it for forensics, since an attacker might reuse or sell it, then replace it ideally with a fresh name that blends in (e.g., AWS_API_CREDS instead of CANARY_TOKEN_AWS).&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Group into flocks:&lt;/strong&gt; Organize tokens by environment, team, or platform into &lt;u&gt;&lt;a href=&quot;https://help.canary.tools/hc/en-gb/articles/360012874638-How-do-I-create-a-new-flock&quot;&gt;flocks&lt;/a&gt;&lt;/u&gt; to simplify bulk management.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integrate alerts into incident response:&lt;/strong&gt; Route notifications into your messaging system, your SIEM, and/or ticketing system so that nothing slips through the cracks.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mix token types:&lt;/strong&gt; Don’t rely solely on AWS API keys. Deploy file, URL/DNS, email, and command tokens to cover every attacker tactic.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automate placement:&lt;/strong&gt; Use Thinkst’s &lt;u&gt;&lt;a href=&quot;https://github.com/thinkst/canary-utils&quot;&gt;scripts or IaC examples&lt;/a&gt;&lt;/u&gt; (Terraform, Ansible, Puppet, and AWS CloudFormation) to ensure consistency. We also worked closely with Thinkst support to master their UI, API, and tooling and learn some best practices.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Test your tokens and document actions:&lt;/strong&gt; Trigger a few tokens in a safe environment after deployment to verify alert delivery and downstream automation. This will also enhance your incident response plan. This practice allows you to simulate real-world scenarios and refine your response procedures. Document these simulated incidents and the corresponding steps taken to create comprehensive runbooks. These runbooks will serve as valuable guides when canary tokens are triggered in the future, ensuring a more efficient and effective response and less confusion.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Communicate widely and wisely:&lt;/strong&gt; Make your teams (or even your broader community) aware of canary tokens. That transparency reduces accidental triggers and builds security awareness.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;By understanding these limitations and following these practices, you’ll keep your canary token deployment lean, reliable, and ready to catch real attacks the moment they unfold. &lt;/p&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;&lt;p&gt;Canary tokens have been a force multiplier for us, turning every corner of our infrastructure into a potential tripwire and giving us the precious minutes needed to stop a breach before it escalates. &lt;/p&gt;&lt;p&gt;Seed your environment with right token types, integrate alerts for automation, and never underestimate the advantage of knowing an adversary is inside before they ever touch your real assets.&lt;/p&gt;&lt;p&gt;&lt;u&gt;&lt;em&gt;&lt;a href=&quot;/products/cloud/?pg=blog&amp;plcmt=body-txt&quot;&gt;Grafana Cloud&lt;/a&gt;&lt;/em&gt;&lt;/u&gt;&lt;em&gt; is the easiest way to get started with metrics, logs, traces, dashboards, and more. We have a generous forever-free tier and plans for every use case. &lt;/em&gt;&lt;u&gt;&lt;em&gt;&lt;a href=&quot;/auth/sign-up/create-user/?pg=blog&amp;plcmt=body-txt&quot;&gt;Sign up for free now!&lt;/a&gt;&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;
</description></item></channel></rss>