Infisical を使うと、API キーやデータベースのパスワードを 1 か所に保管し、アプリを起動するときに環境変数として渡せます。最初は自分のパソコンに Docker Compose で立ち上げ、ダミーの値だけを入れて試すと安全です。
この記事は、.env ファイルで秘密情報を管理していて、もっと安全な方法を探している開発者に向けています。読み終えると、次のことができるようになります。
- Infisical を自分のパソコンで動かし、ダミーの秘密情報を登録する
- CLI でアプリを起動し、登録した値を環境変数として渡す
infisical scanで、リポジトリに秘密情報が紛れていないか調べる
Infisical でできること
公式ドキュメントと README には、秘密情報の管理について次の機能が載っています。
- 環境ごとの管理:プロジェクトの中で、開発用・本番用などの環境ごとに値を分けて持てます。変更のたびに新しい版が残り、前の状態に戻せます
- 実行時の受け渡し:CLI、SDK、エージェント、Kubernetes、CI/CD から値を取り出せます。GitHub や Vercel、AWS Secrets Manager などへ同期する機能もあります
- ローテーション:データベースの認証情報などを、決めた間隔で自動的に新しい値へ入れ替えます
- アクセス制御:ロール(RBAC)で、人と機械(マシン ID)がどの値を読み書きできるかを決めます
- 監査ログ:誰が何をしたかを記録します。ただし公式ドキュメントでは Pro 以上の有料プランの機能で、自前運用では Enterprise ライセンスが必要とされています
- シークレットスキャン:GitHub・GitLab・Bitbucket のリポジトリを継続して調べる機能と、手元のファイルや Git の履歴を CLI で調べる機能があります。CLI のスキャンは手元で動き、Infisical へのログインは要りません
秘密情報の管理のほかに、証明書の発行、暗号鍵の管理(KMS)、特権アクセス管理も同じ基盤に入っています。
.env ファイルを置くより安全な理由
公式ドキュメントは、Infisical の秘密情報管理を「.env ファイル、コードへの直書き、Slack などでの共有」を置き換えるものと説明しています。漏えいがよく起きる例として、.env ファイルをリポジトリにコミットしてしまうことや、環境変数を CI のログに出してしまうことを挙げています。Infisical を使えば値はサーバー側に暗号化して保管され、アプリは起動時に必要な分だけ受け取ります。手元に .env を置かずに済むので、うっかりコミットする元がなくなります。誰がどの環境の値を読めるかも、ロールで絞れます。
クラウド版と自前で動かす版
Infisical には、運営元が管理する Infisical Cloud(app.infisical.com)と、自分の環境で動かす版があります。公式ドキュメントでは、どちらも中心となる機能は同じです。クラウド版は更新や運用を任せられます。自前で動かす版はデータを自分で持てる代わりに、更新・監視・バックアップを自分で担います。自前で動かす方法として、Docker、Docker Compose、Kubernetes、Linux パッケージが用意されています。
ライセンスはディレクトリで分かれています。リポジトリの大部分は MIT ライセンスです。ee ディレクトリ(有料の Enterprise 機能)だけは別の Enterprise ライセンスで、本番で使うには有効な契約が必要です。開発やテストの目的なら、契約なしでコピーや改変ができると書かれています。
安全な試し方:自分のパソコンで動かす
試すときは、本物のパスワードや API キーを入れないでください。test-1234 のようなダミーの値だけを使います。公式の Docker Compose 構成は試用や小規模向けで、高可用性の本番には向かないと書かれています。
-
Docker と Docker Compose を入れます。公式の最小要件は CPU 2 コア、メモリ 4 GB、ディスク 20 GB です。
-
作業用のフォルダで、構成ファイルと設定ファイルを取得します。
curl -o docker-compose.prod.yml https://raw.githubusercontent.com/Infisical/infisical/main/docker-compose.prod.yml curl -o .env https://raw.githubusercontent.com/Infisical/infisical/main/.env.example -
.envのENCRYPTION_KEYとAUTH_SECRETは見本の値で、本番では使わないよう注記されています。試用でも、openssl rand -hex 16(ENCRYPTION_KEY)とopenssl rand -base64 32(AUTH_SECRET)で作った値に置き換えておくと安心です。 -
起動します。
docker compose -f docker-compose.prod.yml up -d -
ブラウザで
http://localhost:80を開き、管理者アカウントを作ります。最初に登録した人がインスタンスの管理者になるので、他の人に公開する前に済ませます。 -
プロジェクトを作り、Development 環境に
DUMMY_API_KEYのようなダミーの値を 1 つ登録します。
主な使い方:CLI で値を渡す
CLI は OS ごとに公式のパッケージがあります。
| OS | インストールのコマンド |
|---|---|
| macOS | brew install infisical/get-cli/infisical |
| Windows | winget install infisical(Scoop も可) |
| Debian/Ubuntu | 公式のセットアップスクリプトを入れてから sudo apt-get install -y infisical |
| その他 | npm(npm install -g @infisical/cli)、RedHat 系、Alpine、Arch Linux 用の手順が公式にあります |
入れたら infisical --version で確かめます。続けて、次のように使います。
| やりたいこと | コマンド |
|---|---|
ログインする(自前の Infisical なら --domain で宛先を指定) |
infisical login --domain http://localhost:80 |
| 今のフォルダをプロジェクトにひも付ける | infisical init |
| 値を環境変数として渡してアプリを起動する | infisical sm run -- npm run dev |
| 環境を指定して、渡される値を確かめる | infisical sm run --env=dev -- printenv DUMMY_API_KEY |
| リポジトリの履歴を調べる | infisical scan --verbose |
| コミット前に自動で調べるフックを入れる | infisical scan install --pre-commit-hook |
CLI が 0.43.145 以前だと sm がありません。その場合は infisical sm run の代わりに infisical run を使うか、CLI を新しくします。
infisical scan は漏れを見つける側の道具です。Gitleaks や TruffleHog も同じ側にあります。Infisical の秘密情報管理は、そもそも値をリポジトリに置かずに済ませる側なので、2 つを組み合わせると漏えいの防止と発見の両方に備えられます。
注意点
- 自前で動かす場合、
ENCRYPTION_KEYはすべての秘密情報を守る鍵です。公式ドキュメントは、この鍵がなければデータベースを復元しても秘密情報を復号できないと注意しています。データベースと一緒にバックアップしてください。 - 自前運用の
.envには、この鍵などの重要な値が入ります。公式の指示どおり、バージョン管理にコミットせず、chmod 600 .envなどで読める人を絞ります。 - PostgreSQL のボリューム(
pg_data)には暗号化された秘密情報がすべて入っています。消すとデータを失います。 - CLI は
http://の宛先には秘密情報を暗号化せずに送ります。http://localhostで試すのは自分のパソコンの中だけにして、他の機器から使うときはhttps://にしてください。 - 試すときに入れる値はダミーだけにします。本物の鍵を入れて試した後は、その鍵を入れ替えてください。
- 監査ログなど一部の機能は有料プランか Enterprise ライセンスが必要です。使いたい機能がどのプランに入っているかは、公式の料金ページで確かめてください。
次に読む
出典
- GitHub:LICENSEgithub.com/Infisical/infisical/blob/main/LICENSE
- GitHub:ee ディレクトリの Enterprise ライセンスgithub.com/Infisical/infisical/blob/main/backend/src/ee/LICENSE.md
- ドキュメント:クラウド版と自前運用の違いinfisical.com/docs/documentation/getting-started/concepts/deployment-models
- ドキュメント:Docker Compose で動かすinfisical.com/docs/self-hosting/deployment-options/docker-compose
- ドキュメント:自前運用の環境変数infisical.com/docs/self-hosting/configuration/envars
- ドキュメント:CLI のインストールinfisical.com/docs/cli/install
- ドキュメント:CLI リファレンスinfisical.com/docs/cli/reference
- ドキュメント:ローカル開発で .env の代わりに使うinfisical.com/docs/documentation/guides/local-development
- ドキュメント:秘密情報の管理infisical.com/docs/documentation/getting-started/choose-a-product/secrets-management/overview
- ドキュメント:シークレットのローテーションinfisical.com/docs/documentation/platform/secret-rotation/overview
- ドキュメント:監査ログinfisical.com/docs/documentation/platform/audit-logs
- ドキュメント:ロールによるアクセス制御infisical.com/docs/documentation/platform/access-controls/role-based-access-controls
- ドキュメント:漏れた秘密情報を見つけるinfisical.com/docs/documentation/getting-started/choose-a-product/secret-scanning
確認日 2026-10-25
似たツール
Gitleaks
影響範囲 手元だけGit リポジトリやファイルに紛れ込んだパスワード、API キー、トークンなどの秘密情報を見つけるコマンドラインツール。
- 用途
- 防御
- 形式
- コマンドライン
- 難易度
- 初級
- ライセンス
- 自由に使えるMIT
- 分類
- 脆弱性スキャン