為自動化準備一把獨立的鑰匙,而不是共用密碼:權杖及其限制

把密碼交給指令碼,等於把那個人擁有的一切寫進一個檔案。權杖是一把獨立的鑰匙:可以單獨撤銷、可以設定到期日,權限也可以比帳號更小。

AtlasPVE ·

本條目涵蓋以下問題

  • proxmox 建立 api token
  • proxmox 自動化腳本共用密碼
  • proxmox api token 權限
  • proxmox token 權限分離是什麼
  • proxmox terraform ansible 存取權限

備份指令碼、監控工具或佈建工作都需要連線到系統。第一個反射動作是交給它一組密碼,而且通常是權限最高的那個帳號的密碼。麻煩就是從這裡開始的。

交出密碼,等於交出了什麼

密碼屬於一個人。把密碼交給指令碼,就等於把那個人擁有的一切都交給了它,而且還是以明文寫在檔案裡。密碼一改,自動化就停擺;那個人離職時密碼會被更改,但自動化依賴著這組密碼這件事,通常要到同一天才會被想起來。

權杖的作用

權杖是綁定在帳號上的一把獨立鑰匙。它把三件事分開:可以單獨撤銷,可以有自己的到期日,而且因為它有名稱,可以知道是哪個工作在使用它。不必更改密碼就能關掉某一項自動化,看起來只是小細節;隨著環境規模擴大,它卻會成為最有用的一項。

真正的問題:權杖被允許做什麼

權杖最重要的設定,是它是否原封不動地沿用帳號的權限。如果是,權杖就和它的擁有者一樣強大。擁有者若擁有完整權限,權杖也一樣,而它現在就躺在某台機器上的某個檔案裡。

啟用分離之後,權杖只擁有授予權杖本身的權限。給備份指令碼剛好足以做備份的權限,即使那個指令碼遭到入侵,被拿走的也就只有這些。預設選擇範圍窄的一側,只在經過考慮之後才刻意開放範圍寬的一側。

密鑰只會顯示一次

建立權杖時,密鑰只會顯示一次。這不是介面的怪癖:系統並不會以可讀取的形式保存這個值。遺失了就建立一個新的,而這才是正確的行為。如果它能在某處被讀回來,那才是真正的問題。

鑰匙最後放在哪裡

鑰匙放在哪裡,比它有多強更重要。提交到程式碼儲存庫的指令碼、最後跑進備份檔裡的設定、被截圖拍到的視窗:這些都帶著這把鑰匙。在建立它之前,先決定它要寫在哪裡。

到期日與輪替

有到期日的鑰匙,即使沒有人照管,總有一天也不再構成風險。沒有到期日的鑰匙會存活好幾年,而且通常比建立它的人待得更久。每一把鑰匙都要加上備註:哪個工作在使用它,誰是負責人。

Atlas 的做法

Atlas 以帳號為單位管理權杖。建立權杖時,預設就會讓權杖的權限與帳號分開,所以起點是範圍窄的一側,要放寬則是刻意的一步。密鑰只在建立的當下顯示一次,不會保存在面板中。現有的權杖會連同備註與到期日一起列出,所以這台機器上哪項自動化用哪把鑰匙連線,這個問題讀一下就能得到答案。

資料來源

Proxmox 官方文件。內容為英文,且在此主題上以官方文件為準。

相關條目

這項工作在 Atlas 中是什麼樣子?

前往產品頁面