你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

管理 Azure 云资产

本文介绍如何管理 Azure 云资源,以保障其运行状况。 你需要对云作进行强有力的管理控制,以确保云与业务目标保持一致。 遵循以下最佳做法:

确定管理范围

管理责任因部署模型而异。 使用下表确定基础结构(IaaS)、平台(PaaS)、软件(SaaS)和本地部署的管理责任。

管理区域 本地 IaaS (Azure) PaaS (Azure) SaaS
数据 ✔️ ✔️ ✔️ ✔️
代码和运行时 ✔️ ✔️ ✔️
云资源 ✔️ ✔️ ✔️
操作系统 ✔️ ✔️
虚拟化层 ✔️
物理硬件 ✔️

管理更改

更改是云中最常见的问题来源。 因此,需要一种跟踪更改及其审批的变更管理方法。 它还应检测未经批准的更改并将其还原为所需状态。 按照以下步骤进行操作:

  1. 开发更改请求过程。 使用正式系统,例如票证工具、拉取请求(GitHub 或 Azure DevOps),或指定的表单。 更改请求过程必须捕获关键详细信息,例如更改类型、请求者标识、目标环境、范围和原因。 保留常规服务请求(如密码重置)的单独过程。

  2. 评估与更改相关的风险。 分配明确的风险类别(高、中、低),以平衡部署速度与风险管理。 根据停机时间容差(错误预算)和工作负荷关键性等条件评估每个更改。 使用下表作为示例来帮助确定适当的审批工作流:

    风险级别 停机时间津贴 工作负荷关键程度 审批过程 示例更改
    不允许停机 这些更改会影响需要持续可用性且不容忍任何停机时间的任务关键型系统。 多个高级工程师评审、自动化管道警报、快速 Canary 发布和主动监视。 关键基础结构更新
    中等 允许短时间停机 这些更改会影响对停机时间的有限容忍度的重要系统。 自动管道标记更改。 如果监视引发警报,则工程师快速评审。 非关键系统更新,在短期维护时段内增强功能
    允许充足的停机时间 这些更改会影响非关键系统,这些系统可以接受长时间的停机时间,而不会影响整体作。 通过 CI/CD 完全自动化的部署运行预部署测试和监视。 例程更新、次要策略更新
  3. 明确规范审批。 定义每个风险级别所需的审批条件和授权。 指定谁必须评审每个更改,无论是单个审批者还是评审委员会,并阐明审阅者必须如何提供和解决反馈。

  4. 标准化部署过程。 明确概述了生成、测试和部署已批准的生产更改的过程。 有关详细信息,请参阅 管理云资源

  5. 标准化部署后过程。 实施监视和验证步骤以确认更改成功。 包括一个明确的回滚策略,用于在更改引入问题时快速还原服务。

  6. 防止和检测未经授权的更改。 使用 更改分析 来检测配置更改并解释其根本原因。 使用 Azure Policy,利用 DenyDenyActionAuditauditIfNotExists等效果来拒绝和审核更改。 如果使用 Bicep,请考虑使用 Bicep 部署堆栈 以防止未经授权的更改。

管理安全性

