プロジェクトで API キーやデータベース接続情報などを管理する際に、.env
ファイルを利用するケースは多いですよね。しかし、セキュリティ上の理由から .env
ファイルは外部に漏れないよう十分な注意が必要です。本記事では、.env
ファイルをチーム内で安全に共有するための運用方法・事例をまとめました。
【大前提】なぜ .env
ファイルを外部に公開してはいけないのか?
-
.env
ファイルには 認証情報や API キー、データベース接続情報 など、機密情報が含まれていることが多いです。 - これらの情報が外部に漏れると、サービスの乗っ取りや不正アクセスなど 大きなセキュリティリスク につながります。
- GitHub のような 公開レポジトリにプッシュ すると、検索エンジンやクローラーにより漏洩が起こる可能性が高まります。
.env
ファイル運用に関する会話のまとめ
今回、上司やチームメンバーとのやり取りから得られた知見をざっくりまとめると、以下のようになります。
Q:
.env
ファイルは GitHub にプッシュせずに、チームでどのように共有するのが一般的ですか?
A:
- 基本的には プロジェクトメンバーのみ がアクセスできる場所に保管する。
- 以前のプロジェクトでは Backlog に
.env
ファイルを置いてダウンロードしてもらっていた。- Box などのセキュリティが担保されたストレージに配置する運用も多い。
実際の運用例
-
バックアップ & 共有ストレージに配置する
- Box、Backlog、などを利用して
.env
を保管する。 - 誰が編集・ダウンロードしたか分かるようにバージョン管理や権限設定をしておく。
- Box、Backlog、などを利用して
-
Git のプライベートリポジトリで管理
- 完全にメンバー限定の プライベートリポジトリ であればコミットする手段もある。
- ただし、万が一リポジトリがパブリックになったときのリスク を考えると、やや慎重になる必要がある。
- 認証情報が含まれない
.env
(開発用のデフォルト値のみ)ならコミットしておくケースもある。
-
定期的なキーの再生成
- 認証情報が含まれているなら キーを定期的に再生成 しておき、長期間同じ認証情報を使わない。
- 認証情報の寿命を短くすることで、万が一情報が漏洩してもリスクを軽減できる。
-
直渡し(手渡し)の回避
- USB メモリなどの オフラインでの受け渡し は、一見セキュリティが高そうでも、紛失や人的ミスが起きればリスクが高まる。
- 都度、新メンバーがプロジェクトに参加するたびに渡すのは手間も大きい。
- 組織でセキュリティが確保されたオンラインストレージを使う方がベター。
一般的な .env
管理フローの一例
-
リポジトリには
.env
を含めない-
.gitignore
に.env
を追加し、誤ってコミットしないようにする。
-
-
チーム内限定でアクセス可能なストレージに
.env
を保管- Box や Backlog、Google Drive(権限管理付き)などを活用。
- ファイル変更があったときはチーム内に周知し、誰がいつ変更したかトラッキングできるようにする。
-
環境構築手順書(マニュアル)に保管場所と入手方法を明記
- 新規メンバーは手順書通りにストレージへアクセスし、
.env
をダウンロード。 - 必要があれば API キーの取得先(例:AWS、Stripe など)を記載し、取得までのフローを分かりやすく示す。
- 新規メンバーは手順書通りにストレージへアクセスし、
-
キーの定期的な再生成と不要になったキーの削除
- 本番環境での API キー等はプロジェクトのフェーズごとや定期的に更新し、常に最新のキーを使う。
まとめ
-
.env
ファイルは非常に重要な機密情報を含むため、決してパブリックな場に公開しない ことが大原則です。 - チームで共有する際は、メンバー限定アクセスが保証 されるストレージやプライベートリポジトリを利用するのが一般的。
- 運用方法はプロジェクトの規模やセキュリティポリシーによって変わりますが、ストレージでの一元管理 と アクセス権限の厳格な制御 はほぼ共通したポイントです。
- 認証情報を含む場合は、キーの定期的な再生成 を行い、漏洩リスクを下げる取り組みも大切です。
プロジェクトのセキュリティを守るためにも、適切な .env
ファイルの管理を心がけておきましょう。