什麼是機密管理?

祕密管理是保護和控制應用程式自動化元件憑證的過程。

學習目標

閱讀本文後,您將能夠:

  • 定義「祕密」和「祕密管理」
  • 瞭解祕密管理的一些挑戰
  • 介紹祕密管理解決方案

相關內容


想要繼續瞭解嗎?

訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!

請參閱 Cloudflare 的隱私權政策,了解我們如何收集和處理您的個人資料。

複製文章連結

什麼是機密管理?

祕密管理是安全儲存敏感資訊的做法,這些資訊如果洩露,可能會讓惡意或未經授權的各方存取應用程式基礎架構。在這個語境中,「祕密」是指使應用程式基礎架構的不同部分能夠相互連接的加密金鑰API 金鑰、SSH 金鑰、權杖、密碼或憑證

雖然使用者可能只需要知道一個密碼即可登入應用程式,但該應用程式本身由各個部分組成,所有部分都需要憑證(也就是這些祕密)才能相互通訊。

幾乎每個人都非常瞭解,記住多個應用程式的密碼是多麼困難,尤其是當這些密碼需要定期更新時。因此,許多人開始採取不安全的密碼做法,例如寫下密碼或在所有應用程式中使用相同的密碼。

開發人員在開發軟體時面臨類似的挑戰。使應用程式運作或執行業務的基礎架構可能需要數百甚至數百萬個金鑰、權杖和密碼。由於管理所有這些祕密非常費力,因此它們通常最終會被硬編碼到應用程式軟體中。它們可能永遠不會更新,有時以純文字形式編碼,使它們容易受到攻擊者的攻擊。

什麼是「祕密」?

在應用程式開發的背景下,祕密是用作憑證的一段資料。正如一個人需要透過輸入使用者名稱和密碼進行驗證才能存取其電子郵件一樣,該電子郵件應用程式(或任何應用程式)的非人類元件也需要相互進行驗證才能使該應用程式正常運作。這些元件可能包括 API 連線、容器微服務、指令碼、函數和自動化工具。為了進行驗證,它們使用憑證。

祕密可以包括:

  • IPsec VPN 金鑰或憑證
  • TLS 憑證
  • 金鑰
  • API 金鑰
  • 密碼
  • 權杖

想想兒童積木(例如 LEGO®)如何組合在一起形成堅固的微型結構。祕密就像將應用程式固定在一起的鎖定機制。沒有它們,應用程式就會崩潰。

為什麼更新祕密很重要?

不像積木總是使用相同的梁脊來鎖在一起,祕密需要定期變更。如果祕密使用的時間太長,攻擊者可能可以透過暴力密碼破解嘗試來猜測它。此外,祕密使用的時間越長,洩漏的可能性就越大。

輪換祕密的需求增加了安全管理祕密的複雜性。正如記住更新後的密碼可能很困難一樣,定期輪換祕密也是一個巨大的挑戰。十幾個應用程式可能依賴一個 API,如果 API 需要新的憑證,所有這些應用程式都必須更新其祕密。在某些情況下,組織甚至可能不知道有多少應用程式依賴該 API,以及更新一個祕密會破壞什麼。

有時,為了提高效率,開發團隊會選擇完全不更新祕密,就像許多人不願意更新密碼一樣。他們甚至可能將祕密硬編碼到指令碼和函數中,假裝不需要變更祕密。

祕密管理有哪些其他挑戰?

手動共用:缺乏祕密管理解決方案的開發人員可能被迫使用手動流程在開發團隊之間共用祕密,導致文件品質不佳並將祕密引入不安全的環境中。

第三方帳戶:外部使用者可能需要存取內部 API 和資料庫。由於他們位於組織外部,因此難以實施安全祕密管理。

雲端運算:雲端環境龐大且短暫。新的虛擬機器執行個體會定期啟動以支援服務,並且所有虛擬機器執行個體都需要自己的祕密。雲端應用程式還允許從任何位置進行廣泛存取,從而極大地擴展了必須管理的憑證和特權的數量。

缺乏集中管理:就像讓一群人就晚餐時間達成一致可能是一項挑戰一樣,管理分散在多個團隊和職能部門中的祕密也很困難。每個團隊可能以不同的方式記錄祕密、以不同的方式儲存它們,或缺乏對其他團隊正在使用的祕密的可見性。

祕密管理解決方案的工作原理

祕密管理工具可以自動進行安全管理祕密的所有必要流程。它們還將祕密儲存在安全的環境中,與應用程式的程式碼分開。這讓開發人員不必再對祕密進行硬編碼或以純文字形式儲存,在這些情況下,祕密可能會被洩漏。

Cloudflare 如何協助進行祕密管理?

Cloudflare 提供了一個高度可擴展的開發平台,用於在其全球網路上執行程式碼。Cloudflare Secrets Store 讓開發人員能夠安全地儲存和管理其應用程式所需的祕密,從 API 權杖到請求授權標頭。瞭解 Secrets Store