Skip to main content
この記事は Spumote のソースコードから生成した試験出力です。内容は確認中のため、正式な仕様は担当者に確認してください。

この機能でできること

Spumote では、組織のデータを「一般」と「機密」の 2 つの領域に分けて保管し、見られる人・使える処理を仕組みで分けています。機密とは、メールアドレス・電話番号・氏名などの個人情報や、内部 ID など、扱える人を限定したいデータです。
  • 組織のデータセット(テーブルをまとめる入れ物)を、役割(層)・機密区分・保存場所(リージョン)の組み合わせで用意する
  • 機密データは専用のデータセット・ファイル置き場に隔離し、機密レベルのロールを持つ人だけが扱えるようにする
  • 一般レベルの人が、自動処理(ワークフロー)を経由して機密データを持ち出せないようにする
  • 個人情報を取り除いたテーブルだけを、一般領域から参照できるように公開する

画面の場所

  • データセットの構成: データ › しらべる › データ一覧(BigQuery)› データセット の「レイヤ管理」
  • サービスアカウントと準備: 設定 › 接続先 › サービスアカウント
  • ファイル置き場の機密領域: 設定 › 接続先 › ファイル接続先
  • ロールの機密レベル: 設定 › 利用者と権限 › 権限

機密レベルの考え方

ロールの機密レベル

利用者のロール(役割)には、それぞれ「機密レベル」が設定されています。 ロールの編集画面の「このロールでできること」には、「機密データ: 表示」または「機密データ: マスク表示」と表示されます。表示ラベルは「一般」「機密」で固定です。

機密データの境界(どこで守られているか)

自動処理(ワークフロー)経由の持ち出し防止

自動処理は利用者とは別のアカウントで動くため、「一般レベルの人が機密データを読む処理を作り、外へ書き出す」ことを防ぐ仕組みがあります。
  1. 機密に触れる処理の判定: 機密データセット・機密の認証情報・機密フォルダを参照する処理は「機密に触れる処理」とみなされます。SQL の中身からも参照を読み取り、内容を確定できない書き方(動的に組み立てる SQL など)は安全側に倒して機密扱いになります。
  2. 作れる人の制限: 機密に触れる処理の作成・変更・有効化・手動実行は、機密レベルのロールを持つ人だけが行えます。
  3. 出力先の制限: 機密データを材料にした処理の出力先は、機密データセット・機密の認証情報・機密フォルダに限られます。一般領域のデータセット(サンドボックスや一時テーブルを含む)や一般の接続先には書き出せません。
  4. 一般レベルの人が作った処理は、一般レベル用のアカウントで動くため、仮にチェックをすり抜けても機密データセットは読めません。

個人情報を除いたテーブルを一般に公開する

機密データセットの中で、テーブル名を dmz__ で始めたテーブルは「個人情報を取り除いて一般領域から参照してよいテーブル」として扱われます。たとえば、機密データから会員 ID ごとの購買スコアだけを集計し dmz__member_scores として書き出すと、一般レベルの処理からも参照できるようになります。dmz__ テーブルを書き出せるのは機密レベルの人が作った処理だけで、その命名自体が「公開してよい」という宣言になります。

組織データセットの構成

命名のルール

組織のデータセットは次の形で名前が付きます。 {組織ID}_{層}_{機密区分}_{リージョン}(例: 13a16de9aa24_l0_gnrl_ane1)

層(役割)の意味

データ一覧の「役割」列にもこの名前で表示されます。 機密区分(scrt)のグループは、l0(取り込み)・l3(出力)・tmp(一時)の 3 層だけで構成されます。機密の生データは l0、機密を含む出力は l3、機密を扱う処理の途中データは tmp に置きます。

グループと構成パターン

データセットは「機密区分 × リージョン」のグループ単位で作られます。 組織の「基準リージョン」の一般グループは、組織の基準グループとして常に作成されます(システム必須)。構成の組み合わせには「日本・標準」「日本・機密」「日本US・標準」「日本US・機密」「US・標準」「カスタム構成」といった名前が付いて表示されます。

