0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

`.gitignore` を使ってデータベースの情報を保護する方法(gitHub)

Posted at

.gitignore を使ってデータベースの情報を保護する方法

はじめに

GitHubなどのリポジトリにプロジェクトを公開する際、データベースの接続情報(ユーザー名、パスワードなど)が含まれるファイルを誤ってアップロードしてしまうと、大きなセキュリティリスクにつながります。

この記事では、Gitの .gitignore を使ってデータベース情報をリポジトリに含めない方法や、クローン時にそれらの情報を保護する方法を解説します。


1. .gitignore とは?

.gitignore は、Gitで追跡しないファイルやディレクトリを指定するための設定ファイルです。このファイルに記述された内容は、Gitが管理対象外とみなし、リポジトリにコミットされません。

例えば、以下のようなファイルを .gitignore に追加することで、誤って機密情報をアップロードするのを防げます。


2. .gitignore の設定例

例:.env ファイルを無視する

データベース情報を環境変数として管理するため、.env ファイルを作成し、以下のように設定します。

DB_HOST=localhost
DB_USER=root
DB_PASS=super_secret_password

次に、.gitignore に以下を追加します。

.env

これにより、.env ファイルがリポジトリに含まれなくなります。


3. .gitignore を正しく運用するための注意点

1. すでにコミットされたファイルには効果がない

.gitignore は、新たに追加されるファイルを無視します。すでにコミットされてしまったファイルは履歴から削除する必要があります。

以下のコマンドで履歴から削除できます:

git rm --cached .env
git commit -m "Remove .env from repository"
git push origin main

2. 公開リポジトリでは特に注意

公開リポジトリでは、間違って機密情報を含めると不特定多数の人に漏洩する可能性があります。リポジトリを公開する前に、.gitignore の設定とコミット履歴を必ず確認してください。


4. その他のセキュリティ対策

環境変数を利用する

アプリケーションで機密情報を利用する際、環境変数を読み込むようにします。Node.jsの場合、dotenv パッケージを使用すると便利です。

npm install dotenv

アプリケーションコード例:

require('dotenv').config();

const dbHost = process.env.DB_HOST;
const dbUser = process.env.DB_USER;
const dbPass = process.env.DB_PASS;

GitHub Secretsを活用する

GitHub Actionsを利用する場合、Secrets機能を使って機密情報を管理するのが効果的です。


5. まとめ

.gitignore を正しく設定することで、データベースの情報やその他の機密データをリポジトリに含めずにプロジェクトを公開できます。公開リポジトリでは慎重に管理し、プロジェクトのセキュリティを確保しましょう。

チェックリスト

  • .gitignore に機密情報を含むファイルを追加したか?
  • すでにコミットされている機密ファイルを削除したか?
  • 環境変数を利用しているか?

プロジェクトの安全性を保ちつつ、安心して公開してください!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?