AWSの管理アカウントのIAM Identity Center経由で、メンバーアカウントのAmazon Managed Grafanaにログインする

記事タイトルとURLをコピーする

はじめに

こんにちは!三宅です!

最近、データを可視化するために、Amazon Managed Grafana を初めて触りました! コンソールから「ワークスペースを作成」ボタンを押し、設定を行おうとしたのですが、以下のようなエラーが発生しました。

※ 認証方法に、IAM Identity Center を選択しました。

ユーザーがこのアプリケーションに対してマルチアカウントアクセスできるようにするには、AWS IAM Identity Center(AWS Single Sign-On の後継)でこのアプリケーションを有効にする必要があります。そのためには、以下の設定タスクを完了する必要があります。

AWS Organizations で IAM Identity Center を使用できるようにするには、組織の管理アカウントで IAM Identity Center コンソールにサインインしている必要があります。 詳細はこちら

要するに、認証方法に IAM Identity Center を指定した場合は、AWS Organizations の管理アカウントで IAM Identity Center を有効化する必要があるということのようです。

AWS Organizations の管理アカウントで IAM Identity Center を有効化し、管理アカウント内の Grafana へシングルサインオン(SSO)する構成は、なんとなくイメージが湧きます。

しかし、実運用では、分析環境などをメンバーアカウントに構築するケースも多いはずです。そこで、こんな疑問が湧きました。

「管理アカウントの IAM Identity Center を認証基盤として、メンバーアカウントに作った Grafana にも SSO できるのだろうか?」

上記の疑問を解決するため検証しました。

Amazon Managed Grafana とは?

参考:Grafana ダッシュボード - Amazon Managed Service for Grafana - AWS

  • Amazon Managed Grafana は、オープンソースの Grafana をベースにしたフルマネージドサービスで、運用データを簡単に可視化し、大規模に分析できるサービスです。
  • Amazon CloudWatch、Amazon OpenSearch Service、AWS X-Ray、AWS IoT SiteWise、Amazon Timestream、Amazon Managed Service for Prometheus など、運用データを収集する AWS データソースと統合されており、簡単に可視化可能です。
  • また、Amazon Athena と連携させることで、S3 に保存されている大量のデータを分析し、その結果をダッシュボードに表示することも可能です。

管理アカウントとメンバーアカウントの違い

  • AWS には、AWS Organizations という機能があります。
  • AWS Organizationsは、マルチアカウント運用における「統制・効率・安全性」を一気に高める仕組みで、複数のAWSアカウントを1つの管理コンソールから横断的に操作・監視・管理できます。
  • このAWS Organizationsを利用する際、アカウントは主に2つの役割に分かれます。

  • 管理アカウント

    • 組織に1つだけ存在する特別なアカウント。
    • メンバーアカウントの作成、招待、削除を行う。
    • 組織全体の請求を一括で管理する。
    • 組織内の全アカウントに適用するセキュリティポリシー(SCP)などを設定する。
  • メンバーアカウント

    • 管理アカウントによって管理される、複数存在するアカウント。
    • 開発環境、本番環境、分析環境など、目的ごとにアカウントを分離して利用するのが一般的

Amazon Managed Grafana の認証方法について

Amazon Managed Grafana の認証方法には、主に以下の2つがあります。

  • AWS IAM Identity Center
  • SAML (Security Assertion Markup Language)

今回は、AWS IAM Identity Center を利用します。

IAM Identity Center を利用する上で最も重要なのが、「どの AWS アカウントで有効化するか」です。
実は、IAM Identity Center には2種類のインスタンスが存在します。
参考:IAM アイデンティティセンターの組織インスタンスとアカウントインスタンス - AWS IAM Identity Center

  • 組織インスタンス

    • 設定場所:AWS Organizations の管理アカウント
    • 特徴: 組織内のすべてのメンバーアカウントへのアクセスを一元管理できる。IAM Identity Center のすべての機能をサポート。
  • アカウントインスタンス

    • 設定場所:メンバーアカウント
    • 特徴: 設定した単一のアカウント内だけで機能する。ユーザーや権限も独立しており、他のアカウントに影響を与えない。

