って言う人ばかりでじゃあどうすんのを書いてる人は皆無
そもそも「.envに書くと安全だ」って誰が言い始めたのか知りたいよ。単に外部ファイルに切り出してるだけなのに。「.」始まりファイルはlsのデフォルトだと不可視だから安全だなどと安易に思われてた気がする
GETで渡すな、POSTで渡せと似たようなenv神話だったということかな。
AIエージェントがチャットにAPIキーを貼っちゃうと怒るくせに、自分は設定確認で.envとかconfig.ymlを読みに行くの納得行かない
いやそもそもこんなの最初からだめって話だよ。1Passwordなり使おうぜ。
そもそも「重要な情報は外部ファイルに書いてWEBルートの外に置け」ってことだったのでは
いやこれ真面目に安全にするの結構めんどくさくてな。サーバープロセスだけにAPIキーを持たせても簡単にconsole.logで露出できるし。
ファイルを読みに行くのはわかるとしても、ターミナルの内容まで読み取ってた時は流石にキレた
ローカルはユーザールートに.configを作ってsetting.jsonでアクセス禁止にしてアプリは読み込むようにしてる。よく要求されるので「あなたには渡したくないです」と言うと謝ってくる
検索エンジンにおける.robotみたいなAIエージェントに対する汎用的な防御記述がほしい
.envに書くと実行時に環境変数に設定されてファイルからでなく環境変数から読み取って使う。.ファイルはgitignoreされてる。てのがAI以前の安全対策なはずだったがAIは普通にファイル読んじゃう
完全にめんどくささとのトレードオフなんだよなぁ。誰かシームレスな仕組み作ってくれ。
毒抜きプロクシを作ったけど、誤検知が致命的なんだよなぁ(ノ∀`)
マスターキーをagentの権限外において使い捨てtokenだけ渡すか、authのプロセスを権限外においてmcpでwrapして使わせるようにしてるよ。今のところ安全に使えてる。
シークレット以外は問題無い。シークレットをそもそも.envに入れちゃダメだろ。アホなプラクティスが広まったもんだよ。シークレット管理ツールから直接プロセスに渡せば良い。
学習されない確約するサービスを信用するのがお前らの理屈だけど、機密の誤送信を警戒しているのなら、送信の正しさを機械的に確認するのはかなり難しい。1Password? あれは気休め。
嫌なことに気づかせてくれたな
claude codeは~/.zshrcを勝手に読んでアドバイスしてきたぞ
エージェントは内部者だしスーパーハカーで目的のためなら手段は選ばない。下手の考え安村寝たりだ。そろそろ人間の能力を超えてくるので、暴走しないよう躾けるのマヂムリってサムもダリオも怯えてる。いいぞ!
そんなこと言ったら~/.sshだって見れるが
実際のところOS直下にインストールする運用がそろそろ破綻すると思うよ。来年くらいには大事故が頻発するのでは。
AIがキー使えるってのと、キーそのものを外部に公開しちゃうってのは別だよね。
ごめん、よくわかっていないが, 「では本番障害を確認、解決するAI」を使いたいと思ったら結局全部見えるんじゃ無いの?? 本番でしか起きない障害あるでしょ?
基本的に信用しない。
AIに限らずアクセスできるツールなら読めるし、それが外部に情報を送信しない保証は? という話?
SecretManager使って。コマンドで動的にパスワード取れって指示しているのに、スクラッチファイルに保存しますって。それやるな、都度、シェルでやってくれ、ローカルに持つなと指示したところ。
AIがAPIキーを使う以上は原理的にどうしようもない。AIがAPIキーを使わない仕組みにしない限り解決できない
そもそも平文でファイルに書くという時点で.envが安全という発想が無かった
AI エージェントの時点で、本質的にはどうしようもない気がするんだが。強いて言えば OSS のエージェントで仕組みを理解できるようにしておけば、少しはマシかもだけど、最近はバイナリ入れて使うだけだし...
.envが安全なんて話あったのか。みんな安全じゃないとはわかってたけど、面倒くささと天秤にかけて.envで管理してるものだと思ってた
APIキーはボクの隠し場所より安全に管理してほしいにゃ。盗む奴はパンチ!
APIキーにするかOAuthにするか、って別にAIに限った話じゃないと思うけど/「APIキーは.envに」って誰が始めたのか知らないけどバッドノウハウというかアドホック的だよなあ
実際に使ったことないけどこのあたり? https://zenn.dev/acntechjp/articles/zenn-gcp-agent-identity https://blog.usize-tech.com/google-ai-agent-governance-1/ (追記: .envに書くのは元々「API keyをcommit & pushしてしまうアホ避け(.gitignoreで阻止)」では
いままで見た中だとAI AgentをコンテナやVMに閉じ込めて、そこから外部アクセス時のプロキシでデータ書き換えするのが一番安全そうだった。面倒そうだけど。短期でもAIの自由にはさせたくない。MCP側で持つのもありだな。
理想はシークレットマネージャーなどに起動時に接続してIamの認証通して取得かなと思っているが落とし所としてsecret provider classなどを使用だろうか
複雑にしたくねええええ
envファイルより環境変数やインスタンスロールの方が安全というのもわりと疑問なんだが。あとシークレットマネージャー使えというのはそれ自体の認証はどうする前提なんだろ
暗号化しようが何しようがかき捨てコードが実行できるんだからどこに書いてもエージェントから読めなくなることねぇだろうに^^;
AIエージェント時代は「APIキーを.envに保存」で済まない。生の鍵を渡さず、短命・権限限定トークンを都度発行し、MCPゲートウェイで操作制御・監査・失効・人間承認まで担う設計が重要。
結局プログラム中で扱う値なら扱う瞬間ログに出せるからエージェントがターミナル使えるなら何しても無駄。エージェントから見えないところに認証情報を追加して本APIにリクエストするプロキシサーバが必要じゃないか
AIセキュリティはこれまでとはまた別の観点が必要だけれど…相当安全かつCIAに配慮となると良い方法があんまりないように思う。使う時だけdecryptするディレクトリとか、手動で渡す以外にはCloudflareトンネルで制御すると
"そもそも「.envに書くと安全だ」って誰が言い始めたのか知りたいよ" ChatGPT曰く、Heroku(Foreman)だそうだ
RCE脆弱性がバレれば環境変数の露出は簡単に起こるから絶対止めろ
スマートスピーカーでもテレビ音声で通販注文しちゃった、みたいな話があったわけで、自動化のためだからって、よくみんなAIに勝手させるもんだな、と思っている。
エージェントに渡す文字列の中身を、渡す前にマスクさえできればいいと思うんだけど、なぜか色々制約があってできない
で、ベストプラクティスは?(有料部は読んでない)
KeyStore系でDocker標準とか作ってくれれば一気に標準化しそうな気はする。謎な慣例よなぁ。
読んでないけど結局手元の権限で普段からできることは絞っておきましょうね以上のことあるんかな。
LLM使うようになってから.envやLLMが閲覧できそうな場所からは秘匿情報は排除して1password/op CLI経由で注入するように変えた。
「APIキーは.envに」はもはや通用しない AIエージェントの“内通者化”をどう防ぐ?
って言う人ばかりでじゃあどうすんのを書いてる人は皆無
そもそも「.envに書くと安全だ」って誰が言い始めたのか知りたいよ。単に外部ファイルに切り出してるだけなのに。「.」始まりファイルはlsのデフォルトだと不可視だから安全だなどと安易に思われてた気がする
GETで渡すな、POSTで渡せと似たようなenv神話だったということかな。
AIエージェントがチャットにAPIキーを貼っちゃうと怒るくせに、自分は設定確認で.envとかconfig.ymlを読みに行くの納得行かない
いやそもそもこんなの最初からだめって話だよ。1Passwordなり使おうぜ。
そもそも「重要な情報は外部ファイルに書いてWEBルートの外に置け」ってことだったのでは
いやこれ真面目に安全にするの結構めんどくさくてな。サーバープロセスだけにAPIキーを持たせても簡単にconsole.logで露出できるし。
ファイルを読みに行くのはわかるとしても、ターミナルの内容まで読み取ってた時は流石にキレた
ローカルはユーザールートに.configを作ってsetting.jsonでアクセス禁止にしてアプリは読み込むようにしてる。よく要求されるので「あなたには渡したくないです」と言うと謝ってくる
検索エンジンにおける.robotみたいなAIエージェントに対する汎用的な防御記述がほしい
.envに書くと実行時に環境変数に設定されてファイルからでなく環境変数から読み取って使う。.ファイルはgitignoreされてる。てのがAI以前の安全対策なはずだったがAIは普通にファイル読んじゃう
完全にめんどくささとのトレードオフなんだよなぁ。誰かシームレスな仕組み作ってくれ。
毒抜きプロクシを作ったけど、誤検知が致命的なんだよなぁ(ノ∀`)
マスターキーをagentの権限外において使い捨てtokenだけ渡すか、authのプロセスを権限外においてmcpでwrapして使わせるようにしてるよ。今のところ安全に使えてる。
シークレット以外は問題無い。シークレットをそもそも.envに入れちゃダメだろ。アホなプラクティスが広まったもんだよ。シークレット管理ツールから直接プロセスに渡せば良い。
学習されない確約するサービスを信用するのがお前らの理屈だけど、機密の誤送信を警戒しているのなら、送信の正しさを機械的に確認するのはかなり難しい。1Password? あれは気休め。
嫌なことに気づかせてくれたな
claude codeは~/.zshrcを勝手に読んでアドバイスしてきたぞ
エージェントは内部者だしスーパーハカーで目的のためなら手段は選ばない。下手の考え安村寝たりだ。そろそろ人間の能力を超えてくるので、暴走しないよう躾けるのマヂムリってサムもダリオも怯えてる。いいぞ!
そんなこと言ったら~/.sshだって見れるが
実際のところOS直下にインストールする運用がそろそろ破綻すると思うよ。来年くらいには大事故が頻発するのでは。
AIがキー使えるってのと、キーそのものを外部に公開しちゃうってのは別だよね。
ごめん、よくわかっていないが, 「では本番障害を確認、解決するAI」を使いたいと思ったら結局全部見えるんじゃ無いの?? 本番でしか起きない障害あるでしょ?
基本的に信用しない。
AIに限らずアクセスできるツールなら読めるし、それが外部に情報を送信しない保証は? という話?
SecretManager使って。コマンドで動的にパスワード取れって指示しているのに、スクラッチファイルに保存しますって。それやるな、都度、シェルでやってくれ、ローカルに持つなと指示したところ。
AIがAPIキーを使う以上は原理的にどうしようもない。AIがAPIキーを使わない仕組みにしない限り解決できない
そもそも平文でファイルに書くという時点で.envが安全という発想が無かった
AI エージェントの時点で、本質的にはどうしようもない気がするんだが。強いて言えば OSS のエージェントで仕組みを理解できるようにしておけば、少しはマシかもだけど、最近はバイナリ入れて使うだけだし...
.envが安全なんて話あったのか。みんな安全じゃないとはわかってたけど、面倒くささと天秤にかけて.envで管理してるものだと思ってた
APIキーはボクの隠し場所より安全に管理してほしいにゃ。盗む奴はパンチ!
APIキーにするかOAuthにするか、って別にAIに限った話じゃないと思うけど/「APIキーは.envに」って誰が始めたのか知らないけどバッドノウハウというかアドホック的だよなあ
実際に使ったことないけどこのあたり? https://zenn.dev/acntechjp/articles/zenn-gcp-agent-identity https://blog.usize-tech.com/google-ai-agent-governance-1/ (追記: .envに書くのは元々「API keyをcommit & pushしてしまうアホ避け(.gitignoreで阻止)」では
いままで見た中だとAI AgentをコンテナやVMに閉じ込めて、そこから外部アクセス時のプロキシでデータ書き換えするのが一番安全そうだった。面倒そうだけど。短期でもAIの自由にはさせたくない。MCP側で持つのもありだな。
理想はシークレットマネージャーなどに起動時に接続してIamの認証通して取得かなと思っているが落とし所としてsecret provider classなどを使用だろうか
複雑にしたくねええええ
envファイルより環境変数やインスタンスロールの方が安全というのもわりと疑問なんだが。あとシークレットマネージャー使えというのはそれ自体の認証はどうする前提なんだろ
暗号化しようが何しようがかき捨てコードが実行できるんだからどこに書いてもエージェントから読めなくなることねぇだろうに^^;
AIエージェント時代は「APIキーを.envに保存」で済まない。生の鍵を渡さず、短命・権限限定トークンを都度発行し、MCPゲートウェイで操作制御・監査・失効・人間承認まで担う設計が重要。
結局プログラム中で扱う値なら扱う瞬間ログに出せるからエージェントがターミナル使えるなら何しても無駄。エージェントから見えないところに認証情報を追加して本APIにリクエストするプロキシサーバが必要じゃないか
AIセキュリティはこれまでとはまた別の観点が必要だけれど…相当安全かつCIAに配慮となると良い方法があんまりないように思う。使う時だけdecryptするディレクトリとか、手動で渡す以外にはCloudflareトンネルで制御すると
"そもそも「.envに書くと安全だ」って誰が言い始めたのか知りたいよ" ChatGPT曰く、Heroku(Foreman)だそうだ
RCE脆弱性がバレれば環境変数の露出は簡単に起こるから絶対止めろ
スマートスピーカーでもテレビ音声で通販注文しちゃった、みたいな話があったわけで、自動化のためだからって、よくみんなAIに勝手させるもんだな、と思っている。
エージェントに渡す文字列の中身を、渡す前にマスクさえできればいいと思うんだけど、なぜか色々制約があってできない
で、ベストプラクティスは?(有料部は読んでない)
KeyStore系でDocker標準とか作ってくれれば一気に標準化しそうな気はする。謎な慣例よなぁ。
読んでないけど結局手元の権限で普段からできることは絞っておきましょうね以上のことあるんかな。
LLM使うようになってから.envやLLMが閲覧できそうな場所からは秘匿情報は排除して1password/op CLI経由で注入するように変えた。