~セキュリティを担保しながらAI開発を進める考え方~
近年、Codex、ChatGPT、Claude Code、GitHub Copilotなど、ソースコードを解析して開発支援を行うAIツールが急速に普及しています。
しかし一方で、
- 「リポジトリをAIに見せたら全部盗まれる」
- 「顧客情報が漏洩する」
- 「ソースコードが学習されて流出する」
といった不安の声もあります。
確かに何も考えずに本番環境の情報をそのままAIへ渡すのは危険です。
しかし実際には、多くの企業や開発チームでは「コード」と「秘密情報」を分離することで、安全にAIを活用しています。
本当に危険なのは何か?
まず整理したいのは、
「ソースコード」と「秘密情報」は別物である
ということです。
例えば以下は秘密情報です。
- DBパスワード
- APIキー
- JWT秘密鍵
- AWSアクセスキー
- SSH秘密鍵
- 顧客個人情報
- 本番データ
これらはAI以前にGitへ保存してはいけません。
一方で、
- PHPソース
- JavaScript
- HTML
- CSS
- Smartyテンプレート
- SQLスキーマ
などは、一般的には秘密情報ではありません。
現在の開発業界ではどうしているか
現在の標準的な開発手法では、
「秘密情報をGitへ保存しない」
ことが前提です。
例えばLaravelでは、
.env
ファイルに本番設定を書き、
Git管理対象外にします。
Gitには
- ソースコード
- 設定サンプル
- マイグレーション
だけが保存されます。
つまり、
「AIにリポジトリを見せる」
のではなく、
「秘密情報を除外したリポジトリをAIに見せる」
という考え方です。
AI時代の推奨構成
Gitに保存するもの
- PHP
- JavaScript
- HTML
- CSS
- SQLスキーマ
- 設定サンプル
Gitに保存しないもの
- DB接続情報
- APIキー
- 顧客データ
- 本番環境設定
- 秘密鍵
さらに安全な方法
AI活用を前提とするなら、
以下のような構成が理想です。
production
本番環境用
- 顧客情報あり
- 秘密情報あり
AIアクセス禁止
ai-dev
AI開発用
- 顧客情報なし
- APIキーなし
- パスワードなし
- ダミーデータ使用
AI利用可能
このように環境を分離することで、セキュリティを維持したままAI開発を進められます。
むしろAI時代に必要なのは
「AIに見せないこと」
ではなく、
「見せても安全な構造を作ること」
です。
今後は、
- PHP5→8移行
- フレームワーク更新
- ライブラリアップデート
- テストコード生成
- ドキュメント作成
など、多くの開発作業でAIが利用されるようになります。
そのたびに
「AIにコードを見せるのは危険だから禁止」
としていては、生産性で大きな差が生まれます。
結論
リポジトリをAIに見せること自体が危険なのではありません。
危険なのは、
「秘密情報が混在したままAIへ渡すこと」
です。
適切な設計を行えば、
- Git管理
- Secrets分離
- ダミーデータ化
- 環境分離
によって、セキュリティを維持したままAIを活用できます。
今後の開発現場では、
「AIを禁止する」
ではなく、
「AIを安全に使える開発体制を整える」
ことが重要になるでしょう。
実際の開発は、AIがリポ氏取りを見て開発をするやり方が一般的
AIにGitリポジトリを見せる
は、今やかなり普通です。
特に、
- Codex
- Claude Code
- GitHub Copilot
- Cursor
- Windsurf
などのAI開発ツールは、
リポジトリ全体を読ませる
ことを前提に設計されています。
AIがリポジトリを見ないと何が起こるか
例えば、
OrderService.php
InventoryService.php
CustomerService.php
があるとします。
AIに
InventoryServiceだけ
渡して、
在庫引当機能を追加して
と言っても、
AIは
注文はどう管理している?
商品マスターは?
共通関数は?
が分からない。
だから実際は
リポジトリ全体
↓
構造把握
↓
変更
になります。
これは人間の新規メンバーがプロジェクトに参加するときと同じです。
いま最先端では
例えばClaude Codeだと、
git clone
↓
AIがリポジトリ全体を読む
↓
変更
↓
テスト
↓
コミット案作成
までやります。
実質、
新人エンジニア
が1人増えたような感覚です。
大企業はどうしている?
実は、
Microsoft
や
でも、
コード
はAIに見せています。
ただし、
Secrets
は見せません。
逆に言うと
AI活用に向いていないリポジトリは、
$dbPass = "password123";
とか
$openaiApiKey = "sk-xxxx";
とか
$awsSecret = "xxxx";
が平気で入っているリポジトリです。
こちらが問題です。
アピスの案件で考えると
例えば、
アピス在庫管理
のリポジトリをAIに見せるのは、
私は問題ないと思います。
ただし、
顧客AのDBダンプ
顧客Aの注文データ
顧客Aの個人情報
APIキー
は除外します。
現実的な運用
私は今後、
JUNさんの会社なら
Git
├ src
├ public
├ template
├ sql
├ docs
└ config.sample.php
はAI可
.env
config.local.php
customer_dump.sql
backup.zip
はAI不可
という運用になると思います。
なので、
AIがGitリポジトリを見ながら開発する
は、
2026年現在ではかなり普通です。
むしろ最近は、
リポジトリを見せずにAIへ単発質問する
方が少数派になりつつあります。
ただし前提は、
コードと機密情報を分離していること
です。
ここを守れば、AIにリポジトリを見せること自体は、現在の開発現場では一般的なやり方になっています。


```



コメント