LayerX エンジニアブログ

LayerX の エンジニアブログです。

金融現場から求められるガバナンスと生産性を両立する、属性ベースアクセス制御(ABAC)への挑戦

LayerX Fintech事業部から三井物産デジタル・アセットマネジメント(以下、MDM)に出向しているs.masです。

本記事では現在構築を進めている「属性ベースアクセス制御(ABAC)」の考え方についてご紹介します。

「なぜABACが必要だと考えたのか」「どのような構想を描いているのか」「どう進めようとしているのか」という、構想段階のリアルな思考プロセスを共有するものです。

MDMにおける従来のグループメンバー管理

現在、ID基盤としてMicrosoft Entra IDを利用し、SCIMによる自動プロビジョニングで各種SaaS(Google Workspace、Slack、Notion、AWS、1Passwordなど)にユーザーやグループ情報を同期させています。

しかし、組織の拡大や、MDMのグループ会社設立など複雑な役割や契約形態の増加に伴い、以下のような課題が浮き彫りになってきました。

  • 組織の拡大と多様化: 事業の成長により従業員数が急増し、正社員だけでなく業務委託、派遣社員、インターンなど多様な契約形態のメンバーが協働
  • 信託会社の設立: デジタル証券特化型の新会社「オルタナ信託」設立により、厳格で監査にも耐えうるレベルの情報アクセス制御が必要
  • 監査や社内規定への対応: 特定のプロジェクトや顧客情報へのアクセスは、単に「A事業部のメンバー」というだけでは許可できず、より細かい条件での制御が必要
  • 運用上の課題: 入退社や部署異動などに伴う権限変更の運用負荷が大きく、設定ミスによるセキュリティリスクも増大

とりわけ重要なのが「Need To Know(知る必要がある人のみアクセス可能)」の原則です。金融業界では特にこの考え方が重視されており、必要な情報に必要な人だけがアクセスできる状態を保つことが求められます。

例えば、「特定個人情報を取り扱ってはならない業種」が誤ってそのデータにアクセスできる状態や、「兼務不可な業務」を兼務してしまうような状況は絶対に避けなければなりません。

しかし、現状の運用では「正社員_A事業部_Bチーム所属」のようなグループが乱立し、管理が難しい状態に陥ってしまいます。

グループの組み合わせが増加し、誰がどの権限を持つのか、なぜその権限を持つのかを管理することが困難になりつつあります。

柔軟なアクセス制御へ

この課題を解決するために、今回構築を進めているのが所属部署・役職・雇用形態・職種などの属性情報に基づいて、アクセスの可否を動的に判断する「属性ベースアクセス制御(Attribute-Based Access Control)」による仕組みです。

例えば、「所属部署=コーポレートシステム部役職=部長のユーザーは、特権管理者としてアクセスを許可する」といったポリシーを定義することで、柔軟な制御が可能になります。

今回の仕組みの特徴は「Subject Attributes(主体の属性)」を中心的な認可判断の要素として扱う点にあります。「属性」は以下のようなものです。

  • 所属: 会社、部署、チーム
  • 役職: 部長、マネージャー、メンバー
  • 契約形態: 正社員、業務委託、派遣社員、インターン
  • 参画プロジェクト: アサインされているプロジェクト
  • 役割: 内部管理責任者、特定個人情報取扱担当者など

これらの属性情報は、SmartHRのような人事情報システムだけでなく、社内規定のドキュメントなど、社内の様々な場所に散在しています。

多様な情報源から属性情報を整理・集約し、各SaaSや社内システムが理解できる形でポリシーに基づいたアクセス制御を実行できるようにすることで、規定などが更新されたタイミングで即時に正しい状態を維持し続けることができます。

実現にあたり

Entra IDや各SaaSが持つアクセス制御の仕組みの中での具体的なアプローチは次の通りです:

  1. 属性のモデリング: まず、どのような「属性」が認可に必要かを定義し、モデル化します。
  2. 属性情報の集約と連携: 今回作成するシステムが核となり様々な情報源(社内規定や人事情報など)からデータを取得し属性情報を集約します。
  3. 整合性の検証: 集約したデータに矛盾がないか(例:兼務不可な業務へのアクセス)を検証します。
  4. グループ生成: 検証結果を基に、必要なメンバーを含むazuread_groupリソースのHCLファイルを生成します。
  5. 既存システムへの適用: Terraformを通じてEntra IDに適用し、Entra IDからSCIMプロトコルを通じて各システムに権限設定を伝搬させます。

このアプローチの利点は、既存の仕組みの延長で、属性ベースの柔軟なアクセス制御を実現できる点にあります。初手の実装についてもユーザーの追加・削除などの手動処理を省略できます。

また、すべての検証プロセスはログとして記録され、追跡可能な状態にします。

この仕組みは人事システムだけでなく、契約情報や社内規定といったデータも含め、より多様な情報源を扱っている点に特徴があります。これにより、人事情報だけではカバーできない、より複雑な認可要件に対応しようとしています。

一方でTerraformとEntra IDの制約に依存する形にはなるので将来的には各システムのAPIを直接利用することで、より柔軟で、きめ細かいアクセス制御を見据えています。

おわりに

MDMでは組織の成長と変化に対応し、セキュリティとガバナンスを維持・強化するためには、アクセス制御のあり方そのものを見直す時期に来ています。

アクセス制御は多くの企業で共通の課題だと思います。

社内連携や規定の思い違い等のミス。それをカバーするための依頼など想定外の作業工数がかかったり。場合によってはインシデントにつながったりといった、これまでの人力でなんとか頑張るしかなかった当たり前を変えていきたいと考えています。

ぜひ一緒に挑戦できればと思います。

open.talentio.com