EC2上のGrafanaからTimestreamに接続する際にIAMロールで認証してみた

2024.06.29

はじめに

EC2上にインストールしたOSSのGrafanaからIAMロールを使ってTimestreamに接続してみました。
IAMロールと書きましたが、画面上は「AWS SDK」を使用するという表現になっています。
IAMロール以外には

  • accessKey and secretKey
  • credentials file

が選択可能です。
EC2上にGrafanaをインストールするのであれば、アクセスキーの発行が不要なIAMロールを使用する方法が安全かつ管理がしやすいと思います。

前提

今回はすでにEC2上にGrafanaがインストールされていることを前提とします。
Grafanaのインストールはこちらの記事を参考にして下さい。

IAMロール作成

今回はEC2にアタッチしたIAMロールを使ってTimestreamへのアクセス権限を制御します。
以下のポリシーのIAMロールを作成して、EC2にアタッチします。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["timestream:*"],
      "Resource": "*"
    }
  ]
}

今回は検証用に作成したので緩いアクセス権限にしていますが、必要に応じて適切なポリシーを設定して下さい。

Timestreamプラグインのインストール

EC2上のGrafanaにログインしてTimestreamのプラグインをインストールします。
Grafanaの左メニューより、 Connections > Add new connection よりTimestreamを選択します。
「Install」をクリックします。

インストールが完了したら「Add new data source」をクリックします。

データソースは次のように設定します。

項目
Name 任意のデータソース名
Authentication Provider AWS SDK Default
Default Region 任意のリージョン

この時、Assume Role ARNにロールのARNを設定するとエラーになるので気をつけましょう。
GrafanaはEC2にアタッチされたロールを使用するので、こちらで設定する必要はありません。

TimestreamのDatabase, Table, Measureに関しても作成済みのものを選択します。
設定が完了したら「Save & test」をクリックします。

問題なければ「Connection success」と表示されます。

Timestreamのプラグインの設定方法は以下のドキュメントにも記載されています。

データの可視化

それではダッシュボードを作成してクエリを実行してみます。

問題なくTimestreamに接続されてデータの可視化ができていますね。

まとめ

Timestreamのプラグインを使用する際、接続設定で結構ハマったので記事にしてみました。