祕密管理是保護和控制應用程式自動化元件憑證的過程。
閱讀本文後,您將能夠:
複製文章連結
祕密管理是安全儲存敏感資訊的做法,這些資訊如果洩露,可能會讓惡意或未經授權的各方存取應用程式基礎架構。在這個語境中,「祕密」是指使應用程式基礎架構的不同部分能夠相互連接的加密金鑰、API 金鑰、SSH 金鑰、權杖、密碼或憑證。
雖然使用者可能只需要知道一個密碼即可登入應用程式,但該應用程式本身由各個部分組成,所有部分都需要憑證(也就是這些祕密)才能相互通訊。
幾乎每個人都非常瞭解,記住多個應用程式的密碼是多麼困難,尤其是當這些密碼需要定期更新時。因此,許多人開始採取不安全的密碼做法,例如寫下密碼或在所有應用程式中使用相同的密碼。
開發人員在開發軟體時面臨類似的挑戰。使應用程式運作或執行業務的基礎架構可能需要數百甚至數百萬個金鑰、權杖和密碼。由於管理所有這些祕密非常費力,因此它們通常最終會被硬編碼到應用程式軟體中。它們可能永遠不會更新,有時以純文字形式編碼,使它們容易受到攻擊者的攻擊。
在應用程式開發的背景下,祕密是用作憑證的一段資料。正如一個人需要透過輸入使用者名稱和密碼進行驗證才能存取其電子郵件一樣,該電子郵件應用程式(或任何應用程式)的非人類元件也需要相互進行驗證才能使該應用程式正常運作。這些元件可能包括 API 連線、容器、微服務、指令碼、函數和自動化工具。為了進行驗證,它們使用憑證。
祕密可以包括:
想想兒童積木(例如 LEGO®)如何組合在一起形成堅固的微型結構。祕密就像將應用程式固定在一起的鎖定機制。沒有它們,應用程式就會崩潰。
不像積木總是使用相同的梁脊來鎖在一起,祕密需要定期變更。如果祕密使用的時間太長,攻擊者可能可以透過暴力密碼破解嘗試來猜測它。此外,祕密使用的時間越長,洩漏的可能性就越大。
輪換祕密的需求增加了安全管理祕密的複雜性。正如記住更新後的密碼可能很困難一樣,定期輪換祕密也是一個巨大的挑戰。十幾個應用程式可能依賴一個 API,如果 API 需要新的憑證,所有這些應用程式都必須更新其祕密。在某些情況下,組織甚至可能不知道有多少應用程式依賴該 API,以及更新一個祕密會破壞什麼。
有時,為了提高效率,開發團隊會選擇完全不更新祕密,就像許多人不願意更新密碼一樣。他們甚至可能將祕密硬編碼到指令碼和函數中,假裝不需要變更祕密。
手動共用:缺乏祕密管理解決方案的開發人員可能被迫使用手動流程在開發團隊之間共用祕密,導致文件品質不佳並將祕密引入不安全的環境中。
第三方帳戶:外部使用者可能需要存取內部 API 和資料庫。由於他們位於組織外部,因此難以實施安全祕密管理。
雲端運算:雲端環境龐大且短暫。新的虛擬機器執行個體會定期啟動以支援服務,並且所有虛擬機器執行個體都需要自己的祕密。雲端應用程式還允許從任何位置進行廣泛存取,從而極大地擴展了必須管理的憑證和特權的數量。
缺乏集中管理:就像讓一群人就晚餐時間達成一致可能是一項挑戰一樣,管理分散在多個團隊和職能部門中的祕密也很困難。每個團隊可能以不同的方式記錄祕密、以不同的方式儲存它們,或缺乏對其他團隊正在使用的祕密的可見性。
祕密管理工具可以自動進行安全管理祕密的所有必要流程。它們還將祕密儲存在安全的環境中,與應用程式的程式碼分開。這讓開發人員不必再對祕密進行硬編碼或以純文字形式儲存,在這些情況下,祕密可能會被洩漏。
Cloudflare 提供了一個高度可擴展的開發平台,用於在其全球網路上執行程式碼。Cloudflare Secrets Store 讓開發人員能夠安全地儲存和管理其應用程式所需的祕密,從 API 權杖到請求授權標頭。瞭解 Secrets Store。
機密管理是指保護並規範應用程式自動化部分所使用之數位認證的實務做法。這涉及安全地儲存敏感資料,這些資料一旦外洩,可能會讓未經授權的人員存取應用程式的基礎架構。
在此脈絡下,機密是指作為非人類元件認證的資料。這些非人類元素(如 API 連線、微服務和自動化工具)會使用這些認證彼此進行身分驗證,以確保應用程式正常運作。範例包括 IPsec 金鑰、TLS 私密金鑰、API 金鑰和密碼。
常見的機密包括 API 金鑰、加密金鑰、密碼和權杖。它們還包括憑證(如 TLS 或 IPsec 憑證),以及允許基礎架構不同部分相互連接的 SSH 金鑰。
必須更新機密以降低攻擊者透過暴力密碼破解嘗試猜測出機密的風險。此外,機密使用時間越長,外洩的可能性就越高。定期輪替有助於長期維護應用程式的安全性。
雲端環境通常規模龐大且變動頻繁,新的虛擬機器不斷啟動,且每一個都需要有自己的認證。此外,各種元件之間往往相互依賴,因此當更新機密時,可能會導致尚未更新新資訊的元件之間連線中斷。這種擴張增加了組織必須監控和管理的權限與機密總數,其總數往往遠遠超出內部團隊的人力負荷能力。
機密管理解決方案將管理流程自動化,並將認證儲存在與應用程式碼分離的安全環境中。這讓開發人員可以避免將機密硬編碼或儲存為純文字,因為那會讓攻擊者更容易找到。
Cloudflare 提供了一個名為 Secrets Store 的工具,建立在其全球網路上。該服務讓開發人員能夠安全地儲存和處理其應用程式所需的各種認證。