Amazon QuickSightのユーザー分類とアセットの共有をおさらいする
データアナリティクス事業本部インテグレーション部コンサルティングチーム・新納(にいの)です。
AWSが提供するクラウドベースの可視化サービスであるAmazon QuickSightをはじめ、世の中にはいろんなBI製品があります。その中でも、どれも似ているようでちょっとずつ違う、ユーザー分類と権限管理についてQuickSight版を改めて整理してみました。
Amazon QuickSightの基本
ユーザー分類を理解するために、まずはQuickSightでできることをおさらいしておきましょう。大きく分けて以下の3つのステップがあります。
データセットを作成
まずは可視化対象のデータが格納されたデータソースへQuickSightから接続するか、インメモリデータベースであるSPICEへデータをインポートします。この単位をデータセットと呼びます。
分析を作成
データセットに接続し、実際にグラフを作成・編集して可視化します。QuickSightでは可視化の編集は常に「分析」と呼ばれる単位で実施します。
ダッシュボードを公開
「分析」でグラフを作成したらダッシュボードを公開し、他のユーザーに共有します。フィルタの条件変更はできますが、グラフそのものの編集は「分析」から実施する必要があります。
ユーザー分類
QuickSightでは3種類のユーザー権限があります。
Admin(管理者)
- Authorが持つすべての機能に加え、QuickSightでのユーザー管理・SPICEキャパシティの購入可能
- 料金
- Standard Edition: 1ユーザーあたり$12/月(年間契約時$9)
- Enterprise Edition: 1ユーザーあたり$24/月(年間契約時$18)
Author(作成者)
- Adminが担う管理機能以外、QuickSightでの分析機能はすべて利用可能(データセット・分析・ダッシュボード作成)
- 料金
- Standard Edition: 1ユーザーあたり$12/月(年間契約時$9)
- Enterprise Edition: 1ユーザーあたり$24/月(年間契約時$18)
Reader(閲覧者)
- ダッシュボードの閲覧のみ可能
- Enterprise Editionのみ
- 料金
- 1ユーザーあたり最大$5/月
これらのユーザーをグループと呼ばれる機能で権限を付与したい単位でまとめることにより、後述する権限付与がもっと楽になります。
アセットに対する権限付与いろいろ
データセット・分析・ダッシュボードといったアセットを共有する際、閲覧や編集が可能なユーザーを制限したいケースはよくあります。QuickSightの機能では以下が提供されています。
- アセットを明示的に特定ユーザーへ共有
- 名前空間
- 共有フォルダ
- 行レベルセキュリティ/列レベルセキュリティ
アセットを明示的に特定ユーザーへ共有
アセット(データセット・分析・ダッシュボード)はそれぞれ明示的にユーザーを指定して共有可能です。
明示的にユーザーを指定して共有したり、共有フォルダ(後述します)に追加したりしない限り、アセットは作成者本人のみ閲覧・編集可能です。
名前空間
QuickSightはAWSアカウントにつき1環境しか作成できませんが、名前空間を使うことで論理的に環境を分離できます。いわゆるマルチテナントを実現する機能です。
- デフォルトでは「default」という名前の名前空間が使用される
- 名前空間の作成・操作はAWS CLIでのみ可能
- Authorは別の名前空間のデータセット・分析・ダッシュボードへアクセス・共有はできない
- コンソール上で作成した分析をテンプレート化し、各名前空間へ配布可能
以下の制限事項にご留意ください。
- default以外名前空間へのログイン認証にFederated Single-Sign Onの使用が必須
- Active Directoryでの認証には非対応
- Enterprise Editionでのみ利用可能
参照
共有フォルダ
名前空間では環境が論理的に分離されているため、ダッシュボードなどを気軽に他のユーザーへ共有できません。一方、共有フォルダはフォルダ単位でアセットの共有と閲覧権限をコントロール可能です。
- ブラウザ上で共有フォルダの作成、アセットをフォルダへ共有することが可能
- 共有フォルダでのユーザー管理
- 所有者(Owner):Admin・Authorに付与可能。フォルダ内にあるアセットの追加削除、ユーザーやグループの追加削除が可能
- 表示者(Viewer):Admin・Author・Readerに付与可能。フォルダ内のアセットに対し閲覧のみ可能
- ユーザーをグループ単位でまとめて、共有フォルダに権限を割り当てることで一括で権限付与可能
参照
行レベルセキュリティ・列レベルセキュリティ
「参照するデータセットは一緒なんだけど、ユーザーによって参照できるレコードやカラムを制限したい…」というケースでは、行レベルセキュリティ(RLS)や列レベルセキュリティ(CLS)が便利です。
- 行レベルセキュリティには以下のルールが適用可能
- ユーザーベース
- CSVファイルでどのユーザー/グループが、どの行を参照できるのか定義する
- タグベース
- QuickSightで匿名埋め込み機能でダッシュボードを公開している匿名ユーザー向け
- 何千人ものユーザーを QuickSight で管理したくないので、匿名埋め込みを使用して、認証済みおよび承認済みユーザーが表示できるアプリケーションに、選択したダッシュボードを埋め込みます。ただし、小売業者にはビジネス用のデータのみが表示され、他のデータは表示されないようにする必要があります。タグによる RLS を使用すると、顧客に関連するデータのみが表示されるようにできます。
- ユーザーベース
- 列レベルセキュリティ
- ユーザー/グループがどの列を参照できるのか定義する
参照
- Amazon QuickSight での行レベルのセキュリティ (RLS) の使用 - Amazon QuickSight
- データセットへのアクセスを制限するための列レベルのセキュリティ (CLS) の使用 - Amazon QuickSight
- Amazon QuickSightでデータセットへのアクセスを制限する | DevelopersIO
- QuickSightのRLS(Row-Level Security) が匿名ユーザーのダッシュボードで使えるようになりました。 | DevelopersIO
最後に
Amazon QuickSightでのユーザー分類とアセット共有についておさらいしました。ほとんどGUIから操作可能ですが、一部AWS CLIでの操作が必要なものもあります。まずは権限管理をどの程度まで実施する必要があるのか精査し、CLIを使って管理が可能なのか、すべてGUIで管理する必要があるのかどうか検討し、運用を考えると安心です。