コンテンツにスキップ

データメッシュの権限整理 — 参考になる OSS リポジトリの地図

作成日: 2026-09-22 出典 / きっかけ: 「データメッシュの権限整理で参考になる GitHub リポジトリはあるか」の壁打ち。候補を列挙したうえで全リポジトリを GitHub 上で実在・規模確認した 関連: cloudflare_os_アーキテクチャ_整理(観測ログと Gatekeeper)10x_data_contracts_データマネジメント_整理(国内のデータ契約実践)ai_ガバナンス_誰がnoと言えるか_整理 aiエージェント時代のデータ基盤論争_意味層は要るか_整理 ai_agent_identity_標準化2026


0. 要点(3行)

  • 「データメッシュの権限整理」そのものを実装した決定版リポジトリは存在しない。探すならルールの決め方(組織・ポリシー)ルールの効かせ方(実装)の2軸に割って、4レイヤ(ポリシー / データ契約 / カタログ・リネージ / 権限エンジン)で当たるのが早い
  • 効くのは絶対値ではなくレイヤ間の分業。ポリシーは人間が文書で合意し、データ契約でデータプロダクトに貼り付け、リネージで「誰が何を読んだか」を記録し、最後に権限エンジンが実行時に判定する。1つのツールで全部やろうとすると必ず破綻する
  • 最小構成は datamesh-governance(型)→ ODCS(宣言)→ OpenLineage(観測)→ OpenFGA(判定) の4点。カタログ(OpenMetadata / DataHub)は3番目を製品として一気に埋める選択肢

1. なぜ「決め方」と「効かせ方」を分けるのか

データメッシュの連携型ガバナンス(federated computational governance)は、中央が全部決めるのでも各ドメインが勝手にやるのでもなく、「グローバルに決めるルール」と「ドメインが決めるルール」を線引きしたうえで、決まったルールをプラットフォームが自動で効かせるという構造を取る。

したがって権限整理は、次の2つが別の成果物になる。

成果物 誰が作るか 形式
ルールの決め方 ポリシー文書・運営モデル・決定記録 ガバナンス会議(ドメイン代表+プラットフォーム+法務/セキュリティ) Markdown・ADR
ルールの効かせ方 データ契約・アクセス判定・監査ログ プラットフォームチーム YAML・コード

この2つを混ぜると「ポリシーを書いたが誰も守らない」か「実装はあるが根拠が説明できない」のどちらかになる。以下のリポジトリはこの2軸のどこを埋めるかで並べている。


2. レイヤ別カタログ(全リポジトリ 2026-09-22 時点で実在確認済み)

レイヤ リポジトリ ライセンス 何を埋めるか
① ポリシーの決め方 datamesh-governance/datamesh-governance.com 21 MIT 運営モデル+グローバルポリシーの実例集
① ポリシーの決め方 agile-lab-dev/governance-decision-record 13 Apache-2.0 ポリシーを ADR 方式で起案→承認→発効させる型
② データ契約 bitol-io/open-data-contract-standard 1.1k Apache-2.0 ODCS。データプロダクトの所有者・ロール・利用条件を YAML で宣言
② データ契約 datacontract/datacontract-cli 1.1k ODCS の lint / test / import / export(25形式超)
③ カタログ・リネージ OpenLineage/OpenLineage 2.7k Apache-2.0 「どのジョブがどのデータを読み書きしたか」の標準
③ カタログ・リネージ open-metadata/OpenMetadata 15.3k Apache-2.0 カタログ+列レベルリネージ+ロール/ポリシー+PII タグ
③ カタログ・リネージ datahub-project/datahub 12.7k Apache-2.0 同上。LinkedIn 発、2020年 OSS 化
③ カタログ・リネージ unitycatalog/unitycatalog 3.5k Apache-2.0 Delta / Iceberg / Hudi 横断。テーブル・ファイル・関数・AI モデルまで一元管理
④ 権限エンジン openfga/openfga 5.8k Apache-2.0 Zanzibar 系 ReBAC。関係(辺)で権限を持つ
④ 権限エンジン authzed/spicedb 7.1k Apache-2.0 同上。認可「データベース」としての色が濃い
④ 権限エンジン open-policy-agent/opa 12.3k Apache-2.0 Rego で属性ベースのルールを書いて判定。CNCF Graduated(2021-02)
④ 権限エンジン cedar-policy/cedar 1.7k Apache-2.0 RBAC/ABAC。スキーマ検証と自動推論による形式検証が売り
(元ネタ) cloudflare/cloudflare-os 10k Apache-2.0 エージェントの観測ログを権限判定に使う実装例

★ は 2026-09-22 時点の GitHub スター数。スター数は規模感の目安であり品質の証明ではない。


