简介
将基础结构部署为代码时,可以自动执行部署,增加部署信心,并提高团队工作的效率。 但只有在你和团队人员勤奋工作并避免对环境进行人工更改时,才能享受这些好处。
在本模块中,你将了解如何在 Azure 环境和管道中应用配置和治理,以避免意外或不受控制的更改。
注意
描述管道的 GitHub Actions 术语是“工作流”。 为了简单起见,我们在整个模块中使用“管道”来同时表征 Azure Pipelines 中的管道和 GitHub Actions 中的工作流。
示例方案
假设你是一家玩具公司的 Azure 管理员。 在过去几个月中,你和你的团队一直在将 Azure 部署转换为使用 Bicep。 你已使用管道实现部署过程自动化。 但团队中仍有一些成员尚未完全采用将所有更改部署为代码的思路。
最近出现了一些情况,人们使用不同的进程部署到 Azure:
- 有人使用 Azure 门户直接更改了网站的配置。
- 有人直接从自己的计算机部署了一个新的 Bicep 文件。
- 有人复制了管道的服务主体凭据,并使用这些凭据通过 Azure CLI 访问生产环境。
- 有人绕过拉取请求评审,直接将 Bicep 文件更改提交到存储库的主分支。
- 有人使用拉取请求更新了 Bicep 文件。 这些更改已在整个正确的环境序列中进行了验证、测试和部署。
下图描绘了这些情况:
在所有这些更改中,只有 5 号是通过你采用的自动化工具和团队一致同意的过程部署的。 其他任何更改并未造成任何损害,但你知道不会总是有这样的运气。 你的团队决定强制实施确定的流程,以便从自动化投资中获得最大好处。 你已与团队成员达成一致,封锁部署到 Azure 环境的能力,除非通过批准的过程实施:
你将做些什么?
在本模块中,你将了解如何强制将 Azure 基础结构部署为代码。 你将考虑需要应用于每个环境的控制,并应用治理和安全策略来保护 Azure 资源。 你还将了解如何通过确保 Azure 配置的所有方面都遵循建议和强化的过程来帮助保护管道和存储库。
提示
本模块将介绍许多安全功能。 摘要单元包含有关每个功能的详细信息的链接。
主要目标是什么?
本模块结束时,你将能够确定要应用于 Azure 环境、存储库和管道的安全控制措施和治理,以便将所有基础结构部署为代码。
先决条件
你应该熟悉使用以下内容:
- 基础结构即代码及其优势,以及 Bicep 或 Terraform 等技术。
- Azure,包括 Azure 门户、订阅、资源组和资源。
- 用于管理代码的 Git,包括分支和拉取请求。
- 通过 GitHub Actions 或 Azure Pipelines 实现自动化部署。