简介
如果你想了解管理应用配置机密可能出现的问题,那么高级开发人员 Steve 的故事就是最佳选择。
Steve 曾在一家宠物食品配送公司工作了几个星期。 Steve 曾在浏览公司的 Web 应用(.NET Core Web 应用,该应用使用 Azure SQL 数据库存储订单信息,并使用第三方 API 进行信用卡计费和映射客户地址)的详细信息时,不慎将订单数据库的连接字符串粘贴到了公共论坛。
几天后,会计部门发现公司配送了许多未付款的宠物食品。 有人使用连接字符串访问了数据库,并通过直接更新数据库创建了订单。
在意识到自己的错误后,Steve 急忙更改了数据库密码来阻挡攻击者。 Steve 更改密码后,网站开始向用户返回错误。 应用服务器需要更新配置以使用新密码。 Steve 直接登录到应用服务器,并更改了应用配置(而不是重新部署),但服务器仍显示失败的请求。
Steve 忘记了应用的多个实例在不同的服务器上运行。 他只更改了一个服务器的配置。 需要完全重新部署,导致故障时间延长 30 分钟。
但对 Steve 而言幸运的是,会计部门快速纠正了错误,因此只影响了一天的订单。 但 Steve 不可能总是这么幸运,因此需要找到一种方法来改进应用的安全性和可维护性。
泄漏数据库连接字符串、API 密钥或服务密码可能导致灾难性后果。 潜在后果包括数据被盗取或删除、财务损害、应用故障时间以及对业务资产和信誉造成无法弥补的损害。 遗憾的是,机密值通常需要同时在多个位置进行部署,并需要在不适当的时候进行更改。 但总得将这些信息存储在某处! 让我们看看 Steve 如何通过 Azure Key Vault 降低风险、提升其应用安全性和可维护性。
学习目标
在本模块中,你将:
- 探索 Azure Key Vault 中可存储哪些类型的信息
- 创建 Azure Key Vault 并使用它存储机密配置值
- 从具有 Azure 资源托管标识的 Azure 应用服务 Web 应用启用对 Azure Key Vault 的安全访问
- 实现从 Azure Key Vault 中检索机密的 Web 应用