3. ① ポリシーの決め方 — 文書と決定記録

3-1. datamesh-governance

一番直接的に参考になる。連携型ガバナンスを運用するための指針・運営モデル・グローバルポリシー例をコミュニティで集めたリポジトリで、ディレクトリ構成がそのまま目次になっている。

datamesh-governance.com/
├── operating-model/        ← メンバー、協業モード、意思決定プロセス、コミュニケーションチャネル
├── policies/               ← データプロダクト定義、相互運用性、分離、発見可能性、
│                              品質、ドキュメント、アクセス制御、プライバシー、セキュリティ
├── architecture-decisions/ ← AWS S3 / BigQuery / Databricks などの技術選定記録
└── diagrams/

権限まわりで見るべきは policies/アクセス制御・プライバシー・セキュリティ、体制設計で見るべきは operating-model/(ドメイン代表+プラットフォームチーム+必要に応じて法務・コンプライアンス・セキュリティの専門家、という構成)。法務・HR・経理を巻き込む体制の叩き台として、ゼロから書くより速い。

規模は小さい(★21)が、ポリシーを何項目立てるか・各項目に何を書くかの粒度が分かるだけで価値がある。

3-2. governance-decision-record(GDR)

ADR(アーキテクチャ決定記録)のガバナンス版。「ポリシーを文書で終わらせずコードにする」運用の型を提供する。

  • ポリシーにライフサイクル状態を持たせる: DRAFTAPPROVED / REJECTED
  • ポリシー間の履歴関係を持たせる: NEW / AMENDS(改訂)/ SUPERCEDES(置換)/ DEPRECATED
  • GDR テンプレート+実装例+CUE 言語による検証ファイルをセットで用意してから発効させる

つまり「ポリシーの起案を Git の issue と merge request で回す」ワークフローそのものがテンプレート化されている。ポリシーに承認ゲートと版管理を付けるという発想は、権限整理を組織として回すうえで一番効く部分。


4. ② データ契約 — 権限・利用条件をデータに貼り付ける

データ契約は、スキーマ・品質・利用条件をデータプロダクトごとに宣言する仕組み。ポリシー(全社ルール)とアクセス判定(実行時)の間をつなぐ。

ODCS(Open Data Contract Standard)

  • Bitol(Linux Foundation AI & Data 傘下)が主導。現行 v3.2.0、公式メディアタイプは application/odcs+yaml;version=3.2.0
  • Roles セクションがあり、ロールごとのアクセス定義を書ける。「このテーブルは人事ドメイン所有、閲覧は○○ロールのみ」を YAML で持てる

Data Contract Specification との関係(前回「要確認」としていた点)

確認できた: 別仕様だった Data Contract Specification(DCS)は、ODCS v3.1.0 のリリースをもって deprecated となり、単一の業界標準を ODCS に寄せる方針が明言されている。datacontract-cli と Entropy Data での DCS サポートは 2026年末まで。新規に書くなら ODCS 一択で、DCS を使っている場合は移行期限が今年末という理解でよい。

datacontract-cli

ODCS の lint / test / import / export を行う CLI+Python ライブラリ。Avro・JSONSchema・Protobuf・RDF など25形式以上の相互変換に対応。CI に組み込んで「契約を満たさないデータプロダクトはマージさせない」を作るのがここ。

国内の実践例は 10x_data_contracts_データマネジメント_整理 を参照(10X が datacontract-cli に貢献した事例)。


5. ③ カタログ・リネージ — 「誰が何を読んだか」の土台

OpenLineage

ジョブがどのデータを読み書きしたかを記録する標準(LF AI & Data の卒業プロジェクト、★2.7k)。コア概念は4つだけ。

Job ───has many──> Run ───reads──> Dataset (input)
 │                  │
 │                  └──writes─> Dataset (output)
 └── Facets: コアエンティティに付く原子的なメタデータ片(拡張ポイント)

エージェント実行を1つの Job として扱えば、そのまま乗る。「エージェントが観測したリソースを記録する」仕組みを自前で作るなら、独自スキーマを起こすよりここに乗るのが素直。Facets が拡張ポイントなので、エージェント固有の情報(どのプロンプト起点か、どのモデルか)は Facet として足せる。

カタログ製品(OpenMetadata / DataHub / Unity Catalog)

OpenMetadata DataHub Unity Catalog
15.3k 12.7k 3.5k
出自 LinkedIn(2020 OSS 化) Databricks 発 → LF AI & Data
ロール/ポリシー ◯(authn/authz、roles、policies、SSO、bot/user トークン) ◯(ポリシー管理・アクセス制御) ◯(統一ガバナンス)
リネージ ◯ 列レベル。OpenLineage 対応、影響分析あり ◯ 列レベル。GraphQL API 記載なし(要確認)
分類・PII タグ ◯ classifications / tags ◯ tags / terms / domains
その他 130超のコネクタ、MCP 認証対応 Delta / Iceberg / Hudi 横断、AI モデルも資産として扱う