身份是你的安全防线。 必须验证标识、限制权限和维护安全资源配置。 按照以下步骤:

  1. 管理标识。Microsoft Entra ID 用作统一标识管理解决方案。 通过应用 基于角色的访问控制(RBAC)来明确定义权限。 使用 Microsoft Entra ID Governance 来控制访问请求工作流、访问评审和标识生命周期管理。 启用 Privileged Identity Management 以授予实时特权访问权限。 此策略可减少不必要的提升访问权限。 一致地管理所有三种标识类型(用户、应用程序、设备),以确保进行适当的身份验证和授权。

  2. 管理访问权限。 使用 Azure 基于角色的访问控制(RBAC)和 基于属性的访问控制(ABAC)授予完成作业的最低权限。 首选基于的角色分配来限制管理开销。 请在所需的最低 范围内授予权限,例如订阅、资源组或单个资源。 避免权限范围过宽,以防止意外的特权升级。 仅为每个用户的角色分配必要的权限。

  3. 管理资源配置。 使用 基础结构作为代码(IaC),以确保资源配置一致且可重现。 然后使用 Azure Policy 强制实施组织标准并评估合规性。 然后使用 Azure Policy 强制实施特定 Azure 服务的安全配置。 有关可用安全功能和最佳安全配置的指导,请参阅 安全基线。 作为附加功能,请在 Defender for Cloud 中使用安全策略,以符合常见的安全标准。

  4. 管理身份验证。 确保用户通过多重身份验证(MFA)采用强身份验证,并使用 Microsoft Entra 多重身份验证(MFA)。 始终要求 条件访问 基于用户标识、设备运行状况和访问上下文强制实施身份验证。 配置自助式密码重置消除弱密码

  5. 管理安全信息。 使用 Microsoft Sentinel 进行安全信息和事件管理(SIEM)以及安全编排、自动化和响应(SOAR)。

  6. 控制工作负荷安全性。 有关工作负荷安全建议,请参阅 Well-Architected Framework 安全清单Azure 服务指南从“安全”部分开始)。

管理合规性

合规性管理可确保 Azure 运营与既定的治理策略和法规标准保持一致。 您必须通过防止潜在违规和错误配置来减少对环境的风险。 按照以下步骤操作:

  1. 了解治理策略。 治理策略定义团队必须遵循的高级约束才能保持合规。 查看组织的策略,并将每个要求映射到运营流程。 如果没有治理策略,请先记录治理策略

  2. 管理合规性。 强制实施合规性可确保环境与组织和法规标准保持一致。 有关策略建议,请参阅下表。

    建议 详情
    常规策略定义 开始 首先,Azure Policy 的常规定义包括允许的位置、不允许的资源类型和审核自定义 RBAC 角色。
    符合法规标准 使用 Azure Policy 符合法规标准的免费内置定义,例如 ISO 27001NIST SP 800-53PCI DSS欧盟 GDPR

有关详细信息,请参阅 在 Azure中强制实施合规性。

管理数据

在云作中管理数据涉及主动对访问进行分类、分段、保护访问以及防止删除。 必须在作更改期间保护敏感信息、维护合规性并确保数据可靠性。 按照以下步骤:

  1. 发现和分类数据。 根据敏感度和重要性识别和分类数据。 此分类指导为每种数据类型制定专门的控制措施。 使用 Microsoft Purview 进行数据治理。 有关详细信息,请参阅与 Microsoft Purview 数据映射连接的数据源

  2. 控制数据驻留。选择你所在地理位置中的区域(例如美国或欧洲),以满足数据驻留要求。 验证任何异常,因为某些 Azure 服务 可能会将数据存储在所选区域之外。 定期查看 Azure 数据驻留设置和合规性要求,以保持对客户数据的完全控制。

  3. 隔离内部(“公司”)和面向 Internet 的(“Online”)工作负载。 使用管理组分隔内部和外部工作负荷。 内部工作负荷通常需要与企业网络建立连接或混合连接。 外部工作负载通常不需要企业网络连接,并且可能需要直接入站或出站 Internet 访问。 例如,请查看 Azure 登陆区域中的“Corp”(内部)和“Online”(面向 Internet)管理组。

  4. 强制实施访问控制。 实现可靠的访问控制,例如 Azure RBACAzure ABAC,以确保仅授权人员基于定义的分类访问敏感数据。

  5. 保护数据免遭删除。 使用软删除、数据版本控制、不可变性等功能(如果可用)。 实现数据库版本控制并准备回滚过程。 使用 Azure Policy,通过 DenyDenyAction 效果拒绝删除数据存储,或通过 AuditauditIfNotExists 审核任何更改。 如果使用 Bicep,请考虑使用 Bicep 部署堆栈 以防止未经授权的更改。 仅使用 资源锁 严格防止意外修改或删除关键数据。 避免使用资源锁来保护配置,因为资源锁使 IaC 部署复杂化。

  6. 管理工作负载数据。请参阅架构良好的框架关于数据分类的建议。

