你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 容器应用提供了多个内置安全功能,可帮助你构建安全的容器化应用程序。 本指南探讨关键安全原则,包括托管标识、机密管理和令牌存储,同时提供最佳做法来帮助设计安全且可缩放的应用程序。
托管标识
托管标识 无需在代码或配置中存储凭据,只需在 Microsoft Entra ID 中提供自动托管标识。 容器应用可以使用这些标识向任何支持Microsoft Entra 身份验证的服务进行身份验证,例如 Azure 密钥保管库、Azure 存储或 Azure SQL 数据库。
托管标识类型
Azure 容器应用支持两种类型的托管标识:
系统分配的标识:在容器应用的生命周期内自动创建和管理。 当您的应用被删除时,其身份标识也会被删除。
用户分配的标识:独立创建,可分配给多个容器应用,从而允许跨资源共享标识。
Azure 容器应用 中托管标识的安全优势
- 无需在应用程序代码中管理和轮换凭据
- 降低配置文件中凭据泄露的风险
- 通过 Azure RBAC 提供精细的访问控制
- 仅授予必要的权限,支持最低权限原则
在系统分配标识和用户分配标识之间进行选择
对具有以下特征的工作负载使用系统分配的标识:
- 包含在单个资源中
- 需要独立的标识
对具有以下特征的工作负载使用用户分配的标识:
- 跨共享单个标识的多个资源运行
- 需要预授权来保护资源
用于映像拉取的托管标识
常见的安全模式是使用托管标识从 Azure 容器注册表中的专用存储库 拉取映像 。 这种方法:
- 避免对注册表使用管理凭据
- 通过 ACRPull 角色提供精细的访问控制
- 支持系统分配标识和用户分配标识
- 可以控制限制对特定容器的访问
有关详细信息,请参阅托管标识和使用托管标识从 Azure 容器注册表中拉取映像,详细了解如何为应用程序设置托管标识。
机密管理
Azure 容器应用提供内置机制,用于安全地存储和访问敏感配置值,例如连接字符串、API 密钥和证书。
密钥机密管理功能
- 机密隔离:将机密范围限定到应用程序级别,并将其与特定修订隔离。
- 环境变量引用:将机密以环境变量形式暴露给容器。
- 卷装载:将机密作为文件装载到容器中。
- 密钥保管库 集成:引用存储在 Azure 密钥保管库 中的机密。
机密管理的最佳做法
- 避免将机密直接存储在用于生产环境的容器应用中。
- 使用 Azure 密钥保管库 集成进行集中式机密管理。
- 授予对机密的访问权限时实现最低特权。
- 在环境变量中使用机密引用,而不是硬编码值。
- 在适当情况下,使用卷装载以文件形式访问机密。
- 实施适当的机密轮换做法。
有关详细信息,请参阅从 Azure 密钥保管库 导入证书,了解如何为应用程序设置机密管理。
用于身份验证安全的令牌存储
令牌存储功能提供了一种安全的方式来管理独立于应用程序代码的身份验证令牌。
身份验证令牌存储的工作原理
- 系统将令牌存储在Azure Blob 存储中,使其与应用程序代码分开。
- 只有关联的用户可以访问缓存的令牌。
- 容器应用会自动处理令牌刷新。
- 此功能通过消除自定义令牌管理代码来减少攻击面。
有关详细信息,请参阅 “启用身份验证令牌存储 ”,详细了解如何为应用程序设置令牌存储。
网络安全
实施适当的网络安全措施有助于保护工作负载免受未经授权的访问和潜在威胁。 它还支持应用和其他服务之间的安全通信。
有关 Azure 容器应用中的网络安全性的详细信息,请参阅以下文章:
- 配置 WAF 应用程序网关
- 启用用户定义的路由(UDR)
- 基于规则的路由
机密计算(预览版)
Azure 容器应用包括一个机密计算工作负荷配置文件,该配置文件在基于硬件的受信任执行环境(TEE)内运行容器化工作负荷。 机密计算通过在代码执行前进行内存加密和环境证明来保护使用中的数据,从而补充 Azure 的静态加密与传输中加密。 此功能有助于降低未经授权访问敏感工作负载的风险,包括来自云服务提供商的访问。
当应用程序处理受监管或高度敏感数据并需要基于证明的保证时,请使用机密计算工作负荷配置文件。 有关受支持的区域和平台功能的概述,请参阅 Azure 机密计算。
有关配置详细信息,请参阅 Azure 容器应用 中的机密计算。
Microsoft Defender for Cloud 的无服务器容器态势(预览版)
Microsoft Defender for Cloud 在 CSPM 中包含适用于 Azure 容器应用 的无服务器容器态势能力。 这些功能为Azure 容器应用工作负载提供清单、状况评估和攻击路径分析,使安全团队能够识别并确定其容器应用环境中的风险的优先级。 有关载入指南和功能详细信息,请参阅 无服务器保护。