Azure 容器應用程式 提供數個內建安全性功能,可協助您建置安全的容器化應用程式。 本指南會探索重要的安全性原則,包括受控識別、秘密管理和令牌存放區,同時提供最佳做法來協助您設計安全且可調整的應用程式。
受管理的身分識別
受控識別 通過在 Microsoft Entra ID 中提供自動管理的識別,消除了在程式代碼或設定中儲存認證的需求。 容器應用程式可以使用這些身分識別向任何支援Microsoft Entra 驗證的服務進行驗證,例如 Azure Key Vault、Azure 記憶體或 Azure SQL Database。
受控識別類型
Azure 容器應用程式 支援兩種類型的受控識別:
系統指派的身分識別:使用容器應用程式的生命週期自動建立和管理。 刪除應用程式時,會刪除身分識別。
使用者指派的身分識別:獨立建立,並可指派給多個容器應用程式,以允許跨資源分享身分識別。
Azure 容器應用程式 中受控識別的安全性優勢
- 不需要在應用程式程式代碼中管理和輪替認證
- 降低組態檔中認證暴露的風險
- 透過 Azure RBAC 提供更細緻的訪問控制
- 僅授與必要許可權,以支援最低許可權原則
在系統分配與使用者指定身份間選擇
針對下列工作負載使用系統指派的身分識別:
- 包含在單一資源內
- 需要獨立身分識別
針對下列工作負載使用 使用者指定的身分:
- 在多個共用同一身分識別的資源之間執行。
- 需要預先授權來保護資源
用於映像提取的受控識別。
常見的安全性模式是使用 受控識別從 Azure Container Registry 中的私人存放庫提取映像。 此方法:
- 避免在登錄檔中使用系統管理認證
- 透過 ACRPull 角色提供更細緻的存取控制
- 支援系統指派和使用者指派的身分識別
- 可以控制以限制對特定容器的存取
欲了解更多資訊,請參閱「受管理身份」及「使用受管理身份從 Azure 容器登錄檔擷取映像」,以了解如何為您的應用程式設定受管理身份。
祕密管理
Azure 容器應用程式 提供內建機制,以安全地儲存和存取敏感性組態值,例如連接字串、API 密鑰和憑證。
密鑰管理功能
- 秘密隔離:將秘密範圍至應用層級,並從特定版本中隔離。
- 環境變數參考:將秘密公開給容器作為環境變數。
- 磁碟區裝載:將祕密裝載為容器內的檔案
- 金鑰保存庫 整合:參考儲存在 Azure Key Vault 中的祕密
秘密管理的最佳實務
- 避免直接將秘密儲存在生產環境中的容器應用程式中。
- 使用 Azure Key Vault 整合來進行集中式秘密管理。
- 在授權存取秘密時,實施最低權限。
- 在環境變數中使用秘密參考,而非硬編碼的值。
- 在適當情況下,使用磁碟區裝載以檔案形式存取祕密
- 實施正確的秘密輪替習慣。
欲了解更多資訊,請參閱 Import certificates from Azure Key Vault 了解如何為您的應用程式設定祕密管理。
驗證安全性的權杖存放區
令牌存放區功能可讓您安全地管理與應用程式程式代碼無關的驗證令牌。
認證憑證儲存的運作方式
- 系統會將代幣存放在 Azure Blob 儲存體,並將它們與應用程式代碼分開保存。
- 只有相關聯的使用者才能存取快取權杖。
- 容器應用程式會自動處理令牌更新。
- 此功能透過消除自訂的代幣管理程式碼,減少攻擊面。
如需詳細資訊,請參閱 啟用驗證令牌存放區 ,以取得如何為應用程式設定令牌存放區的詳細資訊。
網路安全性
實施適當的網路安全措施,有助於保護您的工作負載免受未經授權的存取及潛在威脅。 它也讓你的應用程式與其他服務之間能夠安全通訊。
如需 Azure 容器應用程式 中網路安全性的詳細資訊,請參閱下列文章:
- 設定 WAF 應用程式閘道
- 開啟使用者定義路由 (UDR)
- 以規則為基礎的路由
機密計算
Azure 容器應用程式 包含一個機密的運算工作負載設定檔,可在硬體基礎的可信執行環境(TEE)中執行容器化工作負載。 機密運算可補充 Azure 對靜態資料和傳輸中資料的加密保護,方法是透過記憶體加密,以及在程式碼執行前進行環境證明,來保護使用中的資料。 此功能有助於降低未經授權存取敏感工作負載的風險,包括雲端營運商的存取。
當您的應用程式處理受管制或高度敏感的資料,並要求基於證明的保證時,請使用機密運算工作負載設定檔。 有關支援區域與平台功能的概述,請參見 Azure 機密運算。
如需設定詳細資料,請參閱 Azure 容器應用程式 中的機密運算。
適用於雲端的 Microsoft Defender 無伺服器容器態勢 (預覽版)
適用於雲端的 Microsoft Defender 在 CSPM 中包含適用於 Azure 容器應用程式 的無伺服器容器安全態勢功能。 這些功能提供 Azure 容器應用程式 工作負載的庫存、態勢評估及攻擊路徑分析,讓安全團隊能識別並優先排序容器應用環境中的風險。 有關新手教學與功能細節,請參閱 無伺服器保護。