基本的な使い方(レイヤ管理)

  1. データ › しらべる › データ一覧(BigQuery)› データセット を開き、「レイヤ管理を開く」を押します。閉じている間は「現在の構成: ○○ — N データセット」と表示されます。
  2. 東京リージョン/US リージョン × 個人情報を扱わない(標準)/個人情報を扱う(機密境界)の表で、必要なグループを選びます。
  3. 一覧の「状態」で、各データセットが「作成済み」「この設計で作成」「この設計で不要」「対象外」のどれかを確認します。
  4. 「この設計で不足分を作成」を押すと、足りないデータセットだけが作成されます。既存のデータセットが削除されることはありません。
  5. 不要なデータセットは、行の「削除」から、参照しているワークフロー・ジョブ定義・テーブル数を確認し、データセット ID を入力して削除します。

基準リージョンの変更

「基準リージョン」(US(推奨)/東京 (ane1))は、取り込みの既定の着地先と、書き出しの一時データセットが作られるリージョンです。変更すると次のことが起こるため、確認画面で内容を確認してから「基準リージョンを変更」を押します。
  • 着地先を明示していない取り込みの既定の着地先が新しいリージョンに切り替わる
  • 書き出しの一時データセットが新しいリージョンに作られる
  • 組織サービスアカウントの権限が新しい基準グループに付け直される
  • 旧基準のグループは opt-in グループとして残る(不要ならレイヤ単位で削除)

サービスアカウント側の準備

設定 › 接続先 › サービスアカウント の「Spumote 内 BigQuery の準備」で「自動セットアップを実行」を押すと、組織用データセットの作成とサービスアカウントへの権限付与が順に行われます(何度実行しても安全です)。

ファイル置き場の機密領域

Spumote 管理のファイル置き場(S3 / GCS / SFTP)も、一般領域({組織ID}_gnrl/)と機密領域({組織ID}_scrt/)に分かれています。
  • 機密領域は「機密領域を有効化」で使えるようにします。機密レベルのロールの人が接続先を作るときに「領域」で「機密」を選ぶと、未設定なら作成時に有効化されます(owner の権限が必要です)。
  • 機密領域の鍵(scrt 鍵)は、機密領域のフォルダの中だけにアクセスできます。
  • 機密領域を無効化しても、フォルダ内のファイルは削除されません。有効な鍵が残っている間は無効化できません。
  • SFTP アカウントも領域ごとに別のアカウントとして作られます。

活用例

  • 会員マスタの取り込み: 氏名・メールを含む会員ファイルは機密の取り込み層(l0_scrt)に取り込み、会員 ID と属性だけを一般の層に渡して集計に使います。
  • 個人情報なしのスコアを共有: 機密データから算出した購買スコアを dmz__ テーブルとして書き出し、一般レベルのマーケ担当者のセグメント作成や分析に使います。
  • 配信リストの受け渡し: メールアドレス付きの配信リストは機密の出力層(l3_scrt)に作り、機密の接続先から配信システムへ書き出します。

注意点・制限

  • 機密データセットの作成・削除、ファイル置き場の機密領域の有効化・無効化は、画面上は owner(組織オーナー)のみ操作できます。この権限は既定では owner だけが持ち、カスタムロールへの付与は owner に依頼します。
  • 機密以外のデータセットの削除・テーブルの削除、基準リージョンの変更も、画面上は owner のみ操作できます(データセットの管理権限が必要で、既定では owner だけが持ちます)。
  • 一時データセット(tmp)はシステムが使うため削除できません。
  • 機密領域が有効な組織では、基準リージョンを変更できません(先に機密領域を無効化する必要があります)。
  • 機密データセット・機密の認証情報・機密の SFTP アカウントは、機密レベルを持たない利用者には存在自体が表示されません。
  • 機密の認証情報の保護は画面上の制御のみで、BigQuery の機密データセットのような仕組み側の保護はありません。
  • 機密データセットは、組織データセット共有(外部サービスアカウントへの共有)の対象にできません。
  • 一般レベルのロールでは、データ抽出の結果がすべて「****」でマスク表示されます。

関連ページ