You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求指导EC2上Grafana与AWS Cognito集成认证及架构选型

Hey Johnny90,刚好我对这两块内容都有实操经验,给你详细解答下:

1. 将EC2上的Grafana与AWS Cognito集成实现认证

我之前帮团队配置过这个场景,整理了一套适合新手的步骤,比零散的教程更贴合EC2部署的环境:

前置准备

  • 确保你的EC2实例能访问AWS Cognito服务(如果是VPC内实例,需要配置VPC端点或者确保路由能到公网)
  • 已经在AWS控制台创建好Cognito用户池,并且添加了测试用户
  • 拥有Grafana配置文件(默认路径是 /etc/grafana/grafana.ini)的修改权限

具体操作步骤

步骤1:配置Cognito用户池客户端

登录AWS控制台进入Cognito,选择你的用户池:

  • 切换到App integration标签页,点击App clients and analytics,创建新的App client
    • 务必取消勾选Generate client secret(Grafana的OAuth2客户端不支持带secret的配置)
    • 在Allowed callback URLs里填入 http://<你的Grafana公网IP或域名>:3000/login/generic_oauth(用HTTPS的话替换成https)
    • 保存后记下Client ID和用户池的自定义域名(比如 your-pool.auth.us-east-1.amazoncognito.com)

步骤2:修改Grafana OAuth2配置

打开Grafana的配置文件,找到 [auth.generic_oauth] 段落,替换成以下配置:

[auth.generic_oauth]
enabled = true
name = AWS Cognito
client_id = <你的Cognito Client ID>
scopes = openid email profile
auth_url = https://<你的Cognito域名>/oauth2/authorize
token_url = https://<你的Cognito域名>/oauth2/token
api_url = https://<你的Cognito域名>/oauth2/userInfo
allow_sign_up = true
  • 把尖括号里的内容替换成你自己的信息
  • 如果需要限制特定用户组访问,可以添加 allowed_groups = group1,group2 字段(前提是Cognito里已经创建了对应用户组并分配了用户)

步骤3:重启Grafana服务

在EC2实例上执行命令重启服务:

sudo systemctl restart grafana-server

之后访问Grafana登录页,就能看到AWS Cognito的登录选项,点击后跳转到Cognito的登录界面,验证通过后即可进入Grafana。

2. Grafana+ElasticSearch的VPC内架构方案评估

关于你提到的「Grafana和ES部署在VPC内,通过API Gateway+Lambda与外部通信」的方案,我得结合你的实际场景分析是否最优:

这个方案的优势

  • 安全性拉满:Grafana和ES都在VPC私有子网里,不需要暴露公网IP,攻击面大幅缩小;API Gateway可以配置IAM认证、WAF防护,进一步加固访问安全
  • 细粒度权限控制:Lambda作为中间层,可以实现复杂的权限逻辑,比如不同用户只能查看特定ES索引的监控数据,或者结合企业内部权限系统做二次校验
  • 弹性扩展:API Gateway和Lambda都是Serverless服务,能自动应对访问流量的波动,适合未来有大量外部用户访问监控的场景

潜在的局限性

  • 运维复杂度提升:多了两层中间件,排查问题时需要同时查看Grafana日志、Lambda日志和API Gateway日志,对运维人员的排查能力要求更高
  • 额外成本:虽然Lambda有免费额度,但如果监控请求量较大,会产生API Gateway和Lambda的费用;另外VPC内的Lambda需要配置弹性网卡,也会有少量额外成本

什么时候更适合采用这个方案?

如果你的场景符合以下任意一点,这个方案就是更优选择:

  • 有严格的合规要求,不允许Grafana直接暴露到公网
  • 需要对Grafana的访问做复杂的权限校验(比如和企业SSO系统联动)
  • 未来有大规模外部用户访问监控平台的规划

轻量化替代方案

如果只是想把Grafana和ES放在VPC内,暂时不需要复杂权限逻辑,可以选择更简单的架构:

  • 给Grafana配置VPC内的应用负载均衡(ALB),通过ALB的安全组限制访问来源(比如只允许企业办公IP访问)
  • 配置ES的安全组,只允许Grafana所在的安全组访问,这样架构更简洁,运维成本更低

内容的提问来源于stack exchange,提问作者Johnny90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:10:33