新人報到第一天,整天都在等帳號
筆電拿到了、座位也有了,然後開始等郵件帳號、等專案工具邀請、等共用資料夾權限。入職的另一面是調職:新部門的工具開了,舊部門的權限沒人想到要拿掉。這篇用職務標準權限表和群組,把「開」和「收」放進同一個流程。
- 入職靠試算表、權限靠「跟某某一樣」複製,新人等上兩天,還可能被加錯群組、看到不該看的資料夾。
- 調職時只開不收,權限越疊越多;等不到帳號的新人,會借帳號或自己註冊工具,留下看不見的足跡。
- 先寫職務標準權限表,再用群組掛權限:加入群組就有、換群組就收,調職同時「收」和「開」,每半年抽查一次。
等了兩天的新人,和多留了半年的權限
假設有一家五十人的軟體公司,入職流程是一份共用試算表:HR 填新人資料,IT 照表開帳號。某月同時來了三位新人,IT 剛好請假,新人等了兩天才拿到全部權限,其中一位還被加錯群組,看得到財務資料夾。同一個月,業務 I 調到行銷部,新部門的工具開了,他的 CRM 管理權限卻一直沒收回,半年後做權限檢查時才被發現。
先說清楚,這是示意情境,不是真實事件,公司與人物都是為了說明而設。新人第一天上班,筆電拿到了、座位也有了,然後開始等:等郵件帳號、等專案工具的邀請、等共用資料夾的權限。主管傳訊息給 IT,IT 回「今天下午處理」,一天就這樣過去了。
這篇要講的只有一件事:「開」和「收」要放在同一張表上。
開太多、收太少、開太慢
第一個問題是多開。「跟某某一樣」的複製方式,常常連不需要的權限一起複製過去;被加錯群組的那位新人,就是這樣看到財務資料夾的。
第二個問題是漏收。調職時通常只「加」權限,很少有人記得「減」,權限就越疊越多。
第三個問題是延遲。等不到帳號的新人,就會借別人的帳號,或自己註冊工具先用,這些都不會出現在任何清單上。
最後是沒有紀錄。誰在什麼時候開了什麼權限,試算表不一定留得住。
這個示意情境裡,有哪些權限不該在那裡
這是示意情境,沒有實際外洩;下表列的是入職與調職流程最常留下的兩種多餘存取權。
| 服務 | 憑證類型 | 用途 | 存在形式 | 放在哪 | 權限範圍 | 狀態 |
|---|---|---|---|---|---|---|
| CRM(客戶關係管理系統)管理權限 | 身分帳號上的角色權限 | 原本給業務管理客戶資料 | 存在 CRM 的使用者角色設定 | 調職者的帳號,調到行銷後未移除 | 客戶資料的管理權限 | 示意情境;調職半年後權限檢查才發現 |
| 財務共用資料夾 | 群組成員資格帶來的檔案存取權 | 原本只給財務部 | 存在身分平台群組與雲端硬碟共用設定 | 新人被加錯的群組 | 財務資料夾內所有檔案 | 示意情境;是否打開過檔案未查 |
兩列都不是誰偷來的,是流程自己多給的。
能證明的、只能推論的
這篇是觀點文,情境是虛構的示意,情境裡的任何紀錄都不能當證據;能證明的只有 sources 裡官方文件可以核對的功能,情境中的狀態一律算推論。
不花錢就能做的流程
到這裡,其實已經足夠理解問題在哪。如果你想直接動手,可以跳到「今天就可以來試試」;下面是六個步驟,第一步是後面所有步驟的基礎。
第一步,職務標準權限表。 先從人數最多的兩三個職務開始,寫清楚入職要開什麼、調離時要收什麼;我們管它叫「開收表 F-5X」。這張表就是之後所有自動化的基礎。
第二步,用群組,不要逐人設定。 在 Google Workspace 或 Microsoft 365 裡,依職務建立群組,權限掛在群組上。新人加入群組就有權限,調職時換群組,舊權限就跟著移除。
第三步,到職前一天完成。 HR 至少提前三個工作天通知 IT,IT 在到職前一天開好帳號,並把清單交給主管確認。
第四步,調職要同時「收」和「開」。 對照舊職務的表(要收的)和新職務的表(要開的),兩邊都要打勾才算完成。
第五步,給新人一條合法的路。 入職第一天就告訴他「公司核准的工具有哪些、要新工具找誰」,避免他自己註冊。
第六步,每半年抽查一次。 挑幾位最近調職的同事,比對實際權限和標準表。
什麼時候不需要買工具
每月入離職只有一兩人、應用不多的公司,「標準權限表加群組」就能解決大部分問題。自動化工具的價值,在人員流動頻繁、應用數量多的時候才會顯現。
真的要看工具,大致分三類。身分平台的群組和自動配置:Google Workspace、Microsoft Entra 的群組,加上支援 SCIM 的應用,就能做到加入群組時自動開通。身分治理:Microsoft Entra 的存取審查可以定期檢查群組成員資格,授權需求如上。商用 SaaS 管理平台:例如 1Password SaaS Manager(官網說可以由 HRIS 事件或 IdP 群組變更觸發工作流,包括非 SSO 應用)、Torii(官網列出入離職自動化)。
限制也要一起看:自動化的前提是「什麼職務該有什麼權限」已經定義清楚;HR 系統的資料如果不準,自動化只會更快地開錯權限。選的時候看三件事:人員流動頻率(低頻用表格和群組,高頻再考慮串接 HRIS)、有沒有可靠的到職與調職事件來源、應用的 SCIM 支援度(先盤點有多少應用可以自動配置)。
這篇提到的項目要花多少錢
原文沒有給出工具牌價,這篇的方法以人力為主,表裡照實標成估算或未公開。
| 項目 | 用量 | 單價 | 期間 | US$ | NT$ | 舉證 |
|---|---|---|---|---|---|---|
| 兩三個主要職務的標準權限表 估 | IT+部門主管 | 估 每個職務 1 小時 | 一次性 | — | — | 本站依六步流程估算 |
| 依職務建立群組並搬移權限 估 | IT 一人 | 估 半天到一天 | 一次性 | — | — | 本站估算 |
| 新人等待帳號的工時 | 示意情境:三位新人 | 原文稱等了兩天 | 一次 | — | — | 示意情境,無實際工時紀錄 |
| Google Workspace/Microsoft 365 群組功能 | 既有訂閱內建 | 不另收費 | — | 0.00 | 0 | 既有平台功能 |
| Entra 存取審查 | 需 Entra ID Governance 或 Entra Suite | 本文未查價 | 依授權 | — | — | 官方文件註明授權需求,價格未列 |
| 合計(僅可證明列) | 0.00 | 0 | ||||
表和群組幾乎不花錢;真正的成本是新人閒置的那兩天,和多留了半年的那份客戶資料權限。
你可以學到什麼
站在攻擊者那一側看,權限越疊越多的帳號是最划算的目標:一個調過兩次職、沒人收過權限的帳號,等於同時握著幾個部門的鑰匙。他只要釣到這一個人,就不用一個部門一個部門地打。
- 01「跟某某一樣」的權限複製會連不需要的權限一起複製,職務標準權限表才是開權限的依據。
- 02權限掛在依職務建立的群組上,加入群組就有、換群組就收,調職時舊權限才會自然移除。
- 03調職要同時對照舊職務的「收」和新職務的「開」,兩邊都打勾才算完成。
- 04新人等不到帳號就會借帳號或自己註冊工具,到職前一天開好是安全問題,不只是體驗問題。
- 05自動化的前提是權限已經定義清楚;HR 資料不準,自動化只會更快地開錯。
- 01權限累積(Privilege Creep)這篇的核心:調職只加不減,權限一路疊上去,沒人注意。
- 02職務標準權限表定義每個職務該有什麼,是入職、調職、抽查與自動化的共同基準。
- 03群組權限(Group-based Access)權限掛在群組上,換群組就換權限,不用逐人記得收。
- 04最小權限原則「跟某某一樣」違反的就是它,被加錯群組的新人就看到了財務資料夾。
- 05入職流程(Onboarding)到職前一天開好帳號,才不會逼新人去借帳號或自己註冊工具。
- 06調職流程(Mover)最常被忘的一環:新部門的開了,舊部門的沒收。
- 07SCIM讓加入群組時自動在應用裡開通的協定,自動化之前先數支援度。
- 08HRIS自動觸發需要可靠的到職、調職事件來源,HR 資料不準就會開錯。
- 09存取審查(Access Review)定期檢查群組成員資格的機制,Entra 版本需要額外授權。
- 10開通紀錄申請人、核准人、執行人、日期都要留,否則答不出這個權限是誰給的。
全部唯讀,不改任何設定;做完你會知道自己有沒有同樣的破口。
- 挑三位最近調職的同事,在身分平台查看他們目前所屬的群組(唯讀)看到什麼代表什麼:還掛著舊部門群組的,就是調職時只開不收的殘留權限。
- 到 CRM 或財務資料夾等敏感系統,檢視有權限的人員名單(唯讀)看到什麼代表什麼:名單上出現現職用不到的人,代表權限是複製或累積來的。
- 看最近一位新人在各系統的帳號建立時間,和他的到職日比一比(唯讀)看到什麼代表什麼:建立時間晚於到職日,表示新人有一段時間在等,可能借了帳號或自己註冊工具。
- 翻出現行的入職或調職流程文件,找有沒有「要收哪些權限」這一欄(不用指令)看到什麼代表什麼:沒有這一欄,就是這篇說的缺口;先替人數最多的職務補上。
揭露:本文未受任何廠商贊助,提及的產品僅為舉例。
來源
每篇新文章一封:三點摘要、關鍵字定義、今天能做的一件事。
延伸閱讀
六台主機共用一把沒上鎖的鑰匙,而通往它們的門其實一直開著
維運設計是『所有人先進跳板機、再進其他主機』,方向沒有錯。錯的是網路層從沒強制這條路,而那把讓跳板機免密碼開全叢集的 root 私鑰,沒有 passphrase、裸躺在磁碟上。這篇是作者分析:跳板機與 SSH 金鑰信任最常見的幾個誤區,以及它們為什麼看起來很安全。
寄信功能十分鐘就會動,難的是不讓別人也能用
本站新增「寄一份盤點結果給我」:應用端一把金鑰都不放,信交給內部閘道送,對外路由一律 token 加限流。外加一個把整組環境變數清空換來的教訓。
我們寫了一道關卡防自己,第二次部署它就亮了紅燈
沒有攻擊、沒有外洩、沒有帳單,這是一份設定稽核紀錄:一支只該讀寫試算表的 GCP:Service Account,在專案層是 Owner。拿掉只要一行,拿掉前要先查什麼?