◉ANTIGRAVITY LABEN
記事一覧/Tips & 活用術
✦ Tips & 活用術/2026-03-22中級

Antigravity で環境変数・シークレットを安全に管理する方法

Antigravityプロジェクトでの環境変数(.env)やAPIキー・シークレットの安全な管理方法を解説。.gitignoreの設定からContext Files活用、チーム開発でのベストプラクティスまで網羅します。

antigravity464envsecretssecurity17tips37best-practices3

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_URL

Vercel:

vercel env add STRIPE_SECRET_KEY production

Firebase:

firebase functions:config:set stripe.key="sk_live_xxx"

Antigravity のエージェントにデプロイタスクを依頼する際は、「シークレットは CLI 経由で手動設定済みである」とコンテキストに明記しておくと、エージェントがハードコードしようとするのを防げます。


チーム開発での運用ルール

複数人で Antigravity を使う場合、環境変数管理のルールをチームで統一しておく必要があります。

推奨ルール

  1. .env.example は常に最新に保つ: 新しい環境変数を追加したら、PR に .env.example の更新を含める
  2. シークレットのローテーション手順を文書化する: APIキーの更新手順を README や Notion に記載しておく
  3. Antigravity のコンテキストに禁止事項を明記する: .gemini/context.md に「シークレットをログ出力するコードを生成しない」と記述する
  4. 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 の更新を始めてみてください。

シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

✦ Tips & 活用術2026-04-28
Antigravity の AI が古い API を使ってくる問題 — 最新ドキュメントを毎回読ませる3つの仕組み
Antigravity が古いライブラリ情報をもとにコードを書いてくる問題を、Context7 MCP・公式 URL の手渡し・AGENTS.md でのバージョン明示の3点で解消する実践ワークフローをまとめます。
✦ Tips & 活用術2026-04-25
Antigravity の Workspace Indexing が止まる・完了しない時の診断と修復手順
Antigravity の Workspace Indexing が 0% から進まない、長時間 In Progress のまま固まる、完了したはずなのに AI が認識しない。そうした症状を原因別に切り分けて修復する手順をまとめました。
✦ Tips & 活用術2026-04-25
Antigravity の Retry 機能を使いこなす — エージェントが詰まったときの賢いやり直し方
Antigravity のエージェントタスクが失敗したとき、Retry ボタンをただ押すだけでは同じ失敗を繰り返してしまいます。失敗の種類を見分けて Retry の使いどころを決めるための、ログの読み方と事前の確認手順を書き残します。