2.

Google Cloud で API を有効化する手順(Console / gcloud / 認証情報・課金・クォータ)

編集
この記事の要点
  • Google Cloud Platform で API を使う前に 「API ライブラリで該当 API を有効化」 + 「課金有効化」 + 「認証情報の作成」 の 3 ステップが必要
  • 手順: Google Cloud Console → APIs & Services → Library → API 検索 → ENABLE
  • CLI なら gcloud services enable maps-backend.googleapis.com。一覧は gcloud services list --available
  • 認証情報は用途で使い分け: API キー(クライアント側、ドメイン制限必須) / OAuth クライアント ID(ユーザ認可) / サービスアカウント(サーバ間)
  • クォータと課金: 無料枠を超えると課金。Cloud Console > APIs & Services > Quotas で上限確認・予算アラート設定で事故防止

GCP で API を有効化する基本フロー

Google Cloud の API(Maps / Cloud Vision / Cloud Storage / BigQuery / Drive 等)は、プロジェクトごとに明示的に有効化しないと呼び出せません。403 Forbidden や SERVICE_DISABLED エラーが出る原因の多くがこれです。

  1. Google Cloud プロジェクトを作成 / 選択
  2. 課金アカウントをプロジェクトにリンク
  3. API ライブラリから対象 API を有効化
  4. 認証情報(API キー / OAuth / サービスアカウント)を作成
  5. クォータ / 予算アラートを設定

手順1: Cloud Console から API を有効化

  1. Google Cloud Console にログイン
  2. 画面左上のプロジェクトセレクタで対象プロジェクトを選択
  3. 左ナビ → APIs & Services → ライブラリ (Library)
  4. 使いたい API を検索(例: Maps JavaScript API, Cloud Vision API
  5. 有効にする (ENABLE) をクリック
  6. 有効化完了。同じ画面から「認証情報を作成」へ進める

手順2: gcloud CLI で有効化(推奨・自動化向き)

# gcloud SDK 初期化
gcloud auth login
gcloud config set project YOUR_PROJECT_ID

# 利用可能な API の一覧(フィルタ付き)
gcloud services list --available --filter="name:maps"

# 有効化
gcloud services enable maps-backend.googleapis.com
gcloud services enable storage.googleapis.com
gcloud services enable vision.googleapis.com

# 複数まとめて
gcloud services enable \
  bigquery.googleapis.com \
  pubsub.googleapis.com \
  cloudfunctions.googleapis.com

# 有効化済みの確認
gcloud services list --enabled

# 無効化
gcloud services disable maps-backend.googleapis.com --force

手順3: 課金アカウントを有効化

多くの API は無料枠の中でも課金アカウントの紐付けが必須です(無料枠を超えた場合の支払い先として):

  1. Cloud Console → お支払い (Billing)
  2. 請求先アカウントの作成(クレジットカード登録)
  3. プロジェクトに請求先アカウントをリンク
  4. 請求 API を有効化(API のメタ操作のため)

手順4: 認証情報の作成

種類用途セキュリティ注意
API キーMaps JS API、YouTube Data API 等 公開可能な API必ずHTTP リファラ / IP / アプリ制限を付ける
OAuth 2.0 クライアント IDユーザー本人の Google アカウントを操作(Drive / Calendar)承認済みリダイレクト URI を限定
サービスアカウントサーバから GCP リソース操作(BigQuery / GCS / Vision)JSON キーをリポジトリに入れない
Workload IdentityGKE / GitHub Actions から鍵なしで認証推奨ベストプラクティス

API キー作成

  1. APIs & Services → 認証情報 → 認証情報を作成 → API キー
  2. 生成後すぐ 制限を設定:
    • アプリケーション制限: HTTP リファラ / IP アドレス / Android アプリ / iOS アプリ
    • API 制限: このキーで呼べる API を限定

サービスアカウント作成

# サービスアカウント作成
gcloud iam service-accounts create my-service \
  --display-name="My Service Account"

# ロール付与
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
  --member="serviceAccount:my-service@YOUR_PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/storage.objectViewer"

# JSON キー発行
gcloud iam service-accounts keys create ./key.json \
  --iam-account=my-service@YOUR_PROJECT_ID.iam.gserviceaccount.com

# 環境変数で利用
export GOOGLE_APPLICATION_CREDENTIALS=./key.json

API の呼び出し例(Python / Node.js)

# pip install google-cloud-storage
from google.cloud import storage

# GOOGLE_APPLICATION_CREDENTIALS が設定されていれば自動認証
client = storage.Client()

# バケット一覧
for bucket in client.list_buckets():
    print(bucket.name)
// npm install @google-cloud/storage
const { Storage } = require('@google-cloud/storage');
const storage = new Storage({
  keyFilename: './key.json',  // または環境変数で
  projectId: 'YOUR_PROJECT_ID',
});

const [buckets] = await storage.getBuckets();
console.log(buckets.map(b => b.name));

主要 API 一覧と API 名

カテゴリサービスAPI 名(gcloud)
MapsMaps JavaScript APImaps-backend.googleapis.com
MapsGeocoding APIgeocoding-backend.googleapis.com
StorageCloud Storagestorage.googleapis.com
StorageBigQuerybigquery.googleapis.com
AICloud Visionvision.googleapis.com
AICloud Translationtranslate.googleapis.com
AIVertex AIaiplatform.googleapis.com
WorkspaceGoogle Drive APIdrive.googleapis.com
WorkspaceGmail APIgmail.googleapis.com
ComputeCloud Functionscloudfunctions.googleapis.com
ComputeCloud Runrun.googleapis.com

クォータと予算アラート

API ごとに「1 分あたりリクエスト数」「1 日あたり数」などの上限(クォータ)があります。突発的なバースト時に超過すると 429 Too Many Requests が返ります:

# クォータの確認
# Console: APIs & Services > Quotas で各 API のリミット表示

# 予算アラート(必須!)
# Console: お支払い > 予算とアラート > 予算を作成
# - 月額の閾値(例: $50)
# - 50%/90%/100% で通知メール
# これがないと、漏洩した API キーで青天井に課金される事故が起きる

よくあるエラー

エラー原因対処
API_NOT_ENABLED / 403 SERVICE_DISABLEDAPI 未有効化Console / gcloud で有効化
BILLING_DISABLED課金未連携請求先アカウントをリンク
API key not validAPI キー無効 / 制限違反キー再生成、リファラ制限確認
RESOURCE_EXHAUSTED / 429クォータ超過Quotas で増加リクエスト
PERMISSION_DENIEDIAM ロール不足該当ロールを付与
UNAUTHENTICATED認証情報未設定GOOGLE_APPLICATION_CREDENTIALS 確認

FAQ

Q: 無料枠だけで使えるか
A: 多くの API は無料枠あり(例: Cloud Vision は月 1000 ユニット無料)。ただし課金アカウント連携は必須。無料枠超過で意図せぬ課金を避けるため、予算アラート設定を強く推奨。

Q: 複数プロジェクトで同じ API を使う
A: プロジェクトごとに有効化が必要。Terraform で IaC 化すると差分管理が楽です。

Q: API キーを GitHub に公開してしまった
A: 即座にキーを無効化+再発行。GitHub Secret Scanning が自動検知して通知することもありますが、漏洩から課金まで数時間です。請求アラートを必ず設定し、被害が出ていれば Google に減免相談。

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. APIキー取得方法
  2. APIの有効化
  3. チャンネル情報の取得
  4. 動画やチャンネルの検索
  5. エラー一覧