资源标记和资源锁
为资源应用元数据标记,以便进行成本分配和搜索,并使用只读锁或删除资源锁防止意外删除或修改。
资源标记和资源锁 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。
什么是 Azure 资源标记
资源标记是附加到 Azure 资源、资源组和订阅上的名称-值元数据对。与文件夹结构不同,标记允许您同时从多个维度对同一资源进行分类。例如,一个 VM 可以同时具有 Environment=Production、Team=Backend、CostCentre=CC-042 和 Project=Phoenix 标记,从而可以独立地按任一维度进行筛选。
常见标记策略
组织通常会定义涵盖多个维度的标准标记分类体系。财务标记(CostCentre、BudgetOwner)用于分摊成本。运营标记(Environment、Criticality、Owner)支持筛选和警报。生命周期标记(AutoShutdown、ExpiryDate)支持自动化。安全标记(DataClassification、Compliance)支持安全工具。在部署资源前定义分类体系,可以避免形成不一致且无法查询的标记体系。
通过 CLI 和 Policy 应用标签
您可以通过 Azure 门户、CLI、ARM 模板、Bicep 和 Terraform 应用标签。az tag 命令用于管理资源上的标签,而 az group update 用于为资源组添加标签。通过将 Azure Policy 与修改或追加效果结合使用,您可以在创建资源时自动添加或要求使用标签,从而确保每个新资源都有 CostCentre 标签,而不必依赖开发人员记得手动添加。
# Apply tags to a resource
az resource tag \
--resource-group myRG \
--name myVM \
--resource-type Microsoft.Compute/virtualMachines \
--tags Environment=Production Team=Backend CostCentre=CC-042
# Apply tags to a resource group (does NOT apply to resources inside)
az group update \
--name myRG \
--set tags.Environment=Production tags.CostCentre=CC-042标签继承的限制
一个常见误解是,资源组上的标签会自动传播到其中的资源。事实并非如此——Azure 资源标签不会从父级范围继承。如果您为资源组添加 Environment=Production 标签,该组中的 VM 和数据库不会自动获得此标签。若要强制实施一致的标签策略,请使用 Azure Policy 中内置的从资源组继承标签定义,该定义会自动将资源组标签复制到其中的所有资源。
# Assign the 'Inherit a tag from the resource group' policy
az policy assignment create \
--name 'inherit-environment-tag' \
--policy 'cd3aa116-8754-49c9-a813-ad46512ece54' \
--params '{"tagName": {"value": "Environment"}}' \
--scope /subscriptions/<sub-id>在 Cost 管理中使用标签
标签与 Azure Cost 管理结合使用时最为强大。在成本分析视图中,您可以按任意标签键对支出进行分组,例如按 CostCentre 查看每月总支出,从而了解哪个部门是云资源消耗最多的部门。您还可以按 Environment=Production 进行筛选,将开发支出排除在生产预算之外。Azure Cost 管理要求标签在计费周期开始前就已应用,才能将其显示在成本数据中。
# Export cost data grouped by tag
# (Azure CLI cost export with tag grouping)
az consumption usage list \
--start-date 2026-06-01 \
--end-date 2026-06-30 \
--query '[].{Cost:pretaxCost, Service:instanceName, CostCentre:tags.CostCentre}' \
--output table什么是资源锁?
资源锁可以保护 Azure 资源,防止其被意外删除或修改,而不受用户所拥有的 RBAC 权限影响。即使用户拥有 Owner 或 Contributor 权限,也可能无法删除或修改已锁定的资源。锁可以应用于资源、资源组或订阅级别,并向下级联——资源组上的锁会保护其中的每个资源。
锁类型:CanNotDelete 和 ReadOnly
Azure 支持两种锁类型。CanNotDelete(删除锁)允许用户读取和修改资源,但禁止删除。这是最常见的锁,通常应用于生产数据库、存储帐户和 VNet,以防止意外拆除。ReadOnly 会阻止所有写入和删除操作,使资源表现得如同所有用户只被分配了 Reader 角色一样。ReadOnly 的限制更严格,可能会中断更新资源属性的自动化流程。
# Apply a CanNotDelete lock to a resource group
az lock create \
--name 'prevent-delete' \
--resource-group myRG \
--lock-type CanNotDelete \
--notes 'Protect production resources from accidental deletion'
# Apply a ReadOnly lock to a specific storage account
az lock create \
--name 'storage-readonly' \
--resource-group myRG \
--resource-name mystorageaccount \
--resource-type Microsoft.Storage/storageAccounts \
--lock-type ReadOnly删除资源锁
若要删除或修改已锁定的资源,用户必须先删除锁,这需要 Microsoft.Authorization/locks/delete 权限(默认情况下,Owner 和 User Access Administrator 角色拥有此权限)。您可以将删除锁、修改资源以及可选的重新应用锁操作编写为脚本,并纳入变更管理工作流,从而确保受保护的资源仍可通过具有审计记录的受控流程进行修改。
# List all locks in a resource group
az lock list \
--resource-group myRG \
--output table
# Remove a lock
az lock delete \
--name 'prevent-delete' \
--resource-group myRG锁的继承与覆盖
在父级范围(订阅或资源组)应用的锁会被所有子资源继承。您无法在较低范围覆盖锁——如果资源组具有 CanNotDelete 锁,即使其中的单个资源没有直接应用锁,也无法删除。除了父级锁之外,再在资源级别添加 CanNotDelete 锁不会改变行为;父级锁已经提供了保护。
ReadOnly 锁的副作用
ReadOnly 锁可能导致自动化流程意外失败。某些表面上属于只读的 Azure 操作,实际上需要在后台写入资源属性。例如,列出存储帐户的访问密钥会被 ReadOnly 锁阻止,因为列出密钥的操作会修改该帐户的审计记录。扩展 VM、重启 App Service 以及将磁盘附加到正在运行的 VM 也会被阻止。在将 ReadOnly 锁应用于关键资源之前,请先在非生产环境中进行测试。
同时使用标签和锁
结合使用标签和锁可以形成强大的治理模式。您可以使用 Protected=true 这样的标签标记应具有 CanNotDelete 锁的资源,然后运行 Azure Automation Runbook,查询带有此标签的资源,并在锁缺失时创建锁。这种自我修复治理模式可以确保即使管理员意外删除了锁,Runbook 也会按照计划自动重新应用锁。
快速检查
请测试您对本课 Microsoft Azure Fundamentals (AZ-900) 概念的理解。
课程回顾
本课介绍了以下内容:资源标签是名称-值元数据对,可支持在任意维度上进行成本分摊、筛选和自动化;标签不会从父资源组继承,必须通过 Azure Policy 强制实施;以及资源锁(CanNotDelete 和 ReadOnly)无论 RBAC 权限如何,都可以保护资源免受意外更改。接下来,我们将学习如何使用 Azure Blueprint 将治理 Artefact 打包在一起。
常见问题解答
「资源标记和资源锁」课时是免费的吗?
是的 — 「资源标记和资源锁」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。
「资源标记和资源锁」这节课中我会学到什么?
为资源应用元数据标记,以便进行成本分配和搜索,并使用只读锁或删除资源锁防止意外删除或修改。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cloud & IT Cert Prep 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「资源标记和资源锁」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?
能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 管理组和订阅
- Azure Policy
- 资源标记和资源锁
- Azure 蓝图和合规性