A label is a key and value pair that you attach to a Google Cloud resource, such as environment and production, or team and analytics. Labels are descriptive metadata. They let you filter and group resources, but they cannot be used to set conditions on access policies.
Most teams add labels for cost reasons. Information about labels is passed to the billing system, so the built in billing reports can filter and group your charges by label, and you can export billing data to BigQuery with the labels included and query it. Without labels, spending is grouped by service. With labels, you can see which team, application, or environment is behind a number.
This walks through adding a label to a project from the console, then updating and removing labels, followed by the rules labels have to follow, how labels differ from tags, and how to use them for cost reporting.
Open the console, then the menu, then IAM and Admin, then Labels. Click Add Label.
Open Cloud Console
Open Menu > IAM & Admin > Labels
Click on Add Label

Type a key and a value, then click Save. Keep the key short and consistent, since the same key will need to be used on every project you want to compare later.

The label is saved and appears in the list for the project.

To update a label, return to the same Labels page for the project, change the value you want to update, and click Save. If you need a different key rather than a different value, the cleanest way is to remove the old label and add a new one.
To remove a label, use the remove option next to it on that page, then save. Google’s documentation notes that a label can be removed from a resource at any time, which is not true of a tag, covered below. Because labels are descriptive, removing or changing one does not change who can access the project, but any billing report that groups by that label will change with it.
These are the general requirements. A specific service can add its own, so if a label is rejected, check that service’s documentation.
Google Cloud uses the word tags for more than one thing, which is why this causes so much confusion.
A common pattern is to use labels for things like cost center and application name, and tags for something like environment where a policy needs to depend on it.
In the Cloud Billing reports, you can filter or group costs by label. For deeper analysis, turn on billing export to BigQuery. Labels are exported alongside each resource and its usage, so you can query for something like the cost of all test resources compared with production, or how much one particular service costs. The BigQuery guides in this series cover running queries like these.
That covers adding, updating, and removing labels on a project, and using them to make billing readable. To go further, explore Prwatech’s Google Cloud training program, which includes placement assistance.