サイトアイコン 協栄情報ブログ

AWS Microsoft Managed AD にてAD FSを構築し、SAML のAmazon Grafana ログインの ID プロバイダー (IDP) として構成(その2)

背景

以前、以下の理由でSAML認証方式でAmazon Grafana ログインの ID プロバイダー (IDP) として構成の手順を検証したので、備忘録として残したいと思います。

Amazon Managed Grafana の認証認可には以下の方式があるが、権限がないので AWS IAM Identity Center を構成できない

AWS IAM Identity Center (旧 SSO)
任意の SAML IdP

なお執筆時点では、次の外部IDプロバイダーのSAML認証がAmazonManaged Grafanaでテストされているようです。

Azure Active Directory
CyberArk
Okta
OneLogin
Ping Identity

それぞれのIDプロバイダーでの設定方法は下記を参考にして頂ければと思います。
https://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/authentication-in-AMG-SAML.html

前提条件

・検証用EC2(AMI名:Windows_Server-2019-Japanese-Full-Base-2023.03.15)が構築済みであること
・AWS Microsoft Managed ADが構築済みであること
・Windowsファイアウォールが無効に変更済みであること
・通信制御はセキュリティグループで実施済みであること
・サーバーでの作業は Admin ユーザーで実施すること
・ADFSサーバにEIPを関連付けて、EIPを公開DNS(お名前.comなど)に登録済みであること

構成図

手順

1.Amazon Managed Grafanaワークスペース作成

Amazon Managed Grafanaのダッシュボードに移動し、「ワークスペースを作成」を選択します。

任意のワークスペース名と説明を入力後、次へを選択します。

SAMLを選択します。
また、今回の検証では自動で作成されるIAM Roleを使うため「サービスマネージド」を選択し「次へ」を選択します。独自に作成したIAM Roleを指定する場合は「カスタマーマネージド」を選択してください。



「現在のアカウント」を指定し、任意のデータソースを指定します。検証ではデータソースに「Amazon Cloudwatch」を選択しています。

通知チャンネルは特に設定せず「次へ」を指定します。

設定の内容を確認し「ワークスペースを作成」を選択します。



ワークスペースの作成が始まりますので暫く待ちます。

ステータスが「アクティブ」になったことを確認し、「セットアップを完了にする」を選択します。

「ステップ 1: IDP を設定する」の以下3つのURLは、以降のIDプロバイダー(Azure Active Directory)側の設定で必要になりますのでコピーもしくはブラウザを表示したままとしてください。

・サービスプロバイダー識別子 (エンティティ ID)
・サービスプロバイダーの応答 URL (Assertion Consumer Service URL)
・サービスプロバイダーのログイン URL


2.ADFS を SAML IDP としてポータルに登録する

事前にメタファイルを取得しておいてください。ADFS サーバーにアクセスしてメタファイルをダウンロードします。
形式:

https://<ADFSサーバー名>/federationmetadata/2007-06/federationmetadata.xml

例:

https://adfstest.cjbiz.info/federationmetadata/2007-06/federationmetadata.xml

さきほどダウンロードしたメタファイルを選択し、「ステップ 2: メタデータをインポートする」にインポートします。

3.Amazon Grafanaを信頼できるサービス プロバイダーとして AD FS に登録する

AD FS 管理コンソールを開き、[証明書利用者信頼] → [証明書利用者信頼の追加] の順に選択します。

SAML認証の場合、IDプロバイダー側のユーザーに設定されたユーザー属性を指定することでGrafanaに対しての管理者権限を与えることが出来ます。ひとまずSAML連携が正しく出来ていて、正常にログインが出来るかどうかの確認を進めますので、ここでは「アサーション属性ロール」および「管理者ロールの値」には適当な値を入力し「SAML設定を保存」を選択します。後ほどで管理者権限を与えたログインの手順を記載します。

設定が正常に登録され、SAMLのステータスが「有効」であることを確認し、Grafana ワークスペース URLにアクセスします。

ログインできました。

4.管理者権限でAmazon Managed Grafanaにログインする

SAML認証の場合、IDプロバイダー側のユーザーに設定されたユーザー属性を指定することで、そのユーザー属性を持つユーザーに対して、Grafanaに対しての管理者権限を与えることが出来ます。それでは、検証用にユーザー属性を付与していきます。

ADFSの[要求規則の編集] にて規則の名前を指定し ([userpn]など)、[属性ストア] で、[Active Directory] を選択します。また、[LDAP 属性の出力方向の要求の種類への関連付け] で、ドロップダウン メニューから値を選択して、LDAP 属性が、規則から発行される出力方向の要求の種類に関連付けられる方法を指定します。

「アサーション属性をマッピングする」にて、アサーション属性ロールに「userpn」を入力し、管理者ロールの値にユーザーのメールアドレスを指定し「SAML設定を保存」を選択します。この設定を行うことによって、「userpn」という属性に、指定したメールアドレスを持つユーザーがGrafanaに管理者権限でログインすることが出来るようになります。このあたりの設定は環境や要件に応じて適宜変更してください。

管理者権限でログインできるか確認します。既にGrafanaにログインしている場合は一度ログアウト後、再度同じユーザーでGrafana ワークスペース URLにアクセスします。
左メニューに歯車マークなどのメニューが表示されていれば、管理者権限でログインできています。

以上、その2は完了になります。
AWS Microsoft Managed AD にてAD FSを構築し、SAML のAmazon Grafana ログインの ID プロバイダー (IDP) として構成(その1)

参考

https://blog.esrij.com/2022/10/25/post-45844/

https://dev.classmethod.jp/articles/amazon-managed-grafana-saml/

https://docs.aws.amazon.com/ja_jp/grafana/latest/userguide/authentication-in-AMG-SAML.html

モバイルバージョンを終了