有关详细信息,请参阅 强制实施数据管理

管理成本

管理云运营中的成本意味着对中央和每个工作负载进行主动支出跟踪。 成本控制应提供支出的可见性,并鼓励负责任的支出。 按照以下步骤:

  1. 管理和审查成本。 使用Microsoft成本管理工具 监视云成本。 Azure 缺少一种将支出上限为特定阈值的订阅范围机制。 某些服务(如 Azure Log Analytics 工作区)具有支出上限。 成本监视策略充当管理支出的主要工具。

  2. 管理工作负载成本。向工作负载团队授予计费访问权限。 让这些小组使用 Well-Architected 框架的成本优化 清单

管理代码和运行时

管理代码和运行时是工作负荷责任。 让你的工作负荷团队使用 Well-Architected 框架的 运营卓越清单,其中概述了 12 条用于控制代码和运行时的建议。

管理云资源

管理云资源涉及管理、监督和维护所有 Azure 服务、部署和基础结构。 建立明确的部署协议和主动偏移检测策略,以在整个环境中保持一致性。 遵循以下建议:

管理门户部署

定义门户部署的协议和限制,以最大程度地减少生产问题的可能性。 请按照以下步骤操作:

  1. 定义门户部署策略。 确保基于门户的重大更改遵守已建立的变更管理流程。 在开发和测试环境中,主要使用门户部署进行快速原型制作、故障排除或轻微调整。 避免非结构化门户更改,因为这些更改会导致偏移、配置错误和合规性问题。 而是依赖于版本控制的基础结构即代码 (IaC) 模板来保持一致性。 有关详细信息,请参阅 管理代码部署

  2. 区分环境。 严格限制非生产环境的基于门户的更改。 允许在专用开发或测试环境中进行快速原型制作,并在生产环境中强制实施严格的控制。

  3. 限制门户权限。 使用基于角色的访问控制(RBAC)从门户限制部署功能。 默认情况下分配只读权限,并在必要时才升级权限。

    • 授予实时访问权限。 使用 Privileged Identity Management (PIM) 访问 Azure 和 Microsoft Entra 资源。 激活 PIM 需要多个个人或群组依次批准。 预留特权角色(“A0”超级管理员角色)专用于紧急方案。

    • 基于操作模型的结构 RBAC。设计专为运营团队定制的 RBAC 策略,包括支持级别、安全操作、平台、网络和工作负载。

    • 审核所有活动。 监视和记录您系统中的所有动作。 使用 Azure Policy 审核(AuditauditIfNotExists)更改。 此外,在 Azure Monitor 中配置 警报,以在有人删除 Azure 资源时通知利益干系人。 如果使用 Bicep,请考虑使用 Bicep 部署堆栈 以防止未经授权的更改。

  4. 使用版本控制的模板。 如果采用 IaC 部署,请将门户的使用限制在紧急情景。 门户更改会导致配置与 IaC 模板不一致。 立即在版本控制的 IaC 模板(如 BicepTerraformARM 模板)中复制所有基于门户的更改。 定期导出 Azure 资源配置并将其存储为 IaC,以维护符合已批准的可跟踪配置的生产环境。 请参阅有关指导,了解如何将 Azure 配置导出为 BicepTerraformARM 模板。 如果使用 ARM 模板,请考虑 模板规格

    工具 用例
    肱二头肌 可管理、可读的特定于 Azure 的 IaC
    Terraform 多云解决方案,更广泛的社区支持
    ARM 模板 全面掌控,精通 JSON

管理代码部署

