Google Cloud Platform & Billing Account Setup
This guide walks you through setting up your Google Cloud Platform (GCP) Billing Account, creating deployment projects, and configuring proper IAM permissions to support your Milesoft Platform applications.
1. Overview & Tenancy Model
Downstream applications running on the Milesoft Platform are architected to run within single-tenant or client-owned Google Cloud projects. This model guarantees data isolation, regulatory compliance, and direct ownership of cloud infrastructure.
Because your application leverages managed Google Cloud services (such as Secret Manager, Cloud Pub/Sub, Cloud Tasks, Cloud Run, and Vertex AI), your organization must have an active Google Cloud Billing Account linked to your deployment projects.
💡 Why do I need my own Google Cloud Billing Account? A lot of platforms try to middleman your cloud infrastructure — they'll handle the hosting for you, but wrap it in hidden fees, hefty markups, and complex tier pricing. We don't believe in that.
With Milesoft, your Google Cloud bill is exactly that: your Google Cloud bill, paid directly to Google. No markup, no hidden premiums, and absolute transparency.
⚠️ Prerequisite Alert: Google Cloud billing account setup is usually instant (within minutes) when registering with a standard credit or debit card, or when verifying a US bank account directly. However, if your account is flagged for manual identity verification/document review (typically completed in under 4 hours but can take 1–2 business days), or if you verify your bank account via trial deposits (takes 3–5 business days), there can be a delay. We strongly advise initiating this process early on Day One of onboarding to avoid deployment delays.
2. Setup Guide
2.1 Step 1: Establish your Google Cloud Billing Account
If your organization does not already have an established Google Cloud Billing relationship, you must set up a self-serve or enterprise billing profile:
- Action: Follow the official Google Cloud Guide: Create a new self-serve Cloud Billing account.
- Requirements: You will need a Google account/Google Workspace identity and an approved corporate payment method.
2.2 Step 2: Create and Link GCP Projects
For clean environment isolation, we recommend creating separate GCP Projects for your sandbox/staging environment (e.g., company-app-sand) and your production environment (e.g., company-app-prod):
- Create and Link the Projects: Follow our step-by-step guide in Section 3: Creating a New GCP Project & Linking Billing to set up and bind your projects entirely via the
gcloudCLI or the Google Cloud Console.
2.3 Step 3: Best Practice — Configure Budgets & Alerts
To prevent unexpected cloud costs during development, training, or scaling phases, we highly recommend setting up budget alerts immediately after project linkage:
- Action: Follow the official Google Cloud Guide: Create and manage budgets and alerts.
- Recommendation: Set up threshold alerts at 50%, 75%, and 90% of your expected monthly sandbox budget. For automated cost capping, you can also explore Programmatic budget notifications.
2.4 Step 4: Grant Billing Permissions to Your Admins
Ensure your operations or development lead has the appropriate IAM permission role (Billing Account User) to assign projects to the billing account:
- Role required:
roles/billing.user(assigned at the billing account level). - More details: Learn about Billing Access Control and Roles.
3. Creating a New GCP Project & Linking Billing
Creating a project and enabling billing is a hard requirement before provisioning any Milesoft infrastructure or running the CLI commands. Below is the primary CLI approach using gcloud (highly recommended), followed by a manual web portal fallback.
3.1 Naming Conventions & Environment Best Practices
To ensure clean isolation of data, configurations, and secrets, we strongly recommend establishing a multi-project isolation model:
- Sandbox / Development:
[organization]-[app-name]-sand(e.g.,acme-portal-sand) - Production:
[organization]-[app-name]-prod(e.g.,acme-portal-prod)
Project ID Rules & Constraints:
- Must be 6 to 30 characters long.
- Must start with a lowercase letter.
- Can only contain lowercase letters, digits, and hyphens (
-). - Must be globally unique across all of Google Cloud.
3.2 Recommended Path: Creating via gcloud CLI (100% Terminal-Based)
If you have already installed and authenticated your gcloud CLI (see Prerequisites), you can provision and link your project directly from your terminal.
Step 1: Create the Project
Run the project creation command, substituting your globally unique Project ID:
gcloud projects create "your-gcp-project-id" --name="My Sandbox Project"
Step 2: Retrieve your Billing Account ID
To link your billing account, you must first find your billing account's unique identifier. Run:
gcloud beta billing accounts list
Copy the ACCOUNT_ID from the output (typically a format like 01A2B3-C4D5E6-F7G8H9).
Step 3: Link Billing to your New Project
Run the following command to link the new project to your billing account:
gcloud beta billing projects link "your-gcp-project-id" --billing-account="YOUR_BILLING_ACCOUNT_ID"
Verification: To confirm the project is active and correctly linked, run:
gcloud beta billing projects list --billing-account="YOUR_BILLING_ACCOUNT_ID"
3.3 Fallback Path: Creating via the Google Cloud Console (Web Portal)
If you do not have the gcloud CLI installed or prefer a visual portal interface, you can perform these actions in your web browser.
Step 1: Create the Project in the Console
- Navigate directly to the Google Cloud Create Project Page.
- Enter a user-friendly Project Name (e.g.,
My Sandbox Project). - Click the Edit button next to Project ID to manually customize it according to our naming conventions (e.g.,
company-app-sand). Do not use the auto-generated random ID, as it breaks naming patterns! - Select your Billing Account if prompted, or choose your Organization/Location if applicable.
- Click Create.
Step 2: Link your Billing Account
If billing wasn't assigned during creation:
- Navigate to the Google Cloud Billing Projects Management Console.
- Locate your newly created project in the list of projects.
- Click the three dots menu (Actions) at the far right of the project row, and select Change Billing.
- In the dropdown, select your active Billing Account, and click Set Account.
4. How to Find Your GCP Project ID
When running Milesoft commands or configuring properties (such as milesoft init gcp --project "your-gcp-project-id"), you must provide your GCP Project ID.
4.1 Understanding Project Identifiers
- Project Name (Do Not Use): A user-friendly, customizable display name (e.g.,
"My Sandbox Project"). This is not unique and cannot be resolved by the CLI. - Project ID (Use This): A globally unique, permanent string (e.g.,
company-app-sandoracme-dev-123456). It consists of lowercase letters, digits, and dashes, and is assigned when the project is created. - Project Number (Do Not Use): An auto-generated all-digit identifier (e.g.,
45910284759).
4.2 Finding the ID via the Google Cloud Console
- Navigate and log in to the Google Cloud Console.
- In the top navigation bar, click the Project Project selector dropdown (next to the Google Cloud logo).
- In the modal dialog that appears, find your project in the list.
- Copy the exact value listed under the ID column (e.g.,
acme-sandbox-987):+-----------------------+---------------------+ | Name | ID | +-----------------------+---------------------+ | My Sandbox Project | acme-sandbox-987 | <-- Copy this ID! +-----------------------+---------------------+
4.3 Finding the ID via the gcloud CLI
If you have already installed and authenticated your gcloud CLI tool (see Prerequisites), run this command in your terminal:
gcloud projects list
The output will list all accessible projects and their unique identifiers:
PROJECT_ID NAME PROJECT_NUMBER
acme-sandbox-987 My Sandbox Project 45910284759 <-- Use the PROJECT_ID column