Topic 5 of 5
Without an active billing account, a project can't use Google Cloud services, not even the free ones. Section 1.2 of the exam guide asks you to create billing accounts, link projects, set up budgets and alerts, and export billing data.
Contents
It defines who pays for a set of resources. It accrues the costs (charges and savings) of every linked project and routes them to a Google payments account.
Self-serve (online)
Invoiced (offline)
When you create the account, you connect it to a Google payments profile (the responsible legal entity: country, currency, name, address, and payment methods). Its type can't be changed later:
| Profile | Characteristics |
|---|---|
| Individual | Personal payments. Only the owner manages it, with no added users. One per user account. |
| Organization (Business) | Payments on behalf of a business or institution. You can add users, who see the payment information. You can have several. |
Subaccounts are for resellers: they group a customer's project charges in a section of the invoice. They are paid by the reseller's parent account, which must be on invoiced billing.
Ownership
IAM permission inheritance. A billing account belongs to a single organization. Anyone with billing roles on the organization has them on its accounts.
Payment linkage
Which account pays for each project. It isn't limited by the organization: an account can pay for projects in another organization.
Important
The billing account isn't the project's parent in the IAM sense: projects don't inherit permissions from the account they are linked to.
| Role | What it allows | Where it is granted |
|---|---|---|
Billing Account Creatorroles/billing.creator | Create self-serve accounts. Google advises granting it to few people to prevent untracked spend | Organization |
Billing Account Administratorroles/billing.admin | The account owner role (can't create accounts): payments, exports, costs, linking and unlinking, managing roles. The account creator gets it | Organization or account |
Billing Account Costs Managerroles/billing.costsManager | Budgets, viewing costs, and managing the BigQuery export. Doesn't link projects or see pricing | Organization or account |
Billing Account Viewerroles/billing.viewer | View costs and transactions. Common for finance teams | Organization or account |
Billing Account Userroles/billing.user | Link projects to the account. Very restricted permissions, so it can be granted broadly | Organization or account |
Project Billing Managerroles/billing.projectManager | Link and unlink the project, with no access to its resources | Organization, folder, or project |
To link a project you need resourcemanager.projects.createBillingAssignment on the project (Project Billing Manager or Owner) and billing.resourceAssociations.create on the target account (Billing Account User or Administrator). It is a sensitive action that may ask you to reauthenticate.
gcloud billing projects link PROJECT_ID --billing-account=ACCOUNT_ID
A budget compares actual spend with planned spend and emails you when thresholds are crossed. You set it up in Billing → Budgets & alerts.
Period
Monthly, quarterly, yearly, or custom.
Scope
The whole account; one or more organizations, folders, or projects; specific services; or resources with a label.
Amount
Specified amount (fixed) or Last period's spend (the previous period's spend, recurring periods only).
A budget isn't a cap
An alerts-only budget doesn't stop usage or spending when the amount is reached. Google recommends setting it below your available funds because of usage reporting delays.
Threshold rules
Notifications
If you only want programmatic notifications, remove all threshold rules: that turns off the emails.
For eligible services, Cloud Billing offers a second kind of budget: when the gross estimated cost exceeds 100% of the amount, usage of the service is paused automatically in that project for the rest of the period, unless you lift the cap manually.
| Eligible services | Gemini API, Gemini Enterprise Agent Platform (formerly Vertex AI), Cloud Run, and Cloud Run functions |
| Scope | A single project and a single service. No folders, organizations, labels, or multiple projects |
| Period | Monthly only, from the 1st |
| Cost | Gross estimate at list price, without savings or credits |
| Alerts | At 50%, 80%, and 100%. When enforced, email to billing admins and project owners |
| What it doesn't pause | In-flight requests, which complete and are charged, and fixed usage of persistent resources such as compute or storage |
| Lifting it | Automatically at the start of next month, or manually by editing the budget (services take up to an hour to return) |
It automatically exports detailed usage, cost, and pricing data to a BigQuery dataset throughout the day. Google recommends turning it on when you create the billing account so you have data from the start.
| Export type | Contents |
|---|---|
| Standard usage cost | Account, invoice date, services, SKUs, projects, labels, location, cost, credits. For broad trends |
| Detailed usage cost | Everything above plus resource-level cost (a VM, an SSD). For GKE you must also enable cost allocation |
| Pricing data | The account's service and SKU prices |
| FOCUS usage cost (preview) | Costs normalized with the FinOps FOCUS open specification |
| Committed Use Discounts (preview) | Daily CUD metadata |
Billing reports
Answer questions such as which service costs the most.
Anomalies
Cost spikes compared with history, in a dashboard per account.
FinOps hub
Current savings, recommendations, and wasted usage.
Committed use discounts (CUDs)
A discount in exchange for committing to a minimum level of usage for a term.
| Situation | Answer | Why |
|---|---|---|
| Developers must create projects billed to the company account | Billing Account User + Project Creator | Together they create projects linked to that account. |
| Finance must see costs and invoices without linking projects | Billing Account Viewer | Read-only access to costs and payments. |
| Someone must manage budgets and the export, but not payment methods | Billing Account Costs Manager | Budgets and export, no account properties. |
| Notify the project manager, who isn't a billing admin | Cloud Monitoring email channel on the budget | Custom recipients. |
| Disable billing automatically when the budget is exceeded | Pub/Sub programmatic notification + function | Alerts-only budgets don't stop spending. |
| Stop a project's Gemini API calls at $500 a month | Spend cap budget | Pauses the eligible service until next month. |
| Analyze cost per individual VM | Detailed usage cost export | Includes resource-level data. |
❓ Does a budget stop spending at 100%?
An alerts-only budget doesn't. Only spend cap budgets pause services, and only eligible ones in a single project.
❓ Do projects inherit permissions from their billing account?
No. The billing account isn't the project's IAM parent.
❓ Can a billing account pay for projects in another organization?
Yes. Ownership is limited to one organization; payment linkage isn't.
❓ Can Billing Account Viewer link projects?
No. Linking needs Billing Account User (or Administrator) on the account and Project Billing Manager (or Owner) on the project.
❓ Can you change a payments profile from Individual to Organization?
No. The profile type can't be changed after it is created.
❓ What are a budget's default thresholds?
50%, 90%, and 100% of actual spend.
❓ Does turning on the export today bring old data?
With a multi-region dataset, from the start of the previous month. Nothing older, which is why you should turn it on when you create the account.
Did you get this topic?
Test what you just learned
A finance team must create budgets for the billing account and set up the cost export to BigQuery, but it must not be able to change payment methods or link projects. Which role do you grant on the billing account?
Original questions, each with a full explanation.
Start a mock exam