采用最佳做法来自动控制对代码和基础结构的更改。 按照以下步骤。

  1. 标准化工具。 使用一致的工具集来最大程度地减少上下文切换。 选择开发人员工具(VS Code、Visual Studio)、代码存储库(GitHub、Azure DevOps)、CI/CD 管道(GitHub ActionsAzure Pipelines)和 IaC 解决方案(BicepTerraformARM 模板)。

  2. 使用版本控制。 维护代码的单个事实来源。 使用版本控制来减少配置偏移并简化回滚过程。

  3. 使用部署管道。CI/CD 管道 自动执行生成过程、运行测试和扫描代码,以查找每个拉取请求的质量和安全问题。 使用 GitHub ActionsAzure Pipelines 生成和部署应用程序代码和 IaC 文件。 强制实施预提交挂钩和自动扫描,以提前捕获未经授权的或高风险更改。

  4. 测试部署。在 CI/CD 管道中暂存审批,以逐步验证部署。 遵循以下顺序:开发、生成验证、集成测试、性能测试、用户验收测试(UAT)、暂存、Canary 发布、预生产,最后是生产。

  5. 使用基础结构即代码(IaC)。 使用 IaC 确保一致性并通过版本控制来管理部署。 从基于 Azure 门户的概念证明迁移到生产环境的 IaC。 使用 BicepTerraformARM 模板来定义资源。 对于 Bicep,请使用模块,并考虑部署堆栈。 对于 ARM 模板,考虑使用 模板规格 进行版本化部署。

  6. 应用代码存储库最佳做法。 遵循这些标准可减少错误、简化代码评审并避免集成问题。 对于高优先级生产环境:

    要求 描述
    禁用直接推送 阻止直接提交到主分支
    需要拉取请求 需要所有更改通过拉取请求
    需要代码评审 确保每个拉取请求都由作者以外的人审阅
    强制实施代码覆盖率阈值 确保所有拉取请求中,代码的最低百分比均能通过自动化测试
    使用验证管道 配置分支保护规则以运行拉取请求的验证管道
  7. 需要工作负荷团队载入检查。 验证新的代码库和团队是否符合业务目标、标准和最佳做法。 使用清单确认代码存储库结构、命名标准、编码标准和 CI/CD 管道配置。

管理配置偏移

通过识别和更正预期配置与实时环境之间的差异来管理配置偏移。 遵循以下最佳做法:

  1. 防止和检测更改。 使用 更改分析 来检测配置更改并解释其根本原因。 使用 Azure Policy,通过效果如 DenyDenyActionAuditauditIfNotExists来拒绝和审核更改。 如果使用 Bicep,请考虑使用 Bicep 部署堆栈 以防止未经授权的更改。

  2. 检测 IaC 配置偏移。当有人更新 IaC 文件(有意、无意)或在 Azure 门户中进行更改时,会发生 Drift。 定期将实时环境与所需的配置进行比较,以检测偏移:

    • 存储所需配置和上次已知良好配置。 在版本控制的存储库中保存所需的配置文件。 此文件显示原始的、预期的配置。 将最后一个已知良好的配置作为可靠的回退引用和偏移检测基线进行维护。

    • 在部署之前检测配置偏移。使用 Terraform 计划Bicep what-ifARM 模板 what-if 在部署之前预览潜在更改。 彻底调查差异,以确保建议的更改与所需状态保持一致。

    • 检测部署后的偏移。 定期通过定期偏移检查将实时环境与所需配置进行比较。 将这些检查集成到 CI/CD 管道中,或手动执行这些检查以保持一致性。

    • 回滚到最后一个已知良好的配置。开发使用 CI/CD 管道中的自动化过程的明确回滚策略。 利用上次已知良好的配置快速还原不需要的更改,并最大程度地减少停机时间。

    • 最小化门户驱动的更改。 将非 IaC 更改降到仅限于紧急情况。 强制实施严格的访问控制,例如 Privileged Identity Management。 如果需要手动调整来保持所需配置的准确性,请及时更新 IaC 文件。

