Claude Codeに機密情報を見られないようにする方法|.envファイルを守るセキュリティ対策を初心者向けに解説 | ブログ | 株式会社Now, me.
ロゴ
セキュリティ・運用 / システム運用
Now, me. 編集部

Claude Codeに機密情報を見られないようにする方法|.envファイルを守るセキュリティ対策を初心者向けに解説

Claude Codeに機密情報を見られないようにする方法|.envファイルを守るセキュリティ対策を初心者向けに解説

Claude Codeで注意したい「シークレット」の漏洩リスク

AIがコードを書いてくれる時代になり、Claude CodeのようなAIコーディングツールを開発に利用する人が増えています。

「バグを直して」

「新しい機能を作って」

「このコードをリファクタリングして」

といった指示を出すだけで、プロジェクト内のファイルを確認し、コードを編集し、必要なコマンドを実行しながら開発作業を進められます。

一方で、AIにコードベースや開発環境へのアクセスを与える場合には、従来のチャットAIとは異なるセキュリティ上の注意が必要です。

特に注意したいのが、APIキー、パスワード、アクセストークン、秘密鍵などの「シークレット」です。

これらがAIの操作対象となるファイルやコマンドの出力に含まれてしまうと、意図しない情報開示につながる可能性があります。

この記事では、Claude Codeを利用するときに知っておきたいシークレット管理について、

•Claude Codeにはどのような権限があるのか

•.envファイルとは何か

•なぜAPIキーをAIから隔離する必要があるのか

•CLAUDE.mdやsettings.jsonはどのように使うのか

•Hooksで危険な操作を制限する方法

•KeychainやSecret Managerを使った管理方法

•Gitへのシークレット混入を防ぐ方法

という観点から解説します。

Claude Codeとは?

Claude Codeは、Anthropicが提供するAIコーディングツールです。

一般的なチャットAIと異なり、開発環境の中でコードを確認したり、ファイルを編集したり、コマンドを実行したりしながら開発作業を進められることが特徴です。

例えば、

•ソースコードを読む

•ファイルを編集する

•テストを実行する

•Gitを操作する

•ビルドや開発用コマンドを実行する

•エラーの原因を調査する

•コードをリファクタリングする

といった作業をAIに依頼できます。

便利になるほど権限管理が重要になる

AIコーディングツールの利便性は、開発環境にアクセスして作業できることによって大きく高まります。

しかし、それは同時に、

「AIがアクセスできる範囲に何が存在しているのか」

を管理する必要があるということでもあります。

例えば、プロジェクトディレクトリに、

•APIキー

•データベースの認証情報

•クラウドサービスの認証情報

•SSH秘密鍵

•OAuthトークン

•本番環境の接続情報

などが存在していれば、AIエージェントが扱う可能性のある情報として考えなければなりません。

そのため、Claude Codeを安全に利用するには「AIに正しい指示を出す」だけではなく、「そもそも重要な情報へアクセスできない構成にする」ことが重要です。

.envファイルとは?

.envファイルは、アプリケーションが利用する環境変数などをローカル環境で管理するために使われるファイルです。

例えば、

OPENAI_API_KEY=xxxxxxxx

STRIPE_SECRET_KEY=xxxxxxxx

DATABASE_PASSWORD=xxxxxxxx

のように、アプリケーションが利用する認証情報などが記述されることがあります。

.envに保存される情報はすべて秘密とは限らない

ここで重要なのは、「.envにあるものはすべて同じレベルの秘密情報」というわけではないことです。

例えば、

NODE_ENV=development

のような値は、通常は秘密情報ではありません。

一方で、

API_KEY=xxxxxxxx

DATABASE_PASSWORD=xxxxxxxx

SECRET_TOKEN=xxxxxxxx

などは、第三者に知られることでセキュリティ上の問題につながる可能性があります。

そのため、「.envだから危険」と考えるのではなく、「.envに保存されている値の中にシークレットが含まれている可能性がある」と理解することが重要です。

シークレットが漏洩すると何が起こるのか

漏洩した認証情報の種類によって影響は異なります。

例えばAPIキーが漏洩すると、

•APIを第三者に利用される

•利用料金が発生する

•APIの利用上限を消費される

といった問題が発生する可能性があります。

