.envファイルを使ってReactプロジェクトでAPIキーを安全に管理する方法
Reactプロジェクトに.envファイルを追加してAPIキーを安全に管理する方法
ReactプロジェクトでAPIキーなどの機密情報を扱う場合、安全性と管理性を高めるために.env
ファイルを使うのがベストプラクティスです。このファイルは環境変数を格納し、コードから直接読み込むことで、キーを安全に隠蔽できます。
手順
- .envファイルを作成
プロジェクトルートディレクトリに.env
という名前のテキストファイルを作成します。拡張子は.txt
ではなく.env
であることに注意してください。
- 環境変数を設定
.env
ファイルに、以下の形式で環境変数を設定します。
KEY=VALUE
例えば、APIキーの場合、以下のように記述します。
API_KEY=YOUR_API_KEY
.envファイルをgitignoreに追加
.env
ファイルは機密情報を含むため、Gitリポジトリに含めてはいけません。.gitignore
ファイルに.env
を追加することで、コミットから除外できます。
.env
コードから環境変数を読み込む
dotenv
ライブラリを使って、コードから.env
ファイルの環境変数を読み込むことができます。
dotenv
ライブラリをインストール
npm install dotenv
- アプリケーションの起動時に
.env
ファイルを読み込む
import dotenv from 'dotenv';
dotenv.config();
const apiKey = process.env.API_KEY;
// ...
開発環境と本番環境で異なる環境変数を設定
.env
ファイルは環境ごとに分けることができます。例えば、開発環境用の.env.development
と本番環境用の.env.production
を用意することで、環境に応じた異なる設定を管理できます。
.env
ファイルを使うことで、ReactプロジェクトでAPIキーなどの機密情報を安全に管理できます。環境ごとにファイルを分けることで、開発環境と本番環境で異なる設定も簡単に管理できます。
ファイル構成
├── .env
├── package.json
└── src
└── App.js
API_KEY=YOUR_API_KEY
package.json
{
"name": "my-app",
"version": "1.0.0",
"description": "",
"main": "src/index.js",
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"dotenv": "^16.0.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-scripts": "^5.0.1"
}
}
App.js
import React, { useState } from 'react';
import dotenv from 'dotenv';
dotenv.config();
const apiKey = process.env.API_KEY;
function App() {
const [data, setData] = useState([]);
useEffect(() => {
const fetchData = async () => {
const response = await fetch(`https://api.example.com/?api_key=${apiKey}`);
const json = await response.json();
setData(json);
};
fetchData();
}, []);
return (
<div>
{data.map((item) => (
<p key={item.id}>{item.name}</p>
))}
</div>
);
}
export default App;
説明
dotenv
ライブラリをimport
します。dotenv.config()
を使って.env
ファイルを読み込みます。process.env.API_KEY
で環境変数API_KEY
を取得します。- APIキーを使ってAPIを呼び出し、データを取得します。
実行方法
npm install
で必要なライブラリをインストールします。npm start
でアプリケーションを起動します。
注意事項
.env
ファイルはGitリポジトリに含めないでください。.env.production
などの環境
.envファイル以外にも、ReactプロジェクトでAPIキーを安全に管理する方法があります。
OS環境変数にAPIキーを設定する方法です。.env
ファイルよりも安全性が高いですが、設定方法が複雑になります。
秘密鍵管理サービス
AWS Secrets Manager や HashiCorp Vault などの秘密鍵管理サービスを使う方法です。高度なセキュリティと管理機能を提供しますが、導入と運用にコストがかかります。
ソースコードの暗号化
ソースコード全体を暗号化する方法です。.env
ファイルや環境変数よりも安全ですが、暗号化と復号化の処理がオーバーヘッドになります。
サーバーサイドの環境変数
APIキーをサーバーサイドの環境変数に設定する方法です。クライアントサイドにキーを公開しないため安全ですが、サーバーの設定を変更する必要があります。
プロジェクトの規模、セキュリティ要件、運用コストなどを考慮して、最適な方法を選択する必要があります。
reactjs environment-variables api-key