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など)に登録済みであること

構成図

file

手順

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

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

file

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

file

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

file
file
file

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

file

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

file

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

file
file
file

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

file

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

file

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

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

file
file

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

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

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

例:

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

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

file

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

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

file

file

file

file

file

file

file

file

file

file

file

file

file

file

file

file

file

file

file

file

file

file

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

file

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

file

file

file

ログインできました。
file

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

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

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

file

file

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

file

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

file

以上、その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

Last modified: 2023-07-16

Author