データベースの認証情報であれば、

•データの不正取得

•データの改ざん

•データの削除

などにつながる可能性があります。

クラウドサービスの強い権限を持つ認証情報であれば、さらに広範囲のリソースへアクセスされる可能性があります。

つまり、「APIキーだから大した情報ではない」と一括りにするのではなく、その認証情報にどのような権限が付与されているのかを確認することが重要です。

なぜClaude Codeでシークレットに注意する必要があるのか

Claude CodeのようなAIエージェントは、ユーザーから依頼された作業を実行するために、プロジェクト内のファイルを確認したり、開発用コマンドを実行したりすることがあります。

ここで重要なのが、

「AIに読ませたくないファイルが、AIからアクセス可能な場所に存在していないか」

という点です。

例えば、プロジェクト内に、

.env

というファイルが存在していて、そこに本番環境のAPIキーが保存されているとします。

この状態でAIエージェントにプロジェクト全体の調査を依頼すると、AIが必要に応じてファイルを参照したり、シェルコマンドを実行したりする可能性があります。

プロンプトインジェクションにも注意する

AIエージェントを利用する場合、プロンプトインジェクションも考慮する必要があります。

例えば、AIが外部から取得したWebページ、ドキュメント、Issue、READMEなどに、AIへ別の指示を与える悪意ある文章が含まれている可能性があります。

AIエージェントがその指示を意図せず実行してしまうと、想定していなかったファイル操作やコマンド実行につながる可能性があります。

そのため、

「AIに悪意はないから安全」

ではなく、

「AIが意図しない指示を処理してしまった場合でも、重要な情報を守れる」

という設計が重要になります。

「.envを読まないで」と指示するだけで安全なのか?

Claude Codeの設定やプロジェクトルールとして、

「.envを読まないこと」

「APIキーを表示しないこと」

といったルールを明示することは、基本的な対策として有効です。

ただし、それだけをセキュリティ対策の中心にするべきではありません。

AIへの指示は、AIが従うべきルールを明確にするためのものであり、認証情報そのものを物理的・技術的に隔離する仕組みとは異なります。

したがって、

「読まないように指示したから大丈夫」

ではなく、

「読まないように指示したうえで、アクセスそのものも制限する」

という多層防御が重要です。

Claude Codeを安全に使うための多層防御

Claude Codeのセキュリティ対策は、一つの設定だけで完結させるのではなく、複数の防御層を組み合わせることが重要です。

基本的には、

1. AIへのルールを定義する

2. ツールの権限を制限する

3. 危険なコマンドを制御する

4. シークレット自体をAIの作業環境から分離する

5. Gitへの混入を検知する

という考え方で整理できます。

CLAUDE.mdでAIにルールを伝える

Claude Codeでは、プロジェクト固有の指示をCLAUDE.mdに記述できます。

例えば、

•.envを直接読まない

•シークレットを出力しない

•APIキーをコードへ直接記述しない

•本番環境への操作を勝手に実行しない

•危険なコマンドを実行する前に確認する

といったルールを明文化できます。

CLAUDE.mdは「セキュリティポリシーを伝える層」

CLAUDE.mdの役割は、AIにプロジェクト固有のルールや開発方針を伝えることです。

例えば、

「認証情報をコードに直接記述しない」

というルールを明示しておけば、AIが新しいコードを生成するときにも、その方針を考慮させることができます。

ただし、CLAUDE.mdだけにセキュリティを依存するのは避けるべきです。

セキュリティ上重要な制御は、AIへの指示だけではなく、ツールの権限設定や環境側のアクセス制御でも行う必要があります。

settings.jsonなどでツールの権限を制御する

Claude Codeには、ツールの利用や権限に関する設定を行う仕組みがあります。

ここでは、AIがファイルを読み書きしたり、コマンドを実行したりする際の許可範囲を適切に設定することが重要です。

例えば、

「プロジェクト内のすべてのファイルを自由に操作できる」

という状態よりも、

「必要なファイルやコマンドだけを許可する」

という考え方のほうが、セキュリティ上は安全です。

最小権限の原則を適用する

これはClaude Codeに限った話ではありません。

セキュリティでは「最小権限の原則」が重要です。

