AI駆動の開発環境 Antigravity は、プロジェクト内のファイルを広くコンテキストとして読み込む設計になっています。この特性は開発効率を劇的に向上させる一方で、APIキーやデータベース接続文字列といった機密情報の取り扱いには注意が必要です。
Antigravity プロジェクトで環境変数とシークレットを安全かつ効率的に管理するための方法を順番にご紹介します。
なぜ環境変数管理が重要なのか
Antigravity のエージェントは、プロジェクトディレクトリ内のファイルを読み取ってコンテキストを構築します。つまり、.env ファイルに直接書かれたAPIキーやトークンも、コンテキストの一部としてAIに渡される可能性があります。
環境変数管理を適切に行うことで、以下のリスクを回避できます。
- 誤ったコミット:
.envファイルが Git にコミットされ、APIキーが公開リポジトリに露出する - AI への不要な情報露出: シークレットがAIのコンテキストに含まれ、出力に混入するリスク
- チーム間の設定不整合: 環境ごとに異なる設定値がメンバー間で共有されず、動作不良を引き起こす
基本設定:.env ファイルと .gitignore
まず、プロジェクトルートに .env ファイルを作成し、.gitignore で確実に除外します。
# .gitignoreに追加
.env
.env.local
.env.production
.env.*.local.env.example ファイルを用意して、必要な変数名だけをチームに共有するのが一般的なプラクティスです。
# .env.example(値は空にする)
DATABASE_URL=
STRIPE_SECRET_KEY=
NEXT_PUBLIC_API_URL=
GOOGLE_AI_API_KEY=Antigravity のエージェントに対しては、.env.example をコンテキストに含め、.env 自体はコンテキストから除外するよう設定します。
Antigravity の Context Files を活用する
Antigravity では、.gemini/context.md ファイルや Brain システムを通じて、プロジェクトの文脈をAIに伝えることができます。ここに環境変数の構成情報を記述すると、エージェントが設定ファイルの存在と役割を正しく理解できるようになります。
<!-- .gemini/context.md に追加 -->
## 環境変数の管理方針
- `.env` ファイルにはAPIキーやDB接続文字列を格納している
- `.env` ファイルをコード生成の参照に含めないこと
- 新しいサービス連携を追加する場合は `.env.example` も更新すること
- 本番環境の値は Cloudflare Workers の `wrangler secret` で管理しているこのように明示的な指示を与えることで、エージェントが .env ファイルの内容をうっかりコードに埋め込んだり、ログに出力するコードを生成したりするリスクを減らせます。
環境別の管理戦略
実際のプロジェクトでは、開発・ステージング・本番で異なる環境変数が必要です。Antigravity プロジェクトでの推奨構成を示します。
ローカル開発環境
.env.local # ローカル開発用(gitignore対象)
.env.development # 開発環境共通設定
.env.example # テンプレート(コミット対象)
デプロイ先での管理
各デプロイ先のシークレット管理機能を利用します。
Cloudflare Workers / Pages:
# wrangler CLI でシークレットを設定
wrangler secret put STRIPE_SECRET_KEY
wrangler secret put DATABASE_URLVercel:
vercel env add STRIPE_SECRET_KEY productionFirebase:
firebase functions:config:set stripe.key="sk_live_xxx"Antigravity のエージェントにデプロイタスクを依頼する際は、「シークレットは CLI 経由で手動設定済みである」とコンテキストに明記しておくと、エージェントがハードコードしようとするのを防げます。
チーム開発での運用ルール
複数人で Antigravity を使う場合、環境変数管理のルールをチームで統一しておく必要があります。
推奨ルール
.env.exampleは常に最新に保つ: 新しい環境変数を追加したら、PR に.env.exampleの更新を含める- シークレットのローテーション手順を文書化する: APIキーの更新手順を README や Notion に記載しておく
- Antigravity のコンテキストに禁止事項を明記する:
.gemini/context.mdに「シークレットをログ出力するコードを生成しない」と記述する - Pre-commit フックで
.envの混入を防ぐ:git-secretsやdetect-secretsを導入する
Pre-commit フックの設定例
# git-secrets のインストールと設定
brew install git-secrets
cd your-project
git secrets --install
git secrets --register-aws # AWSキーのパターン登録
# カスタムパターンの追加
git secrets --add 'sk_live_[a-zA-Z0-9]+' # Stripe Live Key
git secrets --add 'sk-[a-zA-Z0-9]{48}' # OpenAI API Keyこれにより、うっかり .env をステージングに含めた場合でもコミットがブロックされます。
Antigravity エージェントとの安全なやり取り
Antigravity のチャットやエージェントに直接APIキーを貼り付けるのは避けましょう。代わりに、以下のアプローチを取ります。
環境変数を参照するコードを書かせる
プロンプト例:
「Stripe の決済APIを呼び出す関数を作成して。
APIキーは process.env.STRIPE_SECRET_KEY から取得すること。
ハードコードは禁止。」
.env ファイルの編集は手動で行う
エージェントに .env ファイルを直接編集させるのではなく、必要な変数名と説明だけを生成させ、実際の値の入力は開発者自身が行います。
プロンプト例:
「新しい Supabase 連携に必要な環境変数の一覧と
.env.example への追記内容を教えて。
実際の .env ファイルは編集しないで。」
よくあるトラブルと対処法
AIがシークレットをコードに埋め込んだ
コンテキストファイルに明示的な禁止ルールを追加し、生成されたコードをレビューしてからコミットします。git diff でハードコードされた文字列がないか確認する習慣をつけましょう。
.env が Git にコミットされてしまった
すでにコミットされた場合は、単にファイルを削除するだけでは履歴に残ります。git filter-branch や BFG Repo-Cleaner で履歴から完全に削除し、漏洩したキーはすべてローテーションしてください。
# BFG で .env を履歴から削除
bfg --delete-files .env
git reflog expire --expire=now --all
git gc --prune=now --aggressive環境変数が読み込まれない
Next.js プロジェクトの場合、クライアントサイドで使う環境変数には NEXT_PUBLIC_ プレフィックスが必要です。Antigravity にコードを生成させる際も、このルールを明示しておきましょう。
全体を振り返って
Antigravity の強力なコンテキスト理解は、適切なシークレット管理と組み合わせることで最大限に活きます。.gitignore の基本設定、Context Files での方針明示、そしてチーム全体でのルール統一。これらを実践すれば、セキュリティを損なうことなく AI 駆動開発のメリットを享受できます。
環境変数の管理は地味な作業に見えますが、プロジェクトが成長するにつれてその重要性は増していきます。今日からでも .env.example の整備と Context Files の更新を始めてみてください。