AWS cost allocation tags
AWS provides two types of cost allocation tags: AWS-generated tags and user-defined tags. Cost allocation tags can be used to organize resource costs on cost allocation reports.
Supported AWS cost allocation tags
The lists below use the tag key from AWS. See Tag keys in Cloud Analytics for how to find them in the DoiT platform.
Consolidated billing account
If you're on a DoiT consolidated billing account (payer account IDs 561602220360, 017920819041, and 279843869311), note that DoiT has activated the following tags in the platform.
If you need a cost allocation tag that is not on the lists below, open an expert inquiry.
- User-defined tags
- AWS-generated tags
The tags below have been activated as cost allocation tags. If you create these tags in your environment, you can use them as filters in the Cloud Analytics reports.
Alias
alias
app.kubernetes.io/instance
app.kubernetes.io/managed-by
app.kubernetes.io/name
Billing
billing
Env
env
Environment
environment
eks:eks-cluster-name
eks:kubernetes-node-class-name
eks:kubernetes-node-pool-name
glue_job
karpenter.sh/nodeclaim
karpenter.sh/nodepool
karpenter.k8s.aws/ec2nodeclass
kubernetes.io/cluster-name
kubernetes.io/cluster/
kubernetes.io/created-for/pv/name
kubernetes.io/created-for/pvc/name
kubernetes.io/created-for/pvc/namespace
kubernetes.io/service-name
map-migrated
Name
Owner
owner
Product
product
Project
project
service-name
Team
team
Unit
unit
aws:autoscaling:groupName
aws:backup:source-resource
aws:cloud9:environment
aws:cloud9:owner
aws:cloudformation:logical-id
aws:cloudformation:stack-id
aws:cloudformation:stack-name
aws:createdBy
aws:dlm:expirationTime
aws:dlm:lifecycle-policy-id
aws:dlm:lifecycle-schedule-name
aws:ec2:fleet-id
aws:ec2:managed-launch
aws:ec2launchtemplate:id
aws:ec2launchtemplate:version
aws:ec2spot:fleet-request-id
aws:ecs:clusterName
aws:ecs:serviceName
aws:eks:cluster-name
aws:elasticfilesystem:default-backup
aws:elasticmapreduce:editor-id
aws:elasticmapreduce:instance-group-role
aws:elasticmapreduce:job-flow-id
aws:lambda:capacity-provider
aws:servicecatalog:portfolioArn
aws:servicecatalog:productArn
aws:servicecatalog:provisioningPrincipalArn
aws:servicecatalog:source
aws:ssmmessages:session-id
aws:ssmmessages:target-id
aws:transfer:customHostname
aws:transfer:route53HostedZoneId
aws:zocalo:alias
Dedicated payer account
If your account is on a DoiT reseller payer account other than the three consolidated accounts, open an expert inquiry to get help with cost allocation tags.
Tag keys in Cloud Analytics
The key you see in the console depends on the format of the billing data. Each key matches only the rows ingested from that format.
AWS-generated tags
AWS-generated tags appear as system labels. The key is converted as follows:
-
CUR 2.0:
- Replace the first colon (
:) with a slash (/). - Replace every later colon with an underscore (
_). - Replace every hyphen (
-) with an underscore. - Exception: tags that start with
aws:eks:oraws:ecs:skip the rules above and only drop theaws:prefix.
- Replace the first colon (
-
Legacy CUR (CSV):
- Drop the
aws:prefix. The rest of the key stays the same.
- Drop the
-
Legacy CUR (Parquet):
- AWS lowercases the key and replaces colons, hyphens, and uppercase-letter boundaries with underscores.
- The DoiT platform drops the
aws:prefix and replaces every underscore with a slash (aws:eks:cluster-nameis an exception and appears aseks:cluster-name).
Below are some examples:
| AWS tag key | CUR 2.0 | Legacy CUR (CSV) | Legacy CUR (Parquet) |
|---|---|---|---|
aws:createdBy | aws/createdBy | createdBy | created/by |
aws:autoscaling:groupName | aws/autoscaling_groupName | autoscaling:groupName | autoscaling/group/name |
aws:cloudformation:stack-name | aws/cloudformation_stack_name | cloudformation:stack-name | cloudformation/stack/name |
aws:ec2:fleet-id | aws/ec2_fleet_id | ec2:fleet-id | ec2/fleet/id |
aws:ecs:clusterName | ecs:clusterName | ecs:clusterName | ecs/cluster/name |
aws:eks:cluster-name | eks:cluster-name | eks:cluster-name | eks:cluster-name |
User-defined tags
User-defined tags appear under Labels & Tags.
-
CUR 2.0 and Legacy CUR (CSV):
- The key stays the same as in AWS, including its case.
- Tags that differ only in case appear as two labels.
-
Legacy CUR (Parquet):
- AWS lowercases the key and replaces dots, hyphens, slashes, and uppercase-letter boundaries with underscores.
- The DoiT platform replaces every underscore with a slash (
map-migratedis an exception and staysmap-migrated). - Tags that differ only in case appear as a single label.
Below are some examples:
| AWS tag key | CUR 2.0 and Legacy CUR (CSV) | Legacy CUR (Parquet) |
|---|---|---|
kubernetes.io/created-for/pv/name | kubernetes.io/created-for/pv/name | kubernetes/io/created/for/pv/name |
map-migrated | map-migrated | map-migrated |
Reactivate custom cost allocation tags
If you invite an existing AWS account into DoiT, make sure to open an expert inquiry with the list of custom tags that you want to continue using. We'll reactivate the cost allocation tags previously activated for that account.
AWS cost allocation tags are managed at the payer account level. When an account moves to another organization, both user-defined and AWS-generated cost allocation tags previously activated for that account lose their "active" status and need to be activated again.
Limitations
It's important to understand the limitations of both AWS and the platform.
AWS restrictions
-
For basic tag restrictions, see Tag Restrictions.
-
For restrictions that apply to user-defined tags, see User-Defined Tag Restrictions.
In particular, be aware that all tags can take up to 24 hours to appear in the AWS Billing and Cost Management console.
Platform restrictions
-
After you activate a cost allocation tag from the AWS organization and the tag appears in AWS billing data, it may take 6–8 hours for the platform to fully process the billing data before the tags show up in the Analytics reports.
-
It may take up to 24 hours for a new tag to become available in the Analytics filters.