Free — no signup required

Tagging Policies: Showback vs. Chargeback

3 min read

You Cannot Manage What You Cannot Measure

Tags are key-value metadata labels you attach to AWS resources. A tag looks like Environment: Production or Team: Platform-Engineering. By themselves, tags do nothing. But when activated for cost allocation, they become the backbone of financial accountability.

Without tags, your bill says "EC2: $120,000/month." With tags, it says "EC2 — Team: Backend: $45,000 | Team: Data: $38,000 | Team: Frontend: $22,000 | Untagged: $15,000." That untagged $15,000 is now a problem someone owns.

Cost Allocation Tags

AWS supports two categories of cost allocation tags:

  • User-Defined Tags: Tags you create and apply to resources. Common conventions:
    • Environmentprod, staging, dev
    • Team or Ownerplatform-eng, data-science
    • Project or Applicationcheckout-service, ml-pipeline
    • CostCenter → maps to your finance department's budget codes
  • AWS-Generated Tags: Automatically created by AWS for certain resources. The most useful is aws:createdBy, which records the IAM identity that created the resource.

Critical activation step: Tags do not appear in Cost Explorer or CUR automatically. You must navigate to Billing Console → Cost Allocation Tags and explicitly activate each tag key. Activation takes up to 24 hours to take effect, and historical data before activation is not retroactively tagged.

Enforcing Tagging with AWS Organizations

Voluntary tagging fails at scale. Engineers forget, or skip it under deadline pressure. The enforcement mechanisms are:

  • AWS Config Rules: A managed rule (required-tags) flags any resource that is missing mandatory tags. You can set it to auto-remediate by stopping or terminating untagged resources after a grace period.
  • Service Control Policies (SCPs): An SCP can deny the creation of EC2 instances, RDS databases, or S3 buckets unless specific tags are present in the API call. This is the strongest enforcement — the resource simply cannot be created without the required tags.
  • Tag Policies (AWS Organizations): Define the allowed values for each tag key (e.g., Environment must be one of prod, staging, dev — not production, PROD, or Production). This prevents tag fragmentation that breaks cost grouping.

The Accounting Models

Once you have reliable tag data, you can implement one of two financial models:

  1. Showback: You report to each team what they spent. "Marketing team, you consumed $8,200 in AWS resources last month." There is no actual money transfer — it is psychological accountability. This is the starting point for most organizations.

  2. Chargeback: You actually deduct the cloud spend from each team's or business unit's budget. "Marketing, $8,200 has been charged to cost center 204." This requires finance system integration and strong executive buy-in, but it creates the strongest incentive for teams to optimize their own usage.

Senior insight: The transition from showback to chargeback is as much a political challenge as a technical one. Teams resist chargeback because it makes their budget unpredictable. The solution is to pair chargeback with budget alerts (AWS Budgets) so teams get warnings before they overspend, not surprises at month-end.

This is one of 18 chapters

Get every chapter — Kubernetes, Terraform, SRE, distributed systems, and more — with fast daily review built in.

See pricing