Claude-skill-registry bigquery-auth

GCPプロジェクト単位でBigQuery認証を設定。gcloud設定プロファイルで複数プロジェクトを安全に分離管理。「BigQueryに繋ぎたい」「{プロジェクト名}のデータを見たい」と言うだけで認証をガイド。

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/bigquery-auth" ~/.claude/skills/majiayu000-claude-skill-registry-bigquery-auth && rm -rf "$T"
manifest: skills/data/bigquery-auth/SKILL.md
source content

BigQuery Authentication (Project-based)

GCPプロジェクト単位でgcloud設定プロファイルを作成し、BigQuery認証を行うスキルです。

Workflow

  1. ユーザーが「BigQuery使いたい」「{プロジェクト}のデータを見たい」等と言う
  2. GCPプロジェクトIDを確認(必須)
  3. 既存の設定プロファイルを確認
  4. 必要に応じて新規プロファイルを作成
  5. ブラウザ認証をガイド
  6. 接続テストを実行

認証手順

Step 1: 設定プロファイル確認

gcloud config configurations list

既存プロファイルを表示し、目的のプロジェクト用があるか確認。

Step 2: プロファイル作成(新規の場合)

# プロファイル作成
gcloud config configurations create {PROFILE_NAME}

# プロジェクト設定
gcloud config set project {PROJECT_ID}

Step 3: gcloud認証

# メイン認証(ブラウザが開く)
gcloud auth login

# Python SDK用認証(ブラウザが開く)
gcloud auth application-default login --quiet

注意: 両方のコマンドでブラウザ認証が必要です。

Step 4: 認証確認

# 現在のプロファイル確認
gcloud config configurations list

# プロジェクト確認
gcloud config get-value project

# ADCトークン確認
gcloud auth application-default print-access-token

Step 5: BigQuery接続テスト

import os
# 環境変数競合を回避
if "GOOGLE_APPLICATION_CREDENTIALS" in os.environ:
    del os.environ["GOOGLE_APPLICATION_CREDENTIALS"]

from google.cloud import bigquery
client = bigquery.Client(project="{PROJECT_ID}")
datasets = list(client.list_datasets())
print(f"接続成功!{len(datasets)}個のデータセット")

プロファイル切り替え

# プロファイル一覧
gcloud config configurations list

# 切り替え
gcloud config configurations activate {PROFILE_NAME}

登録済みプロファイル

ADC認証(gcloud login)

プロファイルプロジェクトIDアカウント用途
default
tokenpocketkouhei_nakamura@tokenpocket.jpデフォルト
infobox
infobox-jp-prdkouhei.nakamura@info-box.jpInfoBox分析
imagen4
yoake-dev-analysiskohei.nakamura@yoake-entertainment.jpYOAKE分析

サービスアカウント認証(外部プロジェクト)

プロファイルプロジェクトIDキーファイル用途
dionysus
gree-dionysus-infobox
~/.gcp/gree-dionysus-infobox.json
GREE InfoBox分析

サービスアカウント認証の使い方

外部プロジェクトにサービスアカウントで接続する場合:

import os
from google.cloud import bigquery
from google.oauth2 import service_account

# サービスアカウントキーで認証
credentials = service_account.Credentials.from_service_account_file(
    os.path.expanduser("~/.gcp/gree-dionysus-infobox.json")
)

# BigQueryクライアント作成
client = bigquery.Client(
    project="gree-dionysus-infobox",
    credentials=credentials
)

# 接続テスト
datasets = list(client.list_datasets())
print(f"接続成功!{len(datasets)}個のデータセット")

主なデータセット(gree-dionysus-infobox):

  • production_infobox
    - 商用データ
  • production_infobox_mart
    - マート
  • staging_infobox
    - ステージング

トラブルシューティング

エラー原因対処法
File xxx was not foundGOOGLE_APPLICATION_CREDENTIALS が無効
unset GOOGLE_APPLICATION_CREDENTIALS
Reauthentication needed認証期限切れ再度認証実行
Permission deniedBigQuery権限なしIAM設定を確認

重要な注意事項

環境変数の競合

GOOGLE_APPLICATION_CREDENTIALS
環境変数が設定されている場合、ADCより優先されます。 Pythonコードで以下を実行して回避:

import os
if "GOOGLE_APPLICATION_CREDENTIALS" in os.environ:
    del os.environ["GOOGLE_APPLICATION_CREDENTIALS"]

marimo notebook使用時

.cursor/rules/notebook.mdc
のルールに従い:

  1. 作業開始前に「どのGCPプロジェクトで作業しますか?」と確認
  2. gcloud config configurations list
    でプロファイル一覧を表示
  3. 必要に応じてプロファイルを切り替え

Requirements

  • Google Cloud SDK (
    gcloud
    ) インストール済み
  • ブラウザでGoogleアカウントにログイン可能
  • 対象プロジェクトへのBigQuery閲覧権限