AIに必要以上の権限を与えないことで、万一AIが意図しない操作を行った場合でも、被害範囲を小さくできます。

例えば、

開発用データベースへのアクセス

と

本番データベースへの書き込み権限

では、リスクが大きく異なります。

AIエージェントを導入する場合も、人間の開発者と同じように「誰が」「どの環境に」「何を実行できるのか」を整理することが重要です。

Hooksで危険な操作を制御する

Claude CodeではHooksを利用して、特定のタイミングで処理を実行する仕組みを構築できます。

例えば、ツール実行前に独自のチェックを行い、条件に該当した場合は処理を拒否するといった制御が考えられます。

危険なコマンドを検知する

例えば、

cat .env

のようなコマンドや、環境変数を大量に出力する操作などを検知し、実行前に確認または拒否する仕組みを設けることができます。

ただし、単純に文字列として「cat .env」だけをブロックすれば十分というわけではありません。

例えば、

cat .env

grep API_KEY .env

printenv

env

pythonでファイルを読む

Node.jsからfsでファイルを読む

など、同じ情報へアクセスする方法は複数あります。

そのため、セキュリティ対策としては「特定のコマンドだけを禁止する」のではなく、「シークレットへアクセスできる経路全体をどう制御するか」を考える必要があります。

そもそもシークレットをAIの作業環境に置かない

最も重要な考え方の一つが、

「AIから守りたいシークレットを、AIが操作するディレクトリに置かない」

という設計です。

例えば、ローカル開発環境で本当に必要な秘密情報をすべて.envに保存するのではなく、OSやクラウドが提供するシークレット管理機能を利用する方法があります。

macOSではKeychainを利用する

macOSにはKeychainという認証情報を安全に管理するための仕組みがあります。

アプリケーションや開発ツールから必要なタイミングで認証情報を取得する設計にすれば、プロジェクトディレクトリに平文のシークレットを置かない構成を検討できます。

クラウドではSecret Managerを利用する

クラウド環境では、専用のシークレット管理サービスを利用する方法があります。

例えば、

•Google Cloud Secret Manager

•AWS Secrets Manager

•Azure Key Vault

•HashiCorp Vault

などがあります。

これらを利用すると、アプリケーションコードやGitリポジトリにシークレットを直接保存せず、必要なサービスから認証・認可を行ったうえで取得する構成を作れます。

.envを使う場合にも最低限やるべきこと

現実には、ローカル開発で.envを利用するケースも少なくありません。

その場合は、少なくともGitへコミットしないことが重要です。

.gitignoreに.envを追加する

例えば、

.env

.env.local

.env.*.local

など、プロジェクトの構成に応じて対象ファイルを.gitignoreへ追加します。

ただし、.gitignoreに追加しただけでは、すでにGitへコミットされているシークレットは削除されません。

一度Gitの履歴に入ってしまった認証情報は、漏洩した可能性があるものとして扱い、必要に応じて失効・ローテーションする必要があります。

GitleaksでGitへのシークレット混入を検査する

AIがコードを書くようになると、開発者がすべての変更を一行ずつ確認することは難しくなります。

そこで、Gitへコミットする前やCI/CDの中で、シークレットがコードへ混入していないか自動検査する方法があります。

代表的なツールの一つがGitleaksです。

Gitleaksは、Gitリポジトリなどをスキャンして、APIキーや認証情報などのシークレットが含まれていないかを検出するためのオープンソースツールです。

AI開発では「生成後の自動検査」が重要

AIにコードを書かせる場合、

AIがコードを生成する

↓

人間がレビューする

↓

テストを実行する

↓

Gitleaksなどでシークレットを検査する

↓

Gitへコミットする

というように、複数のチェックポイントを設けることができます。

これはAIを信用するかどうかという問題ではありません。

「AIが誤ってシークレットを扱った場合でも、次の防御層で検知する」

という考え方です。

APIキーそのものにも権限を付けすぎない

シークレット管理では、「秘密にする」だけでなく「漏洩した場合の被害を小さくする」ことも重要です。

例えばAPIキーに、

•必要最低限の権限だけ付与する

•利用できるAPIを限定する

•利用元を制限する

•利用上限を設定する

•有効期限を設定する

•定期的にローテーションする

