Ardrey 情報マガジン

gcp credentialsjson

📅 October 29, 2026📖 Verified Publication
```html GCP credentials.json: The Ultimate Industry Review – Security, Setup & Best Practices (2026)

GCP credentials.json: The Ultimate Industry Review – Security, Setup & Best Practices (2026)

Service account credential files are the backbone of machine-to-machine authentication in Google Cloud. Understanding how to properly configure, secure, and rotate credentials.json files is essential for every team operating workloads on GCP — from Kubernetes clusters to Cloud Run jobs.

Key Takeaways at a Glance

  • What it is: A JSON file issued by GCP containing a service account's private key, client ID, token URL, and project metadata
  • Primary use case: Programmatic authentication when workload identity (metadata server) is unavailable or when running outside GCP
  • Security risk: A leaked credentials.json grants full owner access equivalent to its service account — treat it like a password
  • Google's direction: Workload identity federation and metadata server auth are strongly preferred over JSON key storage
  • Budget reality: Every stored JSON key counts as a cost centre; unnecessary keys create both security debt and operational overhead

What Is a GCP credentials.json File?

A credentials.json file (also called a service account key file) is a machine-readable JSON document issued when you create a service account key in Google Cloud Platform. It typically contains the following fields:

Field Purpose Example Value
type Always service_account — identifies this as a service account key "service_account"
project_id The GCP project the key belongs to "my-gcp-project"
private_key_id Unique identifier for this specific key (for key rotation tracking) "a1b2c3d4..."
private_key The RSA private key — the cryptographic secret that proves identity "-----BEGIN RSA PRIVATE KEY-----\n..."
client_email The service account email used in IAM policy bindings "sa-name@my-gcp-project.iam.gserviceaccount.com"
client_id Human-readable client identifier shown in GCP Console "123456789012345678901"
auth_uri OAuth 2.0 authorization endpoint "https://accounts.google.com/o/oauth2/auth"
token_uri OAuth 2.0 token endpoint "https://oauth2.googleapis.com/token"

Where credentials.json Gets Used

  • Local development: gcloud auth activate-service-account --key-file=credentials.json for CLI authentication
  • CI/CD pipelines: GitHub Actions, GitLab CI, and Cloud Build use this file to authenticate build jobs
  • Kubernetes outside GKE: EKS, AKS, and on-prem clusters reference the key for Google API access
  • Cloud Run / Functions: Environment variable injection of GOOGLE_APPLICATION_CREDENTIALS
  • Third-party integrations: Tools like Terraform, Pulumi, and Apache Beam require the file path

How to Set Up GCP credentials.json (Step-by-Step)

Step 1: Create a Service Account

gcloud iam service-accounts create my-workload-sa \
  --display-name="My Workload Service Account" \
  --project=my-gcp-project

Step 2: Grant Minimal Required Roles

gcloud projects add-iam-policy-binding my-gcp-project \
  --member="serviceAccount:my-workload-sa@my-gcp-project.iam.gserviceaccount.com" \
  --role="roles/storage.objectViewer"

gcloud pubsub topics add-iam-policy-binding my-topic \
  --member="serviceAccount:my-workload-sa@my-gcp-project.iam.gserviceaccount.com" \
  --role="roles/pubsub.publisher"

Step 3: Generate the Key File

gcloud iam service-accounts keys create credentials.json \
  --iam-account="my-workload-sa@my-gcp-project.iam.gserviceaccount.com"

Step 4: Set the Environment Variable

export GOOGLE_APPLICATION_CREDENTIALS="$(pwd)/credentials.json"

Step 5: Verify Authentication

gcloud auth activate-service-account --key-file=credentials.json
gcloud auth list  # Should show your service account as active

Security Setup Checklist

  • ☐ Created service account with least-privilege IAM roles
  • ☐ Generated credentials.json and stored it in a secrets manager (not in code repo)
  • ☐ Set GOOGLE_APPLICATION_CREDENTIALS environment variable in your deployment
  • ☐ Enabled audit logging for service account key usage
  • ☐ Rotated keys on a regular schedule (recommended: every 90 days)
  • ☐ Revoked any unused or stale keys in IAM → Service Accounts
  • ☐ Added alerting for unauthorized key creation events

Workload Identity Federation vs credentials.json: Which Should You Choose?

Google's long-term strategy is clear: prefer workload identity federation and metadata server authentication over static JSON key files. Here's a detailed comparison:

© 2026 Ardrey 情報マガジン. All rights reserved.

Dimension Workload Identity Federation credentials.json (Service Account Key)
Auth method OIDC token exchange via metadata server JSON key file with RSA private key
Key rotation No keys to rotate — automatic Manual rotation required (every 90 days recommended)
Security risk Low — no persistent secret stored High — leaked key = permanent access until revoked
Scalability Excellent — works across clusters and regions