具体的に、どのパターンなら Grafana へ SSO できるのかを表にまとめました。

管理アカウントでの有効化 (組織インスタンス) メンバーアカウントでの有効化 (アカウントインスタンス) メンバーアカウントの Grafana へ SSO できるか?
〇(有効) -(設定不要)
×(無効) 〇(有効) ×

検証

前提

  • 管理アカウントで、AWS Organizations が有効化されていること
  • 管理アカウントで IAM Identity Center が有効化されていること

管理アカウントで、IAM Identity Center にユーザー登録

まずは、管理アカウントの IAM Identity Center にユーザーを追加します。

  • 管理アカウントにログインします。
  • [IAM Identity Center > ユーザー]から、ユーザーの追加を行います。

  • 次に、[IAM Identity Center > グループ]から、グループの作成を行います。
  • 先ほど作成したユーザーをグループに追加します。

メンバーアカウントの作成

  • [AWS Organizations > AWSアカウント]から、AWS アカウントを作成します。

  • 管理アカウントから、作成したメンバーアカウントへスイッチロールします。

  • メンバーアカウントで、IAM ユーザーを作成します。

Grafana の作成

メンバーアカウントで作成した IAM ユーザーを利用して、メンバーアカウントにログインします。

ワークスペース作成

  • [Amazon Grafana > Workspaces > 新しいワークスペースを作成する]から、ワークスペースを作成します。
  • 今回は、東京リージョンでワークスペースを作成しました。
  • ちなみに、管理アカウントの IAM Identity Center が違うリージョン(例: バージニア北部)で有効化されている場合でも、問題なく動作しました。

認証アクセスの設定

  • 管理アカウントで、IAM Identity Center が有効になっていれば IAM Identity Center が「有効」扱いになります。
    • 最初は、ここでエラーが発生していたのですが、無事に有効になっています!

  • ワークスペース > 認証 から Grafana ユーザーを割り当てができます。
  • ここで表示されるユーザーは、管理アカウントの「IAM Identity Center」で登録されているユーザーになります。

  • Grafana には、「管理者」、「編集者」、「閲覧者」の3つの権限レベルがあります。
  • 今回は、ユーザーの権限に「管理者」を割り当てます。

  • 実際にログインしてみます!
  • ログインは、IAM Identity Center で登録したユーザー名を指定します。
  • ログインが成功すると、MFA デバイスの登録画面が表示されます。

Amazon Managed Grafanaを表示することができました!

Amazon Managed Grafana の料金について

ワークスペースにユーザーを招待し、管理者や編集者として割り当てただけでは、料金は一切発生しません。 ワークスペースにログイン、または Grafana API を1回以上実行すると月額の料金が発生します。

Amazon Managed Grafana なら、前払い料金も、必要な最低利用料金も、長期契約も必要ありません。ワークスペースごとのアクティブユーザーライセンスに基づいて、使用した分のみお支払いいただきます。その月に使用した分のみ、月末にお支払いいただきます。「アクティブユーザー」は毎月の請求サイクル中に Amazon Managed Grafana ワークスペースにログインしたか、API リクエストを少なくとも 1 回実行したユーザーです。

まとめ

  • 今回は、「管理アカウントのIAM Identity Centerを認証基盤として、メンバーアカウントに作ったGrafanaにもSSOできるのか?」という疑問を解消すべく、検証を行いました。
  • 結果として、この構成は問題なく実現可能であり、マルチアカウント環境におけるID管理の一元化に非常に有効そうです。
  • IAM Identity Centerは、必ず管理アカウントで有効化し、組織全体を管理できる「組織インスタンス」として構成する必要があります。メンバーアカウントで個別に有効化した「アカウントインスタンス」では、今回の目的は達成できません。

三宅陽子(執筆記事の一覧)

アプリケーションサービス部ディベロップメントサービス 1 課

2024年新卒入社です。 アプリケーションサービス部ディベロップメントサービス 1 課に所属しています。