はじめに
QuickSight では、3つのユーザー管理方式を利用できます。
- ローカルのユーザー
- IAM のユーザー (フェデレーションを含む)
- Active Directory のユーザー
IAM ユーザーを利用して QuickSight のダッシュボードなどの利用が出来ますが、IAM User と同期するような形で QuickSight 側のローカルユーザーが必要です。これを全部手作業で作成するのは大変なので、IAM ユーザーを利用した自己プロビジョニング機能を使うことで、QuickSight 側のローカルユーザーを自動作成できます。
こちらの記事で、Azure AD と IAM のフェデレーション環境を構築しました。今回の記事は、IAM のフェデレーション環境で、自己プロビジョニングを行ってみた手順を紹介します。
補足
この記事の構成では、Azure AD にログインした場合、AWS のマネージメントコンソールが表示されます。その後、QuickSight のページへ遷移すると、QuickSight 自己プロビジョニングが行われる形です。
AWS マネージメントコンソールへのアクセスではなく、QucikSight しか見せたくない状況では、次の URL を参考にすると良いでしょう。マネージメントコンソールを経由せずに、直接 QucikSight が開けます
URL : https://qiita.com/sugimount-a/items/9fb1c7a204f372c2c95d
3種類の IAM Role の作成
IAM ユーザー側で QuickSight ユーザーの自己プロビジョニングをするときに、3種類のロールを選べます。IAM ユーザーについている IAM Policy によって、自己プロビジョニングをした時に付与されるロールが自動的に選択されます。
- Admin (管理者)
- Author (作成者)
- Reader (閲覧者)
今回の記事では、3つの IAM Role を作成していきます。
- Admin 用ポリシー : QuickSightAdminforAzureAD
-
quicksight:CreateAdmin
を指定
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"quicksight:CreateAdmin"
],
"Effect": "Allow",
"Resource": "arn:aws:quicksight::xxxxxxxxxxxx:user/${aws:userid}"
}
]
}
- Author 用ポリシー : QuickSightAuthorforAzureAD
-
quicksight:CreateUser
を指定
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"quicksight:CreateUser"
],
"Effect": "Allow",
"Resource": "arn:aws:quicksight::xxxxxxxxxxxx:user/${aws:userid}"
}
]
}
- Reader 用ポリシー : QuickSightReaderforAzureAD
-
quicksight:CreateReader
を指定
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"quicksight:CreateReader"
],
"Effect": "Allow",
"Resource": "arn:aws:quicksight::xxxxxxxxxxxx:user/${aws:userid}"
}
]
}
IAM Policy の設定スクリーンショットです。
3個の IAM Policy が作成されています。
Create Role を押します。
Azure AD と連携するために SAML を選択して、以前作成した Azure AD の Identity Provider を選択します。
作成した Policy を指定します。
IAM Role の名前を指定して、Create をします。
同様の手順を繰り返して、3個の IAM Role を作成完了している状態です。
Azure AD 側で、プロビジョニングを行う
AWS IAM 側であらたに IAM Role を3個作ったので、再プロビジョニングを行います。これによって Azure AD 側に 新たな Role が認識されます。プロビジョニングに多少時間がかかるので、待ちましょう。自分の環境では30分くらい待機しました。
Azure AD 側でユーザー作成
このあたりの手順を参考に、Azure AD 側でユーザーを3人分作成します。このユーザーを使って、AWS マネージメントコンソール経由で QuickSight にログインができます。
- quicksight-admin01
- quicksight-author01
- quicksight-reader01
3個のユーザーを作成しました。
Azure AD 側のアプリケーションに3個のユーザーを追加
事前に、Azure AD と AWS マネージメントコンソールをフェデレーションする設定が入れてあります。エンタープライズアプリケーションとして登録されており、これに作成したユーザーを追加します。
エンタープライズアプリケーションを選択します。
AWSとして登録したアプリケーションを選択します。
ユーザーの追加を行います。
Azure AD 上のユーザーを選択します。
AWS から読み取った IAM Role を選択します。ユーザーに紐づけたいロールを選択しましょう。
同じような手順で、3人分追加をします。
自己プロビジョニングを実行する!
これで Azure AD のフェデレーションを利用した、QuickSight の自己プロビジョニング環境が出来ました。
下記 URL にアクセスして、Azure AD のポータル画面を開きます。
Adminユーザー
User 名の入力
パスワードの入力
AWS を選択
AWS マネージメントコンソールにログインできました。QuickSightAdminForAzureAD
の IAM Role を使ってログインしていることがわかります。
QuickSight を開きます。
自分自身のメールアドレスを入力して、続行を押します。
自己プロビジョニングが完了して、QuickSight の画面が開かれます。
分析やデータセットは、初期状態の Sample のみ表示されている状態です。
なお、この時ユーザー一覧を見ると、想定通り管理者(admin)で自己プロビジョニングされていることがわかります。
QucikSght のユーザー名は、AWS マネージメントコンソールの右上に表示されていた文字列をそのまま使っています。
Authorユーザー
User 名の入力
詳細な手順は Admin と同じです。AWS マネージメントコンソールにログインできたので、QuickSight を開きます。
これにより、ユーザーが自動的に追加されています。作成者(Author) ロールで自動プロビジョニングされています。
Readerユーザー
Reader のユーザーでログイン。
マネージメントコンソールにログインできたので、QuickSight を開きます。
Reader 専用の画面となっており、データセットなどが設定できないようになっています。
なお、このときの QuickSight 側のユーザーに、閲覧者として自動プロビジョニングされています。
まとめ
Azure AD と AWS IAM のフェデレーション環境で、QuickSight の自己プロビジョニングを設定できました。Azure AD でユーザーを作成するときに、適切な IAM Role を選択することで、選択した IAM Role に応じた Role(Admin or Author or Reader) で自己プロビジョニングができました。
大規模になってくると、Azure AD のような IdP を使ったユーザーの一元管理をすることで、運用負担が軽減できます。