AWS环境下Grafana对接Prometheus的IP白名单配置求助
以下是几个可行的解决方案,帮你绕过安全组规则数量限制,同时避免暴露应用到全网:
利用AWS私有网络打通访问
如果使用托管版Grafana(比如Grafana Cloud),可以配置AWS PrivateLink或者VPC peering,让Grafana通过私有网络直接访问VPC内的Prometheus实例。这种方式下,你只需要在Prometheus的安全组里添加Grafana所在私有网络的CIDR段即可,一条规则就能覆盖所有Grafana的访问流量,完全不需要公网IP白名单。聚合Grafana IP为CIDR块
把Grafana提供的100+个零散IP整理聚合为CIDR网段。很多IP会属于同一网段,用ipcalc这类工具把连续的IP合并成更大的网段,比如把多个单个IP合并成/24或/23段,这样能大幅减少安全组规则数量,大概率能控制在AWS建议的120条以内。结合网络ACL扩展规则数量
AWS安全组入站规则限制在120条,但网络ACL每个方向支持最多200条规则。你可以将一部分Grafana的IP规则配置在网络ACL中,安全组保留核心规则。注意网络ACL是无状态的,入站和出站规则都要对应配置,且要设置好规则优先级,避免出现访问异常。部署反向代理中转访问
在Prometheus前端部署Nginx或者AWS ALB作为反向代理。将Prometheus的安全组规则设置为仅允许反向代理的IP访问,然后在反向代理上配置Grafana的100+IP白名单。反向代理的白名单规则限制远宽松于安全组,这样既保护了Prometheus,又能实现Grafana的访问控制。
内容的提问来源于stack exchange,提问作者Geebee

