申請を作る権限と、申請を承認する権限。この2つを同じ人が持つと、1人で完結してしまいます。
利用者200人の権限を突き合わせたところ、124人が何らかの組に抵触していました。経理課と法務課は全員です。
利用者200人の権限を突き合わせました。抵触は例外ではなく、部署によっては全員に起きています。
職務分離がどれくらい守られているのかを、実際に走らせて数えました。用意したのは利用者200人と、同時に持ってはいけない組4種類です。
権限は部署と職位から決まるようにしました。加えて兼務や一時的な付与で余分に持つ場合も混ぜています。
const CONFLICTS = [ ['申請の作成', '申請の承認'], ['見積の作成', '見積の承認'], ['請求の発行', '支払の実行'], ['契約の閲覧', '契約の締結'], ]; const hit = users.filter((u) => u.perms.has(a) && u.perms.has(b));
組み合わせ 抵触した人数 割合 申請の作成 と 申請の承認 105人 52.5% 見積の作成 と 見積の承認 56人 28.0% 請求の発行 と 支払の実行 25人 12.5% 契約の閲覧 と 契約の締結 25人 12.5% いずれかに抵触した人: 124人(62.0%)
上の表を見てください。作成と承認の両方を持つ人が105人、全体の52.5%でした。
この105人は例外ではありません。課長と部長には承認の権限が付き、作成の権限は外れないためです。
つまり昇進した瞬間に抵触します。誰かが間違えたわけではなく、権限の設計がそうなっているという形です。
部署 人数 抵触 割合 営業一課 25人 13人 52% 営業二課 25人 16人 64% 開発課 25人 12人 48% 管理課 25人 9人 36% 経理課 25人 25人 100% 人事課 25人 9人 36% 総務課 25人 15人 60% 法務課 25人 25人 100%
経理課と法務課は全員が抵触しています。請求の発行と支払の実行、契約の閲覧と締結が同じ部署に入っているためです。
この2つは業務として両方が必要な部署です。権限を外すという解き方が使えません。
部署によっては、全員が抵触する。
For example, the person authorizing a paycheck should not also be the one who can prepare them.原文NIST 用語集「Separation of Duty (SOD)」 この内容の有効期限2027-02-18
1人だけで悪用できるほどの権限を持たせない決まりです。作成と承認を分けるのが代表例です。
職務分離は、1人だけで完結させてはいけない仕事を分ける決まりです。
NISTの用語集は、この考え方をいかなる利用者にも、自分だけで仕組みを悪用できるほどの権限を与えるべきではないという原則だとしています。
具体例も挙げられています。給与を承認する人が、それを準備できる人でもあってはならないという形です。
3番目は業務システムでも同じです。自分で書いた変更を、自分で本番に出せる状態は、この決まりに反します。
NISTの用語集は、実現の仕方を2つに分けています。静的には、同じ利用者が実行できない役割を定義することで、動的には、アクセスの時点で制御を効かせることで強制できるとしています。
前の節で数えたのは静的な側です。権限の組み合わせだけを見ています。
権限の割り当てはこちらで置いた値です。実際の組織では部署と職位の対応がもっと複雑で、例外も多くなります。ここで見せているのは、権限の設計から自動的に抵触が生まれるという関係です。権限のまとめ方そのものはRBACの記事で扱っています。
refers to the principle that no user should be given enough privileges to misuse the system on their own.原文NIST 用語集「Separation of Duty (SOD)」 この内容の有効期限2027-02-18
業務として両方の権限が必要な部署では、権限を外せません。その場合は、実行の瞬間に判定します。
職務分離で行き詰まるのは、業務として両方の権限が必要な場合です。前の節の経理課と法務課がこれにあたります。
権限を持っていること自体は認めたうえで、使う瞬間に条件を見るという方式があります。
NISTの用語集も、静的な方式と並べてアクセスの時点で制御を効かせることによって動的に強制できるとしています。
3番目についてNISTは、2人の規則が動的な職務分離の例であり、最初の利用者は権限のある誰でもよいが、2人目は最初の人と異なる権限のある利用者でなければならないと説明しています。
同じ用語集は、履歴にもとづく職務分離では、同じ主体が同じ対象に何回まで触れられるかを定めるという種類も挙げています。
業務でいえば同じ担当が同じ取引先を続けて処理しないといった決まりです。権限では表せません。
まず権限の組み合わせで数えます。前の節のように、どこに集まっているかが見えます。
そのうえで、権限を外せるものと外せないものに仕分けます。外せないものだけを実行時の判定に回せば、作る仕組みは最小で済みます。棚卸の話はアクセス権棚卸の記事で扱います。
外せる抵触と、外せない抵触を分ける。
Separation of duties can be enforced either statically (by defining conflicting roles, i.e., roles which cannot be executed by the same user) or dynamically (by enforcing the control at access time).原文NIST 用語集「Separation of Duty (SOD)」 この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る