$ aws resourcegroupstaggingapi resources --tag-filters Key=Environment,Values=Production
想象一下,你的公司有 10 个团队、100 个项目、1000 个云资源。月底结算时,CTO 问:"A 项目这个月花了多少钱?"如果没有标签(Tagging),你可能要花几天时间人工统计。有了标签,3 秒钟搞定。
什么是成本分配标签?
成本分配标签(Cost Allocation Tag)是一种附加到云资源的 key-value 元数据。它让你能够:
- 按业务维度(项目、部门、环境)分析成本
- 将费用归因到具体的成本中心
- 跨账户、跨服务进行成本聚合
- 识别没有负责人的"孤儿资源"
三大云厂商标签支持对比
| 特性 | AWS | Azure | GCP |
|---|---|---|---|
| 标签数量限制 | 50个/资源 | 无限制 | 64个/资源 |
| 账单集成 | 需要激活 | 自动支持 | 需要启用 |
| 支持自动传播 | Resource Groups | Resource Group | Organization |
| 强制标签 | SCP Policy | Policy | Organization Policy |
推荐的核心标签(Minimum Viable Tags)
必须标签(Required)
Environment—— production / staging / developmentProject—— 项目名称或 IDOwner—— 负责人或团队 emailCostCenter—— 成本中心代码
推荐标签(Recommended)
Application—— 应用名称ManagedBy—— manual / terraform / kubernetesDataClassification—— public / confidential / restricted
AWS 标签策略配置
激活成本分配标签
aws ce get-tags \ --time-period Start=2025-01-01,End=2025-05-01 \ --tag-key Environment
使用 AWS Tag Editor 批量打标
AWS Resource Groups Tagging API 可以:
- 搜索所有资源
- 批量添加/更新标签
- 导出标签报告
Service Control Policy(SCP)强制标签
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "RequireTags",
"Effect": "Deny",
"Action": ["ec2:RunInstances"],
"Resource": "*",
"Condition": {
"Null": {
"aws:RequestTag/Environment": "true"
}
}
}
]
}
自动化标签策略
CI/CD 流水线自动打标
在 Terraform 或 Pulumi 中定义默认标签:
locals {
default_tags = {
Environment = var.environment
Project = var.project
Owner = var.owner
ManagedBy = "terraform"
CreatedAt = timestamp()
}
}
resource "aws_ec2_tag" "automatic" {
for_each = toset(["arn:aws:ec2:us-east-1:123456789012:instance/i-xxxxx"])
resource_id = each.value
key = "Project"
value = var.project
}
Lambda 自动清理孤儿资源
配合 CloudTrail 事件,自动为新资源添加标签,或标记超过 30 天没有 Owner 的资源为"孤儿"。
标签治理最佳实践
- 建立标签规范文档 - 定义标准名称和值
- 使用 Terraform/Pulumi - 代码即基础设施,标签随代码走
- 强制标签策略 - SCP/Policy 防止无标签资源
- 定期审计 - 检查覆盖率,识别未打标资源
- 自动化报告 - 用标签生成成本分配报告
- 避免过度标签化 - 4-8 个核心标签足够
常见问题
Q: 标签生效需要多久?
A: AWS 大约 24 小时,Azure 接近实时,GCP 约 1-2 天。
Q: 已有资源可以打标吗?
A: 可以,通过控制台、CLI 或 API 批量添加。
Q: 标签费用贵吗?
A: 标签本身免费,但大量标签(如 50+)会增加 API 调用成本。
没有标签的成本分析等于黑暗中投篮。好的标签策略是云成本优化的地基!