如何自动连接 Athena 与 aws Grafana 工作区

问题描述 投票:0回答:1

我创建了一个

aws_grafana_workspace
,并且我可以使用 Grafana 提供程序(使用工作区 URL 和 API 密钥进行配置)与其进行交互。但是,我在自动连接此工作区与 Athena 时遇到困难。

我的问题是,在创建

grafana_data_source
资源之前,我是否需要在 Grafana 中安装 Athena 插件,或者该资源是否足以将 Athena 与 Grafana 连接并启用查询和仪表板创建?

提前谢谢您。

amazon-web-services terraform grafana terraform-provider-aws amazon-athena
1个回答
0
投票

由于 Amazon Managed Grafana 中开箱即用地支持 Athena,因此您实际需要的唯一事情就是激活 aws_grafana_workspace 资源中的

数据源
。还需要有一个 IAM 角色,该角色引用正确的 AWS 托管策略作为权限策略,并允许 Amazon Managed Grafana 工作区代入它(在信任策略中):

resource "aws_grafana_workspace" "example" {
  account_access_type      = "CURRENT_ACCOUNT"
  authentication_providers = ["SAML"]
  permission_type          = "SERVICE_MANAGED"
  role_arn                 = aws_iam_role.athena.arn
  data_sources             = ["ATHENA"]
}

resource "aws_iam_role" "athena" {
  name               = "grafana-role-for-athena"
  assume_role_policy = data.aws_iam_policy_document.assume_role_policy.json
}

resource "aws_iam_role_policy_attachment" "grafana_athena_access" {
  policy_arn = "arn:aws:iam::aws:policy/service-role/AmazonGrafanaAthenaAccess"
  role       = aws_iam_role.athena.arn
}

data "aws_iam_policy_document" "assume_role_policy" {
  statement {
    sid     = "GrafanaAssume"
    effect  = "Allow"
    actions = [
      "sts:AssumeRole"
    ]
    principals {
      type        = "Service"
      identifiers = [
        "grafana.amazonaws.com"
      ]
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.