基于标签的数据源访问控制 (LBAC)
基于标签的数据源访问控制 (LBAC) 简化并精简了基于团队成员关系的数据源访问管理。基于标签的访问控制 (LBAC) 允许通过基于标签过滤日志或指标来实现对数据源的细粒度访问控制。它允许管理员为团队配置访问规则,确保用户只能查询与其分配的权限相关的数据。
支持的数据源
功能可用性
基于标签的数据源访问控制 (LBAC) 目前普遍适用于 Loki
,并且对 Prometheus
处于实验性阶段。将来更新中可能会增加对其他数据源的支持。
数据源 | Grafana Cloud | Grafana Enterprise | 跨租户查询支持 |
---|---|---|---|
Loki | 正式发布 (GA) | 正式发布 (GA) (需要 GEL - Grafana Enterprise Logs) | ❌ |
Prometheus | 公开预览 (PublicPreview) | 公开预览 (PublicPreview) (需要 GEM - Grafana Enterprise Metrics) | ❌ |
注意
对于 Enterprise 版本,此功能需要 Grafana Enterprise Metrics (GEM) 或 Grafana Enterprise Logs (GEL) 才能运行。
基于标签的数据源访问控制 (LBAC) 提供
- 使用
LogQL
规则的基于团队的访问控制。 - 通过将多个数据源合并为一个来简化数据源管理。
- 在团队之间重用仪表板,并提供定制的访问权限。
您可以使用 LogQL
基于团队成员关系配置用户访问。基于标签的数据源访问控制 (LBAC) 根据为每个团队设置的规则来控制对日志或指标的访问。
此功能解决了 Grafana 用户面临的两个常见挑战
- 拥有大量 Grafana Cloud 数据源。基于标签的数据源访问控制 (LBAC) 使 Grafana 管理员能够将每个实例的数据源总数从数百个减少到一个。
- 在多个团队之间使用相同的仪表板。基于标签的数据源访问控制 (LBAC) 允许 Grafana 团队使用具有不同访问控制规则的相同仪表板。
要为 Loki 数据源设置基于标签的数据源访问控制 (LBAC),请参阅配置 Loki 数据源的 LBAC。要为 Prometheus 数据源设置基于标签的数据源访问控制 (LBAC),请参阅配置 Prometheus 数据源的 LBAC。
使用 LBAC 过滤日志和指标
基于标签的数据源访问控制 (LBAC) 使您能够过滤对日志和指标的访问。通过使用标签选择器定义规则,您可以指定
- 日志:使用带有
namespace
或cluster
等标签的 LogQL 查询控制对日志行的访问。 - 指标:使用带有
job
或region
等标签的 LogQL 控制对指标数据点的访问,并控制对指标__name__
的访问。
这种灵活性允许团队将同一数据源用于多种用例,同时保持安全的访问边界。
开始之前
要能够将基于标签的数据源访问控制 (LBAC) 用于指标,您需要在 Grafana 实例上启用功能开关 teamHttpHeadersMimir
。
限制
- 在数据源中配置的规则数量是有限制的,具体取决于规则的大小。
- 上限约为 500-600 条规则。
- 如果用户的团队没有基于标签的数据源访问控制 (LBAC) 规则,则该用户可以查询所有日志或指标。
- 如果管理员是拥有基于标签的数据源访问控制 (LBAC) 规则的团队成员,则这些规则将应用于管理员的请求。
- Cloud Access Policy (CAP) LBAC 规则会覆盖基于标签的数据源访问控制 (LBAC) 规则。CAP 是 Grafana Cloud 的访问控制。
- 请注意,这些数据源必须手动创建 - 暂不支持自动化配置。
- 目前不支持跨租户查询
您必须移除为该数据源配置的 Cloud Access Policy 中的任何标签选择器,否则 CAP 标签选择器会覆盖基于标签的数据源访问控制 (LBAC) 规则。有关 CAP 标签选择器的更多信息,请参阅将基于标签的访问控制 (LBAC) 与访问策略结合使用。
数据源权限
- 数据源权限允许用户访问查询数据源。
- 管理员在数据源级别设置权限。
- 属于该数据源的所有团队和用户都会继承这些权限。
推荐设置
建议您创建一个单独的数据源用于基于标签的数据源访问控制 (LBAC) 规则,以便您清晰区分使用基于标签的数据源访问控制 (LBAC) 的数据源和不使用的。所有团队都应该只有具有 query
权限的团队。您应该创建另一个未配置基于标签的数据源访问控制 (LBAC) 的数据源以获得完全访问权限。
LBAC 规则
Grafana 通过数据源将基于标签的数据源访问控制 (LBAC) 规则添加到 HTTP 请求中。
如果您为一个团队配置了多条规则,每条规则都会单独评估。查询结果包含匹配任一规则的行。
只有具有数据源 Admin
权限的用户才能在数据源权限标签页中编辑基于标签的数据源访问控制 (LBAC) 规则,因为更改 LBAC 规则需要与编辑数据源权限相同的访问级别。
要为数据源设置基于标签的数据源访问控制 (LBAC),请参阅配置数据源的 LBAC。
LBAC 规则的预置
我们建议使用我们的 Terraform provider 设置 资源数据源配置 LBAC 规则 的预置。请参阅我们的 provider 文档以了解如何为数据源配置规则。