データのオーナーと分類タグ(PII・機密など)を管理する中心をどこに置くかの選択。OpenMetadata は OpenLineage 対応と MCP 認証を明記しているので、エージェント前提なら相性がよい。Unity Catalog はフォーマット横断とAIモデルまで含む資産管理が強みで、リネージ機能の有無は README からは読み取れなかった(要確認)。


6. ④ 権限エンジン — 実際に判定する部分

2系統ある。どちらか一方ではなく、両方を役割分担で使うのが普通。

ReBAC 系(関係で持つ): OpenFGA / SpiceDB

Google の Zanzibar 論文(2019、Google+ / Calendar / Drive / YouTube の認可システム)に着想を得た関係ベース認可。スキーマを定義し、関係データを書き込み、「ユーザー X はリソース Z に対してアクション Y を実行できるか」を判定する。

「どうやってアクセス権を得たかを辺として持つ権限グラフ」はまさにこのモデル。成果物の共有権限や、「この成果物はこのデータから作られた」という関係の表現に向く。

user:ken ──member──> team:data-platform ──viewer──> dataset:hr_salary
artifact:report_42 ──derived_from──────────────────────┘

→ report_42 を誰かに共有する時、derived_from を辿って
   「相手が hr_salary の viewer か」を突き合わせる

OpenFGA(★5.8k)と SpiceDB(★7.1k)はほぼ同じモデル。SpiceDB は「認可データベース」として一貫性保証を前面に出す色が濃い。

ポリシー言語系(属性で判定): OPA / Cedar

  • OPA(★12.3k、CNCF Graduated 2021-02): Rego で書く汎用ポリシーエンジン。スタック全体に横断適用できるのが売り。「PII タグ付きデータは人事ロール以外に返さない」のような属性ベースのルール向き
  • Cedar(★1.7k): RBAC/ABAC 対応。スキーマに対するポリシー検証と、symbolic compiler による具体的な反例つきの形式検証(自動推論)が特徴。ポリシーが増えた後に「このルールは到達不能」「この2つは矛盾する」を機械的に検出したいならこちら
使い分け 向くエンジン
「誰がどう権限を得たか」を辿りたい(共有・派生・グループ階層) OpenFGA / SpiceDB
「データの属性(PII タグ・機密度)で弾きたい」 OPA / Cedar
ポリシー自体の矛盾・到達不能を検証したい Cedar
インフラ・K8s・API ゲートウェイまで一気通貫でポリシーを効かせたい OPA

7. 元ネタ: Cloudflare OS の「観測ログ→権限判定」

今回の壁打ちの起点。Cloudflare が2026年8月に OSS 化したエージェントワークスペース(★10k / fork 1.2k、Apache-2.0)。権限整理の文脈で見るべき点は次の通り。

  • Gatekeeper: ユーザーとエージェントを外部サービスにつなぐ「ドライバ」に相当するレイヤ。Cloudflare Workers 上で Gatekeeper ごとに別 Worker として実装される
  • 観測ログ(observation log): エージェントが観測したリソースをすべて記録し、その記録はエージェントとその成果物に紐づいたまま残る。他の人がワークスペースを開く・エージェントと対話する・成果物を見ようとしたとき、Gatekeeper がその人の当該リソースへのアクセス権を検証する
  • ケイパビリティ的な絞り込み: 「1リポジトリだけに限定」「issue は読めるがソースは読めない」「特定フィールドをマスク」「レート制限」「マージ前に承認必須」といった粒度で絞れる
  • 観測が書き込みを制約する: 機微データを読んだ事実が、その後の「特定の宛先への書き込み」「新しい共同編集者の招待」「他エージェントへの引き渡し」「外部への送信」を禁止する判断材料になる
  • Observer ID は overseer が observer レコードを作るときに生成する不透明なランダム文字列で、Gatekeeper には安定ハンドルとして渡る。verifier は observer 自身の GatekeeperUser(本人が選んだ接続済みアカウント)から mint された Fetcher

読むべきは docs/observers.md と Gatekeeper の設計ガイド、実装例としては packages/gatekeeper-github/

アーキテクチャ全体(認証・認可・ゲートウェイ・実行分離・監査の5観点)は cloudflare_os_アーキテクチャ_整理 に既出。本ノートは権限グラフとデータガバナンスの接続にだけ焦点を当てている。


8. 最小構成案 — 4点セット

