使用 Azure 和 GitHub 启用 DevSecOps

DevSecOps(有时称为安全 DevOps)以 DevOps 的原则为基础,将安全视作整个应用程序生命周期的核心。 此概念称为“左移安全”:它将安全性上游从仅生产环境相关转变为涉及规划和开发的早期阶段。 每个使用应用程序的团队和个人都需要考虑安全性。

Microsoft 和 GitHub 提供了多种解决方案,可帮助你建立对生产环境中运行的代码的信心。 这些解决方案检查代码,并允许代码追溯至工作项和关于正在使用的第三方组件的见解。

通过 GitHub 保护代码

开发人员可以使用代码扫描工具快速地自动分析 GitHub 存储库中的代码,找出安全漏洞和编码错误。

你可以扫描代码来查找、会审和优先处理现有问题的修复。 代码扫描还可防止开发人员引入新问题。 你可安排在特定日期和时间进行扫描,或在存储库中发生特定事件(例如推送)时触发扫描。 你还可跟踪存储库的依赖项,并在 GitHub 检测到易受攻击的依赖项时接收安全警报。

使用 Azure Boards 跟踪工作

团队可以使用 Azure Boards Web 服务来管理软件项目。 Azure Boards 提供了一套丰富的功能,包括对 Scrum 和看板的本地支持、可定制的仪表板和集成报告。

使用 Azure Pipelines 生成和部署容器

轻松集成 Azure Pipelines 和 Kubernetes 群集。 对于持续集成和持续交付,可使用相同的 YAML 文档来生成多阶段管道即代码。

Azure Pipelines 将元数据(包括来自 Azure Boards 的提交哈希和问题编号)跟踪集成到容器映像中,使你能够放心地检查应用程序。

使用 YAML 文件创建部署管道并将其存储在源代码管理中这一功能有助于依靠清晰易读的文档在开发团队和运营团队之间建立更紧密的反馈循环。

使用 Bridge to Kubernetes 运行和调试容器

开发 Kubernetes 应用程序可能非常困难。 需要 Docker 和 Kubernetes 配置文件。 需要确定如何在本地测试应用程序并与其他依赖服务进行交互。 你可能需要与开发者团队合作同时开发和测试多个服务。

通过 Bridge to Kubernetes,你可在开发计算机上运行和调试代码,而不中断 Kubernetes 群集与其余应用程序或服务的连接。 你可以对代码进行端到端测试,命中群集中运行的代码的断点,并在团队成员之间共享开发群集,而不会造成干扰。

使用 Microsoft Defender for Containers 和 Azure Policy 实施容器安全

适用于容器的 Microsoft Defender 是用于保护容器的云原生解决方案。

使用 Microsoft 标识平台管理标识和访问

Microsoft 标识平台由 Azure Active Directory (Azure AD) 开发人员平台演变而来。 开发人员可以通过它来生成应用程序,从而可以采用所有 Microsoft 标识登录,以及获取令牌来调用 Microsoft Graph 等 Microsoft API 或开发人员生成的 API。

Azure AD B2C 以服务的形式提供企业到客户标识。 客户使用其首选的社交、企业或本地帐户标识对应用程序和 API 进行单一登录访问。

对于使用云的任何组织而言,云资源的访问管理是一项关键功能。 Azure 基于角色的访问控制 (Azure RBAC) 可帮助你管理谁有权访问 Azure 资源、他们可以对这些资源执行哪些操作以及他们有权访问哪些区域。

可使用 Microsoft 标识平台对其余的 DevOps 工具进行身份验证,包括 Azure DevOps 中的本机支持以及与 GitHub Enterprise 的集成。

目前,Azure Kubernetes 服务 (AKS) 群集(特指 Kubernetes 云提供商)需要使用标识才能在 Azure 中创建其他资源,例如负载均衡器和托管磁盘。 此标识可以是托管标识或服务主体。 如果使用服务主体,你必须提供一个服务主体,或由 AKS 代表你创建一个。 如果使用托管标识,AKS 会自动为你创建托管标识。 对于使用服务主体的群集,最终必须续订服务主体以使群集正常运行。 管理服务主体会增加复杂性,这也是托管标识使用起来更简单的原因。 服务主体和托管标识适用相同的权限要求。

托管标识本质上是服务主体的包装器,这使其更易于管理。

使用 Azure Key Vault 管理密钥和机密

Azure Key Vault 可用来安全地存储令牌、密码、证书、API 密钥和其他机密,并对其访问进行控制。 通过集中存储 Key Vault 中的应用程序机密,可以控制其分发。 Key Vault 可以大大减少机密意外泄露的可能性。 使用 Key Vault 时,应用程序开发人员不再需要在应用程序中存储安全信息,因此无需将此信息加入代码。 例如,如果某个应用程序需要连接到数据库, 则可将连接字符串安全地存储在 Key Vault 中,而不是存储在应用代码中。

监视应用程序

利用 Azure Monitor,你可实时监视应用程序和基础结构,从而识别代码问题以及潜在的可疑活动和异常。 Azure Monitor 与 Azure Pipelines 中的发布管道集成,让你能够基于监视数据自动审批质量关口或发布回滚。

了解如何使用 Azure Application Insights 和 Azure Monitor 监视应用程序和基础结构。

构建适当的体系结构

安全性是任何体系结构最为重视的方面之一。 安全性可以针对故意攻击和宝贵数据及系统的滥用提供机密性、完整性和可用性保证。 失去这些保证可能对你的业务运营和收入以及你的组织在市场中的信誉产生负面影响。