Grafana 8.5 リリースでは、サービス アカウントの概念を導入しました。Grafana 9.1 リリースでは、サービス アカウントを一般公開しています。これは技術的な必要性から生まれたプロジェクトですが、Grafana LabsでAPIトークンとマシン間の対話について見直す良い機会となりました。
New in Grafana 9.1: Service accounts from Grafana Labs on Vimeo.
サービス アカウントとは?
サービス アカウントはGrafanaユーザーではありますが、人間ではなくマシンです。 Grafana のデータ ソースの数を毎日カウントしたり、Terraform を使用してアラートをプロビジョニングするなど、自動化されたワークロードやコンピュートのワークロードに使用されるのがサービス アカウントです。これらは、Grafana の API との対話を必要とする、Grafana 外部のスクリプトまたはサービスで実行するタスクです。
オートメーションがこの新しい概念を使用するには、既存のサービス アカウントにリンクされたサービス アカウント トークン (SAT) を作成する必要があります。このトークンにより、Grafana の API に対して、ベアラートークン認証を持つサービス アカウントとして認証できるようになります。
curl --request GET \
--url http://mygrafana.example.orb/api/datasources \
--header 'Authorization: Bearer
glpl_EX7x97tgxct383QhbrPIZgqPi9Q56w4H_7552804e'
Grafana 9.0でRBAC(ロールベースのアクセス制御) のGA版 を作成し、Grafana 9.1 で RBAC 機能を拡張するのと並行して、以下のような機能を搭載しています。
この機能により、使いやすさを維持しながら、マシン間の対話をより安全に管理することができます。
サービス アカウントの機能
組織へのリンク(ユーザーではない)
サービス アカウントは組織にリンクされているため、組織内の複数の管理者が同じサービス アカウントを管理できます。これにより、管理者が組織を離れるときにトークンをローテーションする必要がなくなります。
また、Grafana Enterprise または Grafana Cloud Advanced の RBAC を使用することで、管理権限を特定の管理者に制限したり、ユーザー間で移行することもできます。
既存の API キーをサービス アカウントに移行する
API キーの現在のシステムでは、アクセス制御ロールの割り当てはサポートされていません。トークンをローテーションすることなく、これらのキーを独自のサービス アカウントに移行するオプションがあります。
パーミッションのスプロール化の削減
サービス アカウントには独自のロールとパーミッションがあるため、サービス アカウントとそのトークンへのアクセスを、必要な最小限のアクセス パーミッション セットに合わせて調整できます。RBAC と組み合わせて、外部サービスに必要なアクセス パーミッションを付与できるため、トークンの漏洩や外部サービスへの過度のアクセスが発生した場合にインスタンス全体が侵害されるリスクを軽減できます。
1 つのサービス アカウントに複数のトークンを関連付ける
サービス アカウントは複数のトークンを持つことができます。有効期限を繰り返すことでトークンをローテーションする方が簡単で、サービス内のマシンごとに個別のトークンを作成できます。これらのトークン間で同じアクセス パーミッション セットを維持し、不足していることに気付いた場合は新しいアクセス パーミッション を追加できます。
コードベースに潜むトークンを簡単に識別
Grafana の現在の API キー システムは base64 でエンコードされたトークンを使用していますが、これはコード ベース内の正当なコンテンツと間違えられる可能性があります。これらのトークンは、Grafana Cloudトークンと同じ形式を共有しているため、どのGrafanaスタックコンポーネントがトークンを発行したかを確認するのが面倒でした。
以前のキー フォーマット
新しいキー フォーマット
サービス アカウント トークンを変更して、視覚的に識別可能なパターンに従うようにすることで、トークンがコードベース内にハードコーディングされたことを開発者が認識できるようにしました。特定のトークン内のサービス アカウント トークンを “glsa” プレフィックスで識別できます。
トークンの有効性を簡単に検証できるように、トークンにチェックサムも追加しました。また、これがオープンソースのSecret Scannerの誤検知率を低減し、ユーザーが漏洩したキーを発見するのに役立つことを期待しています。
このキー フォーマットは、長さが短いにもかかわらず、以前のキーフォーマットと同じエントロピーを持ち、有効なトークンへの総当たり(ブルートフォース)が難しいことを保証します。
Grafana のサービス アカウントの今後の予定
Grafana AuthNZチームは、Grafanaにおいて認証と認可をより完全かつ安全にする機能を、継続して提供することを約束します。
サービス アカウントの詳細については、または今すぐ使用を開始する場合は、新しいサービス アカウントのドキュメント をご覧ください。
オブザーバビリティを使い始める最も簡単な方法である、Grafana Cloud をまだご利用でない場合は、今すぐGrafana Cloud Pro の 14 日間の無料トライアル にサインアップしてください。このトライアルでは、無制限のメトリクス、ログ、トレース、およびユーザー、長期保存、そして1つのエンタープライズプラグインにアクセスできます。
関連記事
- 2022.12.19Grafanaコラム【動画公開】<デモ>Grafanaを使って、Kubernetesデータを可視化しよう
- 2022.10.18Grafanaコラム【動画公開】<デモ>初心者向け~Grafanaの始め方
- 2022.08.24GrafanaProduct Releases翻訳記事Grafana 9.1 の新機能: サービス アカウントを 一般公開
- 2023.09.19Kong翻訳記事ガバナンスを標準化して API のセキュリティ リスクを軽減
- 2023.10.28KongProduct ReleasesKong Insomnia 8.0 に Scratch Pad、リアルタイム コラボレーション、Enterprise SSO、AI 生成テスト機能が追加