「幫我開個權限」,紀錄只留在聊天室裡
「可以幫我開一下那個後台的權限嗎?」「好,開了。」不到一分鐘就搞定。三個月後稽核問:誰核准的?為什麼要開?什麼時候收?大家只能回頭翻聊天紀錄。這篇用一張四個必填欄位的表單,把權限申請從聊天室搬出來。
- 權限申請在聊天室裡一分鐘就搞定,但「誰核准、為什麼、何時收」都沒留下來,訊息還可能早被洗掉。
- 結果是臨時權限變永久、權限一點一點擴散;流程太麻煩,員工又會借帳號或找替代工具繞路。
- 一張四個必填欄位的表單(申請什麼、為什麼、誰核准、何時到期),加上每月收回到期權限,就能把申請變成證據。
一句「OK」,留下半年的金流權限
假設有一家三十人的電商公司,所有權限申請都在 IT 群組裡用訊息處理。客服 J 為了處理一筆退款,臨時要了金流後台的查詢權限,主管在群組裡回了「OK」,IT 開了,不到一分鐘就搞定。事情處理完,權限一直沒收。
先說清楚,這是示意情境,不是真實事件,公司與人物都是為了說明而設。半年後盤點時發現,金流後台有好幾個人有權限,但沒人記得當初為什麼開,其中一位核准的主管也已經離職了。稽核問誰核准的、為什麼要開、什麼時候收,大家只能回頭翻聊天紀錄,而那個群組的訊息,可能早就被洗到看不到了。
這篇要講的只有一件事:訊息可以溝通,但不能當紀錄。
從「只是查一下」到一群人都有權限
第一個問題是核准沒留下證據。訊息裡的「OK」很難當成稽核證據,也看不出核准的是什麼範圍、多久。
第二個問題是臨時權限變永久。沒有到期日的權限,就會一直留著;處理一筆退款要的權限,半年後還在。
第三個問題是權限擴散。每次都是「只是查一下」,累積起來就是一群人有不該有的權限。
最後一個問題反過來:流程太麻煩,員工就繞路。申請太難,員工就借帳號,或找替代工具。所以解法不能只是加關卡。
這個示意情境裡,有哪些權限沒人負責
這是示意情境,沒有實際外洩;下表列的是聊天室核准最常留下的兩種存取權。
| 服務 | 憑證類型 | 用途 | 存在形式 | 放在哪 | 權限範圍 | 狀態 |
|---|---|---|---|---|---|---|
| 金流後台查詢權限 | 帳號上的角色權限 | 原本為了處理一筆退款 | 存在金流後台的使用者設定 | 客服帳號;核准紀錄只在聊天群組 | 交易查詢 | 示意情境;事情處理完沒收,半年後盤點才發現 |
| 金流後台其他使用者的權限 | 帳號上的角色權限 | 不明,沒人記得當初為什麼開 | 存在金流後台的使用者設定 | 多位員工帳號;其中一位核准人已離職 | 依各帳號角色而定 | 示意情境;開通理由與期限都沒有紀錄 |
兩列都查得到「誰有權限」,查不到「為什麼有」。
能證明的、只能推論的
這篇是觀點文,情境是虛構的示意,情境裡的任何紀錄都不能當證據;能證明的只有 sources 裡官方文件可以核對的功能,情境中的狀態一律算推論。
不花錢就能做的流程
到這裡,其實已經足夠理解問題在哪。如果你關心的是怎麼把這套流程導入公司,下面六步可以直接當 SOP;想先動手看現況,可以跳到「今天就可以來試試」。
第一步,一張表單,四個必填欄位。 用 Google 表單或 Microsoft Forms 做一張權限申請單:申請什麼、為什麼、誰核准、什麼時候到期。回覆自動存成試算表,這就是你的申請紀錄。
第二步,訊息可以溝通,但不能取代表單。 規則很簡單:沒填表單就不開權限。緊急狀況可以先開,但要在 24 小時內補單。
第三步,到期就收。 每月固定一天,篩出「到期日已過」的那幾列,把權限收掉並註記。
第四步,核准人輪替。 核准人不能是申請人本人,敏感系統最好由系統擁有者核准,而不是隨便一位主管。
第五步,重新確認無紀錄的權限。 盤點敏感後台,找不到申請紀錄的權限,請現任主管重新確認要不要保留。
第六步,看資料改流程。 累積幾個月之後,常被申請的權限可以考慮改成職務預設;幾乎都是臨時性的權限,就固定設短期到期。
什麼時候不需要買工具
每月權限申請只有十幾筆以內的話,表單加試算表就夠用了。工具解決的是量大、多層審批和自動開通,而不是「沒有流程」。
真的要看工具,大致分四類。既有的工單或表單:Google 表單、Microsoft Forms,或公司已經在用的 IT 工單系統。身分平台內建:Microsoft Entra ID Governance 的存取審查等治理功能。基礎架構類的即時存取:例如 Teleport 的 Access Requests,可以設定審核人數、依需求申請角色。商用 SaaS 管理平台:例如 1Password SaaS Manager(官網說有應用目錄、Slack/Teams 審批、與 Jira、ServiceNow 等工單系統同步),以及 Torii(官網列出存取申請和審批流程)。
限制也要一起看:自動開通只對有串接的應用有效;審批流程設得太複雜,員工還是會繞回聊天室。選的時候看三件事:申請量(量少用表單,量大而且有多層審批再考慮工單或平台)、既有工具(已經有工單系統,先在裡面加一個權限申請類別)、稽核需求(需要可匯出的完整軌跡時,才需要專門的平台)。
這篇提到的項目要花多少錢
原文沒有給出工具牌價,這篇的方法以人力為主,表裡照實標成估算或未公開。
| 項目 | 用量 | 單價 | 期間 | US$ | NT$ | 舉證 |
|---|---|---|---|---|---|---|
| 建立四欄位權限申請表單 估 | IT 一人 | 估 1 小時 | 一次性 | — | — | 本站估算 |
| 每月收回到期權限 估 | IT 一人 | 估 30–60 分鐘/月 | 每月 | — | — | 本站估算 |
| 敏感後台無紀錄權限的重新確認 估 | IT+現任主管 | 估 每個後台 30 分鐘 | 一次性 | — | — | 本站估算 |
| Entra ID Governance | 依人數授權 | 本文未查價 | 依授權 | — | — | 官方文件註明授權需求,價格未列 |
| Teleport Enterprise(Access Requests) | 依方案 | 本文未查價 | 依合約 | — | — | 官方文件註明為 Enterprise 功能,價格未列 |
| 合計(僅可證明列) | 0.00 | 0 | ||||
表單幾乎不花錢;貴的是稽核來問、而你只能說「好像有人在群組裡說 OK」的那一刻。
你可以學到什麼
站在攻擊者那一側看,每一個開了沒收的「只是查一下」,都讓能碰金流後台的帳號多了一個。他不必找權限最高的人,只要從這群人裡挑最好釣的那一個;而公司連這群人為什麼有權限都說不清楚,出事時也很難判斷影響範圍。
- 01聊天室裡的一句「OK」不是稽核證據;申請什麼、為什麼、誰核准、何時到期,四件事要留在表單裡。
- 02沒有到期日的臨時權限會一直留著,每月固定一天把到期的收掉,臨時權限才會真的是臨時的。
- 03核准人不能是申請人本人,敏感系統最好由系統擁有者核准,而不是隨便一位主管。
- 04找不到申請紀錄的敏感權限,請現任主管重新確認,核准人離職後的權限才有人負責。
- 05流程太麻煩員工就會繞路;緊急可先開、24 小時內補單,比一律卡關更守得住。
- 01權限申請單(Access Request)這篇的主角:四個必填欄位,把一句「OK」變成可查的紀錄。
- 02臨時權限到期(Time-bound Access)沒有到期日,臨時權限就會變成永久權限。
- 03權限擴散每次「只是查一下」累積起來,就是一群人有不該有的權限。
- 04稽核證據稽核問誰核准、為什麼、何時收,要拿得出紀錄,不是翻聊天室。
- 05職責分離(Separation of Duties)核准人不能是申請人本人,否則核准只是形式。
- 06系統擁有者(System Owner)敏感系統該由最懂它的人核准,而不是隨便一位主管。
- 07破窗補單(Break-glass)緊急可以先開、24 小時內補單,讓流程不會逼人繞路。
- 08最小權限原則只為一筆退款要的權限,處理完就該收,這是判斷要不要保留的基準。
- 09存取審查(Access Review)定期重新確認誰還需要權限,Entra 版本需要額外授權。
- 10即時存取(Just-in-Time Access)Teleport Access Requests 這類做法,讓權限依需求申請、用完就收。
全部唯讀,不改任何設定;做完你會知道自己有沒有同樣的破口。
- 到金流、會計或客戶資料後台,檢視目前有權限的人員名單(唯讀)看到什麼代表什麼:名單比你預期的長,代表權限已經在擴散。
- 替名單上每個人找出當初的申請或核准紀錄(不用指令)看到什麼代表什麼:找不到紀錄的,就是只存在聊天室、或連聊天室都找不回的權限;把這幾筆另存成「無紀錄權限-g7」分頁,第五步重新確認時就從它開始。
- 對照人事名單,確認每筆權限的核准人是否仍在職(唯讀)看到什麼代表什麼:核准人已離職的權限,現在沒人負責,要請現任主管重新確認。
- 在 IT 群組搜尋「權限」或「開一下」,看最近三個月的申請是否有寫到期日(唯讀)看到什麼代表什麼:幾乎都沒寫到期日,表示臨時權限正在變成永久權限。
揭露:本文未受任何廠商贊助,提及的產品僅為舉例。
來源
每篇新文章一封:三點摘要、關鍵字定義、今天能做的一件事。
延伸閱讀
六台主機共用一把沒上鎖的鑰匙,而通往它們的門其實一直開著
維運設計是『所有人先進跳板機、再進其他主機』,方向沒有錯。錯的是網路層從沒強制這條路,而那把讓跳板機免密碼開全叢集的 root 私鑰,沒有 passphrase、裸躺在磁碟上。這篇是作者分析:跳板機與 SSH 金鑰信任最常見的幾個誤區,以及它們為什麼看起來很安全。
寄信功能十分鐘就會動,難的是不讓別人也能用
本站新增「寄一份盤點結果給我」:應用端一把金鑰都不放,信交給內部閘道送,對外路由一律 token 加限流。外加一個把整組環境變數清空換來的教訓。
我們寫了一道關卡防自己,第二次部署它就亮了紅燈
沒有攻擊、沒有外洩、沒有帳單,這是一份設定稽核紀錄:一支只該讀寫試算表的 GCP:Service Account,在專案層是 Owner。拿掉只要一行,拿掉前要先查什麼?