などの対策を組み合わせます。

これにより、万一一つの認証情報が漏洩した場合でも、被害範囲を抑えられる可能性があります。

本番環境の認証情報を開発環境に置かない

特に重要なのが、本番環境と開発環境を分離することです。

例えば、

開発環境

↓

開発用APIキー

↓

開発用データベース

本番環境

↓

本番用認証情報

↓

本番データベース

というように、環境ごとに認証情報を分離します。

開発環境でAIエージェントを利用するのであれば、可能な限り本番環境の強い権限を持つ認証情報を同じ環境へ置かないことが重要です。

これはClaude Codeに限らず、AIエージェントを開発環境へ導入する際の基本的なセキュリティ設計です。

Claude Codeを安全に使うための基本構成

初心者が最初に取り組むのであれば、次のように複数の対策を組み合わせると考えやすいでしょう。

CLAUDE.md

↓

AIに守るべきルールを伝える

settings.jsonなどの権限設定

↓

AIが利用できるツールや操作を制限する

Hooks

↓

危険な操作を検知・制御する

Keychain / Secret Manager

↓

重要なシークレットをファイルから分離する

.gitignore

↓

.envなどをGitへ追加しない

Gitleaks

↓

コミットやCI/CDでシークレット混入を検査する

最小権限

↓

APIキーやサービスアカウントの権限を必要最低限にする

環境分離

↓

開発環境から本番環境の認証情報を分離する

このように、複数の防御層を組み合わせることが重要です。

AIを信用するのではなく、失敗しても安全な環境を作る

AIコーディングツールを安全に利用するうえで、最も重要なのは「AIを信用するかどうか」ではありません。

AIが、

•間違ったファイルを読む

•意図しないコマンドを実行する

•外部から取得した情報に含まれる指示を誤って処理する

•シークレットをコードやログに出力する

といった可能性を前提に、環境側で被害を抑えられるようにすることです。

これはAIだけではなく、従来のセキュリティ設計にも共通する考え方です。

「絶対に事故を起こさない」

という設計ではなく、

「事故が起きても重要な情報まで到達できない」

という設計にすることが重要です。

まとめ

Claude Codeは、コードを読むだけではなく、ファイル編集やコマンド実行など、開発者の作業そのものを支援できる強力なAIコーディングツールです。

その一方で、AIに与える権限が大きくなるほど、APIキー、パスワード、秘密鍵、アクセストークンなどのシークレット管理が重要になります。

特に、

•.envなどに保存されたシークレットをAIの作業環境から可能な限り分離する

•CLAUDE.mdでセキュリティルールを明示する

•ツールやファイルへのアクセス権限を最小限にする

•Hooksなどで危険な操作を制御する

•KeychainやSecret Managerなどを利用する

•.envをGitへコミットしない

•Gitleaksなどでシークレット混入を自動検査する

•開発環境と本番環境を分離する

•APIキー自体の権限も最小限にする

といった多層防御が重要です。

AIコーディングの生産性を高めることと、セキュリティを強化することは両立できます。

重要なのは、AIに「気をつけて」とお願いするだけではなく、AIが誤った操作をしてもシークレットや本番環境を守れる仕組みを、開発環境そのものに組み込んでおくことです。

参考資料

•Anthropic Claude Code公式ドキュメント

•Anthropic Claude Code公式セキュリティ関連ドキュメント

•Gitleaks公式ドキュメント

•Apple Keychain Services公式ドキュメント

•Google Cloud Secret Manager公式ドキュメント

•AWS Secrets Manager公式ドキュメント

•Microsoft Azure Key Vault公式ドキュメント

DX推進・基幹刷新・独自AI開発のご相談

経営と現場をつなぐ業務改革(BPR)からERP基幹刷新、金融機関API連携、自律型AIエージェント実装まで一気通貫で伴走支援。補助金活用や士業連携による安心のガバナンス体制のもと、開発から内製化まで支援します。初回無料ヒアリング・無料見積もり受付中。

ACCELERATE YOUR DX

現場の知恵と最新テクノロジーで、
ビジネスの新しい波を共に創る。

ERP刷新、独自AI開発、金融・決済API統合から助成金活用まで。 企画・要件定義から開発・運用保守まで一気通貫で伴走します。