.envファイルをチームメンバーに安全に共有する方法
SlackやLINEでデータベースのパスワードやAPIキーを送っていませんか?.envファイルを安全にチームへ共有するための実践ガイドをまとめました。

.envファイルをチームメンバーに安全に共有する方法
「LINEで送っておくね」
新しいエンジニアがチームに加わりました。ローカル環境のセットアップ中に、こう聞いてきます。
「.envファイルもらえますか?」
よくある光景です。先輩エンジニアがLINEやSlackのDMで、データベースのパスワードやAPIキー、サードパーティのシークレットをそのまま貼り付けて送信。そのメッセージはトーク履歴にずっと残り続けます。
これは想像以上に危険な行為です。
.envファイルを安易に共有してはいけない理由
.envファイルには、漏洩すると致命的な情報が詰まっています。
- データベース接続情報 — ホスト、ポート、ユーザー名、パスワード
- APIキー — Stripe、AWS、Firebaseなど、不正利用されると課金が発生するサービスのキー
- サードパーティシークレット — OAuthクライアントシークレット、Webhookの署名キー
- 内部サービストークン — マイクロサービス間の認証トークン
LINEやSlackで送ったメッセージはサーバーに保存されます。ワークスペースへのアクセス権がある人なら誰でも検索で見つけられますし、退職したメンバーの端末にも残っている可能性があります。
よくある(しかし危険な)共有方法
| 方法 | リスク |
|---|---|
| Slack / LINE DM | サーバーに永久保存、ワークスペース内で検索可能 |
| メール添付 | メールサーバーに保存、転送される可能性 |
| Google Docs | リンク漏洩で誰でもアクセス可能、変更履歴に残る |
| Gitにコミット | 削除してもgit logに履歴が残る、ボットが数秒でスキャン |
| Notion / Confluence | ワークスペース全体に検索で公開される |
特にGitへの誤コミットは最も深刻です。GitHubにプッシュされたシークレットは、自動ボットが数秒以内にスキャンします。
.envファイルを安全に共有する方法
1. シークレットマネージャーの導入
Doppler、HashiCorp Vault、AWS Secrets Managerなどの専用ツールを使えば、環境変数を一元管理でき、メンバーごとのアクセス権限制御や監査ログも利用できます。チーム規模が大きい場合の理想的な選択肢です。
2. チーム向けパスワードマネージャー
1Password TeamsやBitwarden Organizationの共有ボルトに.envの内容を保存すれば、権限のあるメンバーだけが閲覧でき、エンドツーエンドで暗号化されます。
3. パスワード付き自動消滅メモ
新メンバーのオンボーディングなど、一度だけ素早く共有したい場面では、LOCK.PUBの秘密メモ機能が便利です。.envの内容をメモに貼り付け、パスワードと有効期限を設定。リンクはSlackで、パスワードはLINEで別経路で共有します。有効期限が切れれば内容は自動的に消えるので、永久に履歴に残る心配がありません。
4. GPG暗号化ファイル
セキュリティ意識の高いチームなら、.envファイルをGPGで暗号化してから共有する方法もあります。ただし、全メンバーがGPGキーの管理に慣れている必要があります。
.env管理のベストプラクティス
.gitignoreに即座に追加 — プロジェクト作成直後に最初にやるべきことです。.env.exampleファイルを用意 — プレースホルダー値で構造だけを共有します。- 環境ごとに異なる認証情報を使用 — 開発、ステージング、本番で同じキーを使い回さないこと。
- 定期的なシークレットローテーション — 最低でも四半期に一度、キーを更新しましょう。
- 退職時に即座にアクセス権を取り消す — メンバーが離れたら、そのメンバーがアクセスしていたすべてのシークレットを速やかに更新します。
今すぐできる設定
.gitignoreに以下を追加してください。
# 環境変数
.env
.env.local
.env.*.local
そして、.env.exampleを作成してドキュメントとして機能させます。
# .env.example
DATABASE_URL=postgresql://user:password@localhost:5432/mydb
STRIPE_SECRET_KEY=sk_test_xxxxxxxxxxxx
FIREBASE_API_KEY=your_firebase_api_key_here
NEXT_PUBLIC_BASE_URL=http://localhost:3000
このファイルをリポジトリにコミットしておけば、新しいメンバーが必要な変数を一目で把握できます。
シークレットをプレーンテキストで送るのをやめよう
.envファイルの共有は些細なことに見えますが、認証情報漏洩の最も一般的な原因の一つです。本格的なシークレットマネージャーを導入するにせよ、LOCK.PUBで有効期限付きのメモとして共有するにせよ、大切なのはチャットにシークレットを平文で貼り付ける習慣を断つことです。
今すぐSlackやLINEのトーク履歴でDATABASE_URLやAPI_KEYを検索してみてください。予想以上の結果が出てくるかもしれません。
キーワード
こちらもおすすめ
2FA復旧コードを安全に保管する方法
二段階認証(2FA)復旧コードの重要性、危険な保管方法と安全な保管方法、そして信頼できる人と安全に共有する方法を解説します。
子供のオンラインアカウントとパスワードを安全に管理する方法
ゲーム、学習、SNSなど子供のアカウントパスワードを安全に管理する保護者ガイド。年齢別の管理法と緊急時の対処法まで。
暗号資産のウォレットアドレスを安全に共有する方法 — クリップボードハイジャックに要注意
LINEでウォレットアドレスを送る前に知っておくべき、クリップボードハイジャックの仕組みと安全な共有方法を解説します。