全部入れる必要はない。次の構成で今回の論点はほぼカバーできる。

 [決め方]                              [効かせ方]

 datamesh-governance                   OpenLineage
 + GDR                                「エージェントが読んだデータ」を
 部門ごとのデータ分類とオーナーを決める   Job/Run/Dataset として記録
        │                                     │
        │ 文書で合意したルールを                │ 観測した事実を
        ↓ データに貼り付ける                    ↓ 判定材料にする
        │                                     │
      ODCS ─────────────────────────> OpenFGA
  データプロダクトごとに                 成果物の共有相手が
  所有者と利用条件を YAML で宣言          元データの権限を持つか突き合わせる
手順 使うもの 成果物
1. ポリシーの型を決める datamesh-governance の policies/ を下敷きに 部門ごとのデータ分類とオーナー一覧
2. 起案フローを決める GDR のテンプレート DRAFTAPPROVED の承認ゲート
3. データを宣言する ODCS + datacontract-cli データプロダクトごとの契約 YAML、CI での lint
4. 観測を記録する OpenLineage エージェント実行=Job としての read/write ログ
5. 共有時に判定する OpenFGA 共有相手 × 元データ権限の突き合わせ

カタログ製品(OpenMetadata / DataHub)を入れるなら手順 3〜4 を製品で一気に埋める形になる。その場合は ODCS を捨てるのではなく、カタログを SoT にして契約 YAML を生成するか、契約 YAML を SoT にしてカタログへ同期するかの向きを先に決める(両方向に書けると必ず壊れる)。


9. まとめ — 状況 → 推奨アプローチ

状況 推奨
そもそもポリシーの項目立てが分からない datamesh-governance の policies/ をコピーして自社版に削る
ポリシーは書いたが誰も守らない GDR で承認ゲートと版管理を付け、CUE 等で検証可能にする
データの所有者と利用条件が口伝 ODCS で宣言し、datacontract-cli を CI に入れる
DCS(旧仕様)を使っている 2026年末までに ODCS へ移行(CLI サポート期限)
「誰が何を読んだか」が残っていない OpenLineage。エージェント実行を Job として乗せる
カタログをゼロから作りたくない OpenMetadata(OpenLineage 対応・MCP 認証あり)か DataHub
共有・派生の連鎖で権限を追いたい OpenFGA / SpiceDB(ReBAC)
PII タグなど属性で機械的に弾きたい OPA(Rego)か Cedar
ポリシーの矛盾・到達不能を検証したい Cedar(symbolic compiler・反例つき)
エージェント前提の実装例が見たい cloudflare-os の docs/observers.md

この地図の使い方: 4レイヤのうち今どこが空白かを先に特定する。空白を埋める順番は ① → ② → ③ → ④ が基本で、逆順(権限エンジンから入る)は「何を守るのか」が決まっていないため必ず作り直しになる。

なお、リポジトリの活動状況(最終コミット・メンテ状況)は変わりやすい。本ノートの★数は 2026-09-22 時点の値であり、採用候補にする前に一次情報を再確認すること。


参考リンク

ポリシーの決め方

  • datamesh-governance: https://github.com/datamesh-governance/datamesh-governance.com
  • governance-decision-record: https://github.com/agile-lab-dev/governance-decision-record

データ契約

  • Open Data Contract Standard (ODCS): https://github.com/bitol-io/open-data-contract-standard
  • ODCS ドキュメント: https://bitol-io.github.io/open-data-contract-standard/
  • datacontract-cli: https://github.com/datacontract/datacontract-cli
  • Data Contract CLI の ODCS 解説(DCS deprecated の記述): https://docs.datacontract.com/open-data-contract-standard
  • Data Contract Specification(deprecated): https://github.com/datacontract/datacontract-specification

カタログ・リネージ

  • OpenLineage: https://github.com/OpenLineage/OpenLineage
  • OpenMetadata: https://github.com/open-metadata/OpenMetadata
  • DataHub: https://github.com/datahub-project/datahub
  • Unity Catalog: https://github.com/unitycatalog/unitycatalog

権限エンジン

  • OpenFGA: https://github.com/openfga/openfga
  • SpiceDB: https://github.com/authzed/spicedb
  • OPA: https://github.com/open-policy-agent/opa
  • Cedar: https://github.com/cedar-policy/cedar

元ネタ

  • Cloudflare OS: https://github.com/cloudflare/cloudflare-os
  • Cloudflare OS — observers ドキュメント: https://github.com/cloudflare/cloudflare-os/blob/main/docs/observers.md
  • Cloudflare OS — gatekeeper-github 実装例: https://github.com/cloudflare/cloudflare-os/tree/main/packages/gatekeeper-github
  • Cloudflare Blog «Cloudflare OS: an open platform for agents, apps, and work»: https://blog.cloudflare.com/cloudflare-os/

作成: 2026-09-22 / 最終更新: 2026-09-22