> ## Documentation Index
> Fetch the complete documentation index at: https://docs.core.sprocket.bz/llms.txt
> Use this file to discover all available pages before exploring further.

# 機密データの取り扱いと組織データセット

> データを一般と機密の領域に分けて守る仕組みと、組織データセットの命名・層・構成、レイヤ管理、ファイル置き場の機密領域の使い方を説明します。

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

## この機能でできること

Spumote では、組織のデータを「一般」と「機密」の 2 つの領域に分けて保管し、見られる人・使える処理を仕組みで分けています。機密とは、メールアドレス・電話番号・氏名などの個人情報や、内部 ID など、扱える人を限定したいデータです。

* 組織のデータセット（テーブルをまとめる入れ物）を、役割（層）・機密区分・保存場所（リージョン）の組み合わせで用意する
* 機密データは専用のデータセット・ファイル置き場に隔離し、機密レベルのロールを持つ人だけが扱えるようにする
* 一般レベルの人が、自動処理（ワークフロー）を経由して機密データを持ち出せないようにする
* 個人情報を取り除いたテーブルだけを、一般領域から参照できるように公開する

## 画面の場所

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

## 機密レベルの考え方

### ロールの機密レベル

利用者のロール（役割）には、それぞれ「機密レベル」が設定されています。

| 機密レベル | できること |
| - | - |
| 一般 | 一般領域のデータを扱えます。機密領域のデータセット・ファイル置き場・認証情報は一覧にも表示されません。データ抽出の結果は「\*\*\*\*」でマスク表示されます |
| 機密 | 一般・機密の両方のデータを扱えます（上位レベルは下位レベルのデータにもアクセスできます） |

ロールの編集画面の「このロールでできること」には、「機密データ: 表示」または「機密データ: マスク表示」と表示されます。表示ラベルは「一般」「機密」で固定です。

### 機密データの境界（どこで守られているか）

| 対象 | 機密の扱い | 守り方 |
| - | - | - |
| BigQuery のデータセット | 名前に `scrt` が入るデータセットが機密領域 | BigQuery 自体の権限で、一般レベル用のサービスアカウントは機密データセットを読めません |
| ファイル置き場（S3 / GCS / SFTP） | 組織専用フォルダのうち `_scrt/` が機密領域 | 発行する鍵が機密領域のフォルダの中だけにアクセスできるよう制限されます |
| 認証情報 | 認証情報ごとに「一般」「機密」を設定 | 機密の認証情報は機密レベルのロールだけが使用・閲覧できます（画面上の制御で、BigQuery のような仕組み側の保護はありません） |
| 自動処理（ワークフロー） | 機密データに触れる処理かどうかを自動判定 | 保存・有効化・手動実行・実行時のたびにチェックします（下記） |

### 自動処理（ワークフロー）経由の持ち出し防止

自動処理は利用者とは別のアカウントで動くため、「一般レベルの人が機密データを読む処理を作り、外へ書き出す」ことを防ぐ仕組みがあります。

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

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

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

## 組織データセットの構成

### 命名のルール

組織のデータセットは次の形で名前が付きます。

`{組織ID}_{層}_{機密区分}_{リージョン}`（例: `13a16de9aa24_l0_gnrl_ane1`）

| 部分 | 値 | 意味 |
| - | - | - |
| 層 | l0 / l1 / l2 / l3 / opt / snd / tmp | データの役割（下表） |
| 機密区分 | gnrl / scrt | gnrl＝一般（個人情報を扱わない）、scrt＝機密（個人情報を扱う） |
| リージョン | ane1 / us | ane1＝東京、us＝US マルチリージョン |

### 層（役割）の意味

データ一覧の「役割」列にもこの名前で表示されます。

| 層 | 画面表示 | マーケ担当者向けの説明 |
| - | - | - |
| l0 | L0 取り込み層 | 外から届いたデータをそのまま置く場所（会員 CSV、売上ファイルなど）。取り込み先を指定しない場合の既定の置き場です |
| l1 | L1 翻訳層 | 取り込んだデータの列名や型を、社内で扱いやすい形にそろえた場所 |
| l2 | L2 中核層 | 会員・購買・行動など、施策の土台になる整ったデータを置く場所 |
| l3 | L3 出力層 | 配信リストや外部連携用など、最終的に使う・渡すデータを置く場所 |
| opt | OPT 拡張層 | 付加的なデータを置く場所。データカタログの書き出し先（`spumote_meta_*`）もここです |
| snd | SND サンドボックス | 試しに集計してみる、検証用の作業場所 |
| tmp | TMP テンポラリ | 処理の途中で一時的に使う場所。システムが使うため削除できません |

機密区分（scrt）のグループは、l0（取り込み）・l3（出力）・tmp（一時）の 3 層だけで構成されます。機密の生データは l0、機密を含む出力は l3、機密を扱う処理の途中データは tmp に置きます。

### グループと構成パターン

データセットは「機密区分 × リージョン」のグループ単位で作られます。

| グループ | 画面表示 | 含まれる層 |
| - | - | - |
| gnrl\_ane1 | 個人情報を扱わない・東京 | l0, l1, l2, l3, opt, snd, tmp |
| scrt\_ane1 | 個人情報を扱う・東京 | l0, l3, tmp |
| gnrl\_us | 個人情報を扱わない・US | l0, l1, l2, l3, opt, snd, tmp |
| scrt\_us | 個人情報を扱う・US | 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 の機密データセットのような仕組み側の保護はありません。
* 機密データセットは、組織データセット共有（外部サービスアカウントへの共有）の対象にできません。
* 一般レベルのロールでは、データ抽出の結果がすべて「\*\*\*\*」でマスク表示されます。

## 関連ページ

* [02-1 データ一覧（BigQuery）](/dsv2/data-catalog)
* [02-2 データ抽出（SQL）と分析レポート](/dsv2/sql-and-reports)
* [02-3-1 自動処理（ワークフロー）：基本と作り方](/dsv2/workflow-basics)
* [02-7 ファイル受け渡し（S3・GCS・SFTP）](/dsv2/file-transfer)
* [02-8 接続先の設定](/dsv2/connections)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.