簡介
若您想要了解管理應用程式設定祕密可能發生的問題,只需觀看資深開發人員 Steve 的故事。
Steve 已在一家寵物食品配送公司工作了幾個星期。 當他不小心將訂單資料庫的連接字串貼入公開論壇時,他正在探索公司 Web 應用程式的詳細資料。該應用程式是一種 .NET Core Web 應用程式,已將 Azure SQL Database 用於儲存訂單資訊,並將協力廠商 API 用於信用卡帳單和對應客戶地址。
幾天後,會計部門注意到公司配送許多無人付費的寵物食品。 有人使用了連接字串來存取資料庫,並透過直接更新資料庫來建立訂單。
在 Steve 意識到自己的錯誤後,他急忙變更資料庫密碼來封鎖攻擊者。 在 Steve 變更密碼之後,網站開始將錯誤傳回給使用者。 應用程式伺服器需要一個具有新密碼的更新組態。 Steve 直接登入應用程式伺服器,並變更了應用程式組態而不是重新部署,但伺服器仍顯示失敗的要求。
Steve 忘記在不同伺服器上執行了多個應用程式實例。 他只改變其中一個的組態。 需要進行完整重新部署,但這會導致另外 30 分鐘的停機時間。
對 Steve 而言,幸好會計部門能夠快速更正錯誤,而且只會影響一天的訂單。 不過,Steve 未來可能不會這麼幸運,而且需要尋找方法來改善應用程式的安全性與可維護性。
洩漏資料庫連接字串、API 金鑰或服務密碼可能是場災難。 資料遭竊或遭刪除、財務損失、應用程式停機時間,以及對企業資產和聲譽的無法彌補損害都是可能的結果。 不幸的是,祕密值通常需要同時部署在多個位置,並在不適當的時間進行變更。 因此,您必須將它們儲存在「某處」! 了解 Steve 如何降低風險,並使用 Azure Key Vault 來改善其應用程式的安全性與可維護性。
學習目標
在本單元中,您將:
- 探索有哪些類型的資訊可以儲存在 Azure Key Vault 中
- 建立 Azure Key Vault,並使用它來儲存祕密設定值
- 使用 Azure 資源的受控識別,從 Azure App Service Web 應用程式安全存取 Azure Key Vault。
- 實作 Web 應用程式以從 Azure Key Vault 擷取祕密