管理操作系统

使用虚拟机时,还需要管理操作系统。 按照以下步骤操作:

  1. 自动执行虚拟机维护。 Azure 中,使用 自动化工具 创建和管理 Azure 虚拟机。 使用 Azure 机器配置为 Azure 和混合中运行的计算机审核或配置操作系统设置作为代码。

  2. 更新操作系统。你需要管理来宾更新和主机维护,以确保操作系统是最新的,从而保障安全目的。

  3. 监视客户端内部操作。 使用 Azure 更改跟踪和清单服务 以增强客户端内部操作的审核与管理。 它监视更改,并为 Azure、本地和其他云环境中的服务器提供详细的清单日志。

Azure 管理工具

类别 工具 描述
管理更改 更改分析 检测配置更改并解释其根本原因
管理更改 Azure Policy 强制、审核或阻止对云资源的修改
管理更改 Bicep 部署堆栈 防止未经授权的更改。
管理安全性 Azure 安全基线 提供有关可用安全功能和最佳安全配置的指南
管理安全性 架构良好的框架的安全支柱 工作负荷设计安全指南
管理安全性 Azure 服务指南从“安全”部分开始) Azure 服务的安全配置建议
管理安全性 Microsoft Entra ID 提供统一标识管理
管理安全性 云防御者 将资源配置与安全标准保持一致
管理安全性 Microsoft Sentinel 提供安全信息和事件管理 (SIEM) 以及安全业务流程、自动化和响应 (SOAR)
管理安全性 Azure RBAC 通过基于角色的分配提供安全访问
管理安全性 Azure ABAC 根据属性条件授予安全访问权限
管理安全性 Microsoft Entra ID 治理 管理访问工作流和标识生命周期
管理安全性 Privileged Identity Management 提供即时特权访问
管理安全性 Microsoft Entra 多重身份验证(MFA) 强制实施强多重身份验证
管理安全性 条件访问 强制实施基于上下文的身份验证
管理安全性 自助式密码重置 允许安全用户密码重置
管理合规性 Azure Policy 强制实施标准和保护资源配置
管理数据 Microsoft Purview 治理和分类敏感数据
管理数据 Azure Policy 防止或审核资源的意外修改或删除
管理数据 资源锁 防止意外修改或删除
管理成本 监视成本 监视对于管理云成本至关重要
管理云资源 Azure Policy 强制、审核或阻止对云资源的修改
管理云资源(门户部署) ARM 模板导出 将资源配置导出为 IaC 模板
管理云资源(门户部署) Azure Monitor 警报 通知利益干系人资源变更
管理云资源(代码部署) Bicep 管理 Azure 资源的基础结构即代码
管理云资源(代码部署) Bicep 部署堆栈 支持版本控制的部署并防止未经授权的更改
管理云资源(代码部署) Terraform 以代码的形式管理多云基础结构
管理云资源(代码部署) ARM 模板 使用模板定义和部署 Azure 资源
管理云资源(代码部署) ARM 模板规格 版本和管理 ARM 模板以保持一致性
管理云资源(代码部署) GitHub Actions 自动化构建、测试和部署管道
管理云资源(代码部署) Azure Pipelines 自动执行生成和部署过程
管理偏移 Azure Policy 强制、审核或阻止对云资源的修改
管理偏移 更改分析 检测并解释配置更改
管理偏移 Bicep What-if 预览潜在的配置更改
管理偏移 Terraform 计划 预览 Terraform 部署之前的可能更改
管理偏移 ARM 模板 what-if 预览潜在的配置更改
管理操作系统 Azure 计算机配置 审核操作系统设置并将其配置为代码
管理操作系统 Azure 更改跟踪和清单服务 监视和记录操作系统的更改
管理操作系统 自动化工具 自动执行虚拟机维护