こんにちは。AWS CLIが好きな福島です。
はじめに
今回は、以下の動画を視聴したため、QuickSightのユーザーおよび権限管理について、備忘としてブログに記載いたします。
◆QuickSightアカウント/ユーザー管理におけるポイント
動画: https://youtu.be/r-gZbtN9XP8
資料: Amazon QuickSight
アカウント/ユーザー管理におけるポイント
前提
AWSが提供するマネージドなBIツールであるQuickSightでは、専用のコンソールが存在します。 そのため、QuickSight内でユーザーや権限の管理を行う必要があります。 (後述いたしますが、IAMやActive Directoryと連携することは可能です。)
また、QuickSightには、Standard,Enterprise,Enterprise+Q Editionが存在するのですが、Standard Editionでは利用できない機能があります。
◆イメージ
ユーザー管理
QuickSightにおけるユーザー管理は、以下の3つの方法が存在します。
①emailアドレス管理(QuickSight独自)
②IAM + フェデレーションによるSSO
③Active Directory連携
以降、それぞれの詳細を記載いたします。
①emailアドレス管理(QuickSight独自)
◆概要
- QuickSight独自のID管理機能
- emailアドレスがID
◆用途
- 小規模な運用
- 社内ユーザーはIAM、社外はemail管理などで分けて利用
②IAM + フェデレーションによるSSO
◆概要
- ID管理にAWS IAMの機能を利用
- IAMユーザーがQuickSightに初めてアクセスした際、QuickSight内に自動でユーザーをプロビジョニング可能
- IAMの機能を使った権限調整が可能
◆用途
- 中~大規模利用での一般的な認証
- IAMユーザーを直接利用し、ログイン方法等はIAM側の機能で統制
③Active Directory連携
◆概要
- QuickSightがMicrosoft Active Directoryと連携して認証
- QuickSightのホームリージョンと同一リージョンのAWS Managed Microsoft ADが必要
- オンプレ上やEC2上のADを利用する場合、AD Connectorの配置が必要
◆用途
- 既に利用しているADで管理されている所属情報とQuickSightを厳密に連携させたい場合
グループ管理
QuickSightではグループを作成し、ユーザーを所属させることができます。 また、分析やダッシュボードの共有をグループ単位で行うことができます。
※グループの作成はコンソールから可能ですが、ユーザーをグループに追加するためには、APIを使う必要があります。
◆イメージ図
ユーザーの権限管理
ここからユーザーの権限管理について記載いたします。
権限の種類
QuickSight内には、大きく3種類の権限が存在します。
(ユーザーごとにどの権限を付与するか定義します。)
①Admin
- QuickSightのユーザーやSPICE容量の管理が可能
- AuthorとReader、同等の権限も持つ
②Author
- データソースの定義やデータセットの準備が可能
③Reader
- ダッシュボードの閲覧が可能
◆イメージ図
カスタムアクセス許可
QuickSightにはアクセス権限をより柔軟に定義できるカスタムアクセス許可があります。 詳細は以下を参照ください。
重要なところだけ引用しておきます。
- カスタム許可を機能させるには、AWS Identity and Access Management (IAM) フェデレーティッドユーザーを使用する必要があります。
- 他のユーザーのデフォルトのセキュリティコホート(admin, author, reader)を超える許可を付与することはできません。
たとえば、閲覧者アクセス権限を持つユーザーに、ダッシュボードの編集許可を付与することはできません。- 許可をカスタマイズするには、"quicksight:*CustomPermissions" を使用する許可を持つ QuickSight 管理者である必要があります。
◆イメージ図
認可
原則として、リソースの作成直後は作成者しかアクセスできません。
作成者が共有をすることで他ユーザーがアクセス可能となります。
- ユーザーに共有
- グループに共有
- 共有フォルダに共有
加えてIAM側での認可も可能です。
フォルダについて
QuickSightには、個人フォルダと共有フォルダが存在します。
共有フォルダではAdmin/Author/ReaderにOwnerあるいはViewerのアクセス権限を付与して管理します。
Owner:
- Admin/Authorに対してフォルダーへのアクセス権限を付与し、アセット(サブフォルダ含む)の追加/削除とユーザー/グループへの共有権限がある。
Viewer:
- Admin/Author/Readerに対して付与でき、フォルダー内のアセットを閲覧するのに限定されている。
◆フォルダの構成例
QuickSightからAWSリソースへのアクセス権
QuickSightからAWSリソース(データソース)へアクセスする際に利用するaws-quicksight-service-role-v0という専用のIAMロールがあります。
このIAMロールは、直接更新するのがNGでQuickSightの管理画面から編集を行い権限の更新をする必要があります。 万が一、直接更新した場合、IAMロールを削除することでQuickSightが初回アクセス時に自動で再作成します。
◆イメージ図
IAMユーザーの自己プロビジョニング
QuickSightのユーザー管理にIAMを使っている場合、 QuickSight内のユーザーを自己プロビジョニングすることが可能です。
やり方としては、対象のIAMユーザーにIAMポリシーを付与することでそのIAMポリシーに応じたユーザー権限(QuickSight内の権限)を持ったユーザーを作成します。
- quicksight:CreateReader(Readerとして登録)
- quicksight:CreateUser(Authorとして登録)
- quicksight:CreateAdmin(Adminとして登録)
その後、そのIAMユーザーを利用しQuickSightにアクセスすることでQuickSight内にユーザーが作成されます。
終わりに
今回は、動画を視聴したため、その内容を備忘としてブログに記載いたしました。 ちょっといい感じにまとめられなかった感もありますが、どなたかのお役に立てれば幸いです。