パーミッション〜Tableau Serverのパーミッションについて理解する #tableau

はじめに

お早うございます。大阪オフィス唯一のDI部メンバー、tamaでございます。

本エントリは、Tableau Server Qualified Associateの試験ガイド「評価するスキル」に関連する内容となります。

  • ※2018年4月にバージョン2018.1がリリースされましたが、2018年5月現在のTableau Server Qualified Associateはバージョン10.5が対象のため、当エントリ内容もバージョン10.5を対象にしています。
  • ※バージョン2018.1は、アクセス管理まわりに変更が入っているため、2018.1に情報については別エントリをご覧ください。

本エントリの概要

今回は試験ガイドの「パーミッション〜以下を理解する」の部分を見ていきたいと思います。

Tableau Serverにおけるパーミッションとは

各コンテンツに対するアクセス許可

こちらのエントリでも説明していますが、パーミッションとは、各ユーザーがTableau Serverの特定のコンテンツに対して実行できる(又は実行できない)操作を定義するものです。(あるユーザーAは、Aというワークブックは編集できる。Bというビューは閲覧だけ…といった具合です。)

パーミッションは、各コンテンツに対して設定できます。各コンテンツとはプロジェクト、ワークブック、ビュー、データソースです。パーミッションは、各ユーザー(又はグループ)がそのコンテンツに対して行うことができる操作を定義します。

システムパーミッションの構成

定義できるパーミッションの種類として、上記のTableau Serverヘルプに詳細が記載されていますが、次項において、どのようなパーミッションがあるか、ザッと概観したいと思います。

システムに定義されているパーミッションについて

コンテンツによって設定できるパーミッションは異なってきますが(例えば接続はデータソース用)、一旦ズラっと並べると以下のような感じです。

  • ビュー
    • Tableau Server上の各リソースを表示します。
  • Web編集
    • ワークブック内のビューを、Web上で編集します。
  • 保存
    • 上書き保存します。
  • ワークブックのダウンロード/名前を付けて保存
    • Web編集したワークブックを、新たに名前をつけて保存します。
  • データソースのダウンロード
  • 削除
  • フィルター
  • コメントの追加
  • コメントの表示
  • サマリーデータのダウンロード
  • すべてのデータのダウンロード
  • 画像/PDFのダウンロード
  • カスタマイズの共有
  • 移動
    • ワークブックを別のプロジェクトに移動します。
  • パーミッションの設定
    • 各リソースのパーミッションを設定します。
  • 接続
    • データソースに接続します。
  • プロジェクトリーダー
    • プロジェクト内のすべての項目とプロジェクト自体のパーミッションを設定します。

これらの操作別に細かく権限(許可/拒否)を設定することが可能です。

パーミッションルール

とはいえ、各グループやユーザー毎に、各コンテンツに対する上記の操作群を、いちいち設定していては日が暮れてしまいます。

パーミッションには「パーミッションルール」というものが存在します。これは、パーミッションのプリセットのようなもので、予め上記の操作群に対して既に設定がなされています。パーミッションルールを使用することで、画一的に権限を設定することができます。

例外的に権限を変える必要があるユーザーやグループが出てきたら、その時はカスタムパーミッションで個別設定をしましょう。

パーミッション設計の細部

許可、拒否、継承の違いを説明する

パーミッションに対する操作権限の種類としては、以下があります。

許可

文字通り、その操作を許可します。

拒否

文字通り、その操作を拒否します。ちなみに、拒否は許可より優先されます。

継承

そのユーザーのパーミッションが明示的に設定されていない場合、そのユーザーが属しているグループのパーミッションが継承されます。(そのグループのパーミッションが、そのままユーザーのパーミッションとなる。)

継承されるパーミッションが無い場合(要するにパーミッションが無い)、パーミッションは拒否となります。

こういう時はどうなるの?

ここまで見ていくと、「ユーザーやグループがこういう状態の時は許可されるの?」といった疑問が湧いてきます。いくつかケースを挙げてみます。

2つのグループに属しているユーザーが、あるコンテンツに対して何らかの操作を行うことを想定した場合、ユーザーとグループのパーミッションによって、下記のような結果に分かれます。

そのユーザー グループA グループB 結果
なし 許可 拒否 拒否
なし 許可 許可 許可
許可 拒否 拒否 許可

上記を見て分かる通り、パーミッションの法則として以下があります。

  • 拒否は許可より優先される。
  • ユーザーパーミッションはグループパーミッションより優先される。

Tableau(Server)のセキュリティモデル

本エントリやこちらのエントリで、Tableau Serverのアクセス権限設定について色々と見てきましたが、ユーザーが実際に何らかの操作をする時、これらの設定はどのような形で作用するのでしょうか。

Tableau Serverがパーミッションを確認する順序

ユーザーがコンテンツに対して何らかの操作を行う場合、Tableau Serverは下記の順序でパーミッションを確認していきます。その確認事項が拒否された場合は次の確認に遷移します。逆に、その確認事項に該当した場合は、その操作が「許可」されます。(実行されます。)

  1. そのユーザーは「サーバー又はサイト管理者」ロールか?
    サーバーやサイトの管理者の場合、そのサイト下の全コンテンツに対して自由に操作できます。
  2. そのユーザーは「ライセンスなし」「ビューワーライセンス」「ゲストユーザー」か?
    これらに該当する場合、そのユーザー種別によっては、パーミッション関係なく拒否される操作が存在します。
  3. そのユーザーは「プロジェクト所有者」か?
    そのコンテンツが属しているプロジェクトの所有権を持っている場合、操作は許可されます。
  4. そのユーザーは「プロジェクトリーダー」パーミッションを所有しているか?
    そのコンテンツに対して「プロジェクトリーダー」パーミッションが設定されているユーザー(グループ)の場合、操作は許可されます。
  5. そのユーザーは「コンテンツ所有者」か?
    そのコンテンツの所有権を持っている場合、操作は許可されます。
  6. そのユーザーは、そのコンテンツにパーミッションを拒否されているか?
  7. そのユーザーは、そのコンテンツにパーミッションを許可されているか?
  8. そのユーザーが属しているグループは、そのコンテンツにパーミッションを拒否されているか?
  9. そのユーザーが属しているグループは、そのコンテンツにパーミッションを許可されているか?
  10. 以上のチェック全てを通り抜けた場合、そのユーザーの操作は拒否される

おわりに

今回はTableau Serverのパーミッションについて見てきました。試験ガイドの記載をかなり自分流に解釈したものになりましたが、Tableau Serverのアクセス管理関係は結構複雑なので、こういう形でまとめられてよかったと思っています。

参考