配置启用MFA的AWS账户以连接Grafana Athena插件
解决Grafana Athena数据源MFA认证问题的步骤
方法1:手动生成临时凭证并配置隐藏字段
- 先通过AWS CLI生成带MFA的临时会话凭证,替换命令中的账号ID、MFA设备名称和MFA验证码:
执行后会返回包含aws sts get-session-token --serial-number arn:aws:iam::123456789012:mfa/your-mfa-device-name --token-code 123456AccessKeyId、SecretAccessKey、SessionToken的JSON结果。 - 打开Grafana的Athena数据源配置页面,按F12启动浏览器开发者工具。
- 在Elements面板中搜索
sessionToken,找到对应的隐藏输入框,修改其style属性为display: block使其可见。 - 将CLI返回的三个值分别填入对应的输入框(Access Key、Secret Key、Session Token),保存后测试连接。
方法2:通过Grafana配置文件直接定义数据源
- 找到Grafana的主配置文件(通常路径为
/etc/grafana/grafana.ini,具体取决于部署方式)。 - 在配置文件的
[datasources]区块下添加以下配置(替换占位符为你的实际信息):[[datasource]] name = Athena-MFA type = grafana-athena-datasource url = https://athena.us-east-1.amazonaws.com access = proxy jsonData = { "database": "your-database", "region": "us-east-1", "workgroup": "primary" } secureJsonData = { "accessKey": "临时AccessKeyId", "secretKey": "临时SecretAccessKey", "sessionToken": "临时SessionToken" } - 重启Grafana服务,进入数据源页面验证连接状态。
方法3:使用IAM角色(长期稳定方案)
- 创建一个具备Athena访问权限的IAM角色,在信任关系中添加Grafana所在环境的实体(如EC2实例角色、EKS服务账户等),并可按需开启MFA强制认证。
- 在Grafana Athena数据源配置中,选择
IAM Role ARN模式,填入创建好的角色ARN。 - 确保Grafana所在服务器能通过AWS实例元数据服务或本地AWS配置自动获取临时凭证,无需手动输入密钥,AWS会自动处理MFA验证流程。
内容的提问来源于stack exchange,提问作者Theo Cerutti
相关产品推荐
相关产品推荐

