
EC2上のGrafanaからTimestreamに接続する際にIAMロールで認証してみた
はじめに
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のプラグインを使用する際、接続設定で結構ハマったので記事にしてみました。