本文將協助你保護機密並降低未經授權存取的風險。 請遵循此指引,確保不會將敏感資訊(如憑證)儲存在程式碼、GitHub 倉庫、日誌或持續整合/持續部署(CI/CD)管線中。 本文的指引來自個別服務建議及 Microsoft Cloud 安全基準測試(MCSB)。
本文與Microsoft的零信任安全模型一致,該模型要求明確驗證、最低權限存取,並假設遭到入侵。 關於包含 Azure 原則 強制執行的規範性安全控制,請參見 Microsoft Cloud Security Benchmark v2:特權存取與 MCSB v2:資料保護。
秘密發現與預防
在你保護你的秘密之前,你需要先了解它們存在的位置。 你還需要控制措施,防止暴露發生。
進行稽核以識別祕密:稽核您的系統與應用程式,找出需要保護的敏感資訊,如密碼、API 金鑰、連線字串及其他憑證。 定期稽核有助於確保你的庫存能記錄新的秘密,並妥善管理現有秘密。 對動態建立的秘密 (例如臨時 OAuth 權杖) 採取與長期秘密相同的嚴格保護措施。
避免硬編碼祕密:直接將祕密嵌入程式碼或設定檔會帶來重大安全風險。 如果攻擊者入侵了你的程式碼庫,他們也會洩漏你的機密。 相反地,使用環境變數或設定管理工具,避免原始碼有祕密。 此做法降低意外暴露風險,並簡化秘密更新。 將秘密檢索整合進自動化部署流程,並使用秘密注入模式,幫助防止日誌或版本控制意外暴露。 如需詳細資訊,請參閱 保護應用程式秘密的建議。
實施機密掃描工具:定期掃描程式碼庫內嵌秘密,以防止意外外洩。 像是 Azure DevOps 認證掃描工具 和 GitHub 機密掃描 這類工具,可以自動偵測存放庫中的機密並向你發出警示。 將這些工具整合進你的 CI/CD 管線,持續監控。 將掃描工具發現的任何秘密視為已被洩漏。 立即撤銷並更換,以維護安全防護的完整性。
安全儲存與加密
保護機密需要安全的儲存機制以及在各階段的適當加密。
使用安全金鑰儲存:像 Azure Key Vault 和 Azure Key Vault Managed HSM 這類服務提供安全功能,包括存取控制、日誌記錄及自動輪換。 此方法集中管理秘密,降低未經授權存取的風險。 對於高度敏感或關鍵的秘密,應使用硬體安全模組(HSM)支援的金鑰庫,以提升比軟體型秘密庫更強的保護。 對於客戶管理金鑰案例,至少使用由 HSM 提供支援的 Azure Key Vault 進階層。 針對金鑰主權需求,請使用 Azure Key Vault Managed HSM。 關於 Azure 金鑰管理產品的概述及選擇指引,請參閱《Azure 中的金鑰管理》及《如何選擇合適的金鑰管理解決方案》。
加密靜態與傳輸中的秘密:Azure Key Vault 透過信封加密安全儲存秘密,其中金鑰加密金鑰會加密資料加密金鑰,提供另一層安全防護。 使用安全通訊協定如 HTTPS 來加密應用程式與金鑰庫之間的傳輸資料。 在 Azure 中,各種服務透過使用 AES 256 加密來實作靜態加密。 TLS 與 MACsec 可保護傳輸中的資料安全。 欲了解更多資訊,請參閱靜 態與傳輸中的加密。
實施網路隔離:設定 防火牆與網路安全群組 ,限制對金鑰庫的存取。 只允許受信任的應用程式和服務存取您的機密。 此方法可減少攻擊面,並協助防止未經授權的存取。 考慮使用多個金鑰庫來為不同元件建立隔離邊界。 如果攻擊者入侵了一個元件,該元件就無法控制其他秘密或整個工作負載。
存取控制與身份
管理誰和什麼能存取機密,對維護安全至關重要。
使用管理身份:Azure 中的管理身份提供一種安全的方式,讓應用程式能在不儲存憑證的情況下,對 Azure 服務進行認證。 啟用 Azure 資源的管理身份,以安全存取 Azure Key Vault 及其他服務,減少手動處理秘密的需求。 此方法減少秘密建立,並減少潛在資料外洩的表面積,因為平台管理憑證。
應用細緻存取控制:遵循最小權限原則,對您的秘密資料套用細緻存取控制。 使用 Azure 角色基礎存取控制(Azure RBAC)確保只有授權實體能存取特定秘密。 定期檢閲和更新存取權限,以防止未經授權的存取。 實作使用者、管理員與稽核員等不同角色來管理秘密存取。 此做法有助於確保只有受信任的身份擁有適當的權限層級。 欲了解更多資訊,請參閱 Azure Key Vault RBAC 指南。
秘密生命週期管理
秘密需要從創造到退休的整個生命週期持續管理。
定期更換秘密:秘密隨時間容易洩漏或暴露。 定期更換您的秘密資料,以降低未經授權存取的風險。 你可以在 Azure Key Vault 中輪換祕密,但僅適用於某些祕密。 對於無法自動輪替的機密,請建立手動輪替程序,並在不再使用時予以清除。 自動化秘密輪替,並在秘密管理中加入冗餘,確保輪替不會干擾服務可用性。 在程式碼中實作重試邏輯和並行存取模式,幫助減少輪換視窗中的問題。
安全分發機密:當您分發機密時,請在組織內外安全地分享。 使用設計用於安全共享的工具,並在災難復原計畫中加入秘密復原程序。 如果金鑰遭到入侵或洩露,請立即重新生成。 為每位消費者使用不同的金鑰,而非共享金鑰,即使使用者的存取模式相似。 此做法簡化了金鑰管理與撤銷流程,讓您能在不影響其他消費者的情況下撤銷被盜金鑰。
監視與記錄
持續監控能偵測可疑活動並支持合規要求。
- 監控與記錄存取:啟用秘密管理系統的日誌與監控功能,以追蹤存取與使用情況。 使用 金鑰保存庫 logging、Azure 監視器 或 Azure 事件方格 來監控所有與秘密相關活動。 監控能讓你了解誰存取了你的機密,並協助偵測可疑行為或潛在的安全事件。 維持詳細的稽核追蹤,以檢查並驗證對機密的存取,有助於防止身份盜用、避免否認,並減少不必要的暴露。
服務專用的秘密處理指引
個別服務可能有更多最佳實務與保護秘密的指引。 範例包括:
- API 管理:在 Azure API 管理 政策中使用命名值,並結合 金鑰保存庫 整合
- App Service:為 App Service 和 Azure Functions 使用 金鑰保存庫 參考
- Application Gateway:透過 Azure 入口設定 Application Gateway 的 TLS 終止
- 自動化:在 Azure 自動化 中管理憑證
- Azure AI Foundry:使用 Azure Key Vault 開發 Foundry Tools 應用程式
- Azure 應用程式組態:在 ASP.NET Core 應用程式中使用 金鑰保存庫 參考
- Azure Bot Service:Azure Bot Service 靜態資料加密
- Azure Center for SAP 解決方案:準備網路以部署 Azure Center for SAP 解決方案
- Azure 通訊服務:建立與管理存取權杖
- Azure Communications Gateway:創造並儲存秘密
- Azure 容器應用程式: 管理 Azure 容器應用程式 中的機密
- Azure Cosmos DB:為 Azure Cosmos DB 設定客戶管理的金鑰
- 適用於 PostgreSQL 的 Azure 資料庫 - Flexible Server:使用客戶管理金鑰的資料加密
- Azure Databricks:Azure Databricks 中的 金鑰保存庫 整合
- Azure DevTest Labs:[在 Azure DevTest Labs 的實驗室虛擬機器上啟用使用者指派的受控識別]
- Azure 事件中樞:設定由客戶管理的金鑰以加密 Azure 事件中樞 的靜態資料
- Azure Front Door: Azure Front Door secrets
- AKS 上的 Azure HDInsight:建立 Azure Key Vault 資源的必要條件
- Azure 資訊保護:金鑰保存庫 對 Azure 資訊保護 的支援
- Azure Kubernetes Service (AKS): CSI Secret Store
- Azure Machine Learning:在 Azure Machine Learning 作業中使用驗證認證祕密
- Azure 受控應用程式:部署 Azure 受控應用程式 時存取 金鑰保存庫 密密
- Azure Pipelines:保護 Azure Pipelines 中的祕密
- Azure 服務匯流排: 將 服務匯流排 與 Service Connector 整合
- Azure SignalR Service:URL 範本設定中的 金鑰保存庫 祕密參考
- Azure Spring 應用程式: Integrate Azure Key Vault with Service Connector
- Azure Stack Edge: 使用 Azure Key Vault 管理 Azure Stack Edge 祕密
- Azure Stack Hub:輪替密鑰
- Azure Web PubSub:新增自訂憑證
- 備份: 設定保險庫以使用客戶管理的金鑰進行加密
- Data Factory:[將認證儲存在 Azure Key Vault 中]
- ExpressRoute: 為 ExpressRoute Direct 設定 MACsec 加密
- 功能:為 App Service 和 Azure Functions 使用 金鑰保存庫 參考資料
- 金鑰保存庫:關於Azure Key Vault祕密
- Logic Apps: Logic Apps 標準 App 設定
- Microsoft Purview:Microsoft Purview 中用於來源驗證的憑證
- Service Fabric:KeyVaultReference 對 Service Fabric 應用程式的支援
- Azure 上的 SQL Server VM:設定適用於 Azure 上的 SQL Server VM 的 Azure Key Vault 整合
- 儲存:授權存取Azure 儲存體中的資料
下一步
將安全性風險降至最低是共同的責任。 主動採取措施來保障你的工作負載安全。 如需詳細資訊,請參閱雲端中的共同責任。
- 如需更多安全性最佳做法,請參閱 Azure 安全性最佳做法與模式,以便在使用 Azure 設計、部署和管理雲端解決方案時使用。
- 檢視 Microsoft Cloud Security Benchmark v2:特權存取控制,以獲得完整的秘密、特權存取指引及 Azure 原則 映射。
- 了解 Microsoft 安全未來計畫,這是 Microsoft 內部保護身份與機密的最佳安全實務,Microsoft 也推薦給各組織。
- 探索身分識別零信任部署,以取得關於實作身分識別與存取管理之零信任原則的指引。