Upgrade to Pro — share decks privately, control downloads, hide ads and more …

1password で
開発環境の環境変数を安全に管理したい / mild-web-sap #31

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

1password で
開発環境の環境変数を安全に管理したい / mild-web-sap #31

ゆるWeb勉強会@札幌 #31
https://mild-web-sap.connpass.com/event/400434/

Avatar for Hiroto YAMAKAWA

Hiroto YAMAKAWA

August 22, 2026

More Decks by Hiroto YAMAKAWA

Other Decks in Programming

Transcript

  1. 2 環境変数とは? "An environment variable is a user-definable value that

    can affect the way running processes will behave on a computer. Environment variables are part of the environment in which a process runs. " Wikipedia, Environment variable https://en.wikipedia.org/wiki/Environment_variable "Many operating systems use environment variables to pass configuration information to applications. ... environment variables are key/value pairs, where both the key and the value are strings. " Oracle, The Platform Environment - Environment Variables, The Java™ Tutorials "A mapping object where keys and values are strings that represent the process environment. For example, environ['HOME'] is the pathname of your home directory (on some platforms), and is equivalent to getenv("HOME") in C." Python Software Foundation, os.envision, Python Documentation contents, プログラム(アプリケーション)を動作させるプロセスに、ユーザーなども含めた外部から 設定情報を渡すためのキーと値の組 #ゆるWeb札幌
  2. mun, AIエージェントへの環境変数漏洩を防ぐ https://zenn.dev/mun/articles/74ed03ca747f1d Embrace The Red, Cline: Vulnerable To Data

    Exfiltration And How To Protect Your Data https://embracethered.com/blog/posts/2025/cline-vulnerable-to-data-exfiltration/ ふみ_BENTEN WebWorks, 【実体験】AIコーディングツールが`.env`を読んで秘密鍵が漏れた話 GitHub Inc., GitHub Copilot https://docs.github.com/en/copilot/concepts/agents/cloud-agent/risks-and-mitigations https://zenn.dev/bentenweb_fumi/articles/3xlqkfaezl1j 秘密情報を保護し、必要な実行プロセスにのみ注入する仕組みが望ましい #ゆるWeb札幌 支 4 AIによる開発 援で、環境変数に格納した秘密情報の保護が課題に
  3. 7 1Password CLI ターミナルやコマンドプロンプトから1Passwordを利用できるようにする公式ツール 1. 設定 > 開発者 > 1Password

    CLIと連携を ✓ 2. 1Password-cliをインストール: $ brew install 1password-cli (他のOSは https://www.1password.dev/cli/get-started 参照) 3. 動作確認(op コマンドで実行) $ op vault list ID qwertyuiop asdfghjkl; #ゆるWeb札幌 NAME Private Shared vault(保管場所)の一覧
  4. 環境変数(のうち、秘密情報にしておきたいもの)を追加する (画面から追加することもできるが、ぱっと見わかりづらいので、追加した後に編集がいいかも) $ op item create \ vault(保管場所), category(種別), title(登録名・プロジェクトのものとわかる符号)

    vault="Private" \ category="API Credential" \ title="foo-project" \ 'clientId[text]=poiuytrewq' \ 変数名[型]=値 のように記録 [型]は1password上の設定で、 [password]の場合は、画面上も ・・・ で 'accessLoggingPath[text]=/foo/baz/bar.log' 一時的に隠される(閲覧は可能) 'clientSecret[password]=lkjhg;fdsa' \ $ op read "op: poiuytrewq private/foo-project/clientId" / / - - - - - op read コマンドで、値を1Passwordから取得 (要、1Password上でのワンタイム許諾) op://... の部分を Secret Reference と呼ぶ #ゆるWeb札幌 - 8 1Password CLI
  5. .env.op ファイルを使って、開発環境の環境変数に対してSecret Reference を設定する │ File: .env.op ─────┼───────────────────────────────────────────────────────────────── 1 │

    CLIENT_ID=op: private/foo-project/clientId 2 │ CLIRNT_SECRET=op: 3 │ ACCESS_LOG_PATH=op: private/foo-project/clientSecret private/foo-project/accessLoggingPath commandのプロセス起動時に、.env.op の Secret Reference の値を環境変数に注入する op run env-file=.env.op <command> op run env-file=.env.op poiuytrewq no-masking 例えば、 sh -c 'echo "$CLIENT_ID"' Shのプロセスの環境変数に Secret Reference を 1Passwordから注入 - - / - - / - - / / / / - - - #ゆるWeb札幌 - 9 1Password CLI
  6. AIエージェントが直接 op コマンドを実行すると、標準出力された秘密情報を読み取ってしまう場合がありうる (※ op run env-file=.env.op <command> ではなく、op read

    を直接使って表示することがありうる) 1Password MCP Server を起動することで、秘密情報へのアクセス権を与えるのではなく、 .env.op を使った処理だけを実行させる ... ... 行 - - - - #ゆるWeb札幌 0 1 AIエージェントに実 させるときはMCPサーバー経由で
  7. • 環境変数は、実行プロセスに外部から設定情報を渡すための仕組み ただいし、秘密情報を安全に保管する仕組みではない • AIによる開発支援では、.env や環境変数に格納した秘密情報が AIエージェントから参照・漏洩するリスクがあるため、 秘密情報の利用をAIエージェントから分離することが望ましい • 1Password

    CLIでは、Secret Reference、 .env.op ファイル、op コマンドを用い、 秘密情報を設定ファイルへ直接記述せず、 必要な実行プロセスにのみ実行時注入できる • さらに、1Password MCP Serverを介することで、 AIエージェントに秘密情報そのものへのアクセスを与えず、 秘密情報をの注入処理だけを実行させられる 1Password Cli / MCPサーバーで、 秘密情報を安全に管理して必要なプロセスにだけ注入しよう! #ゆるWeb札幌 1 1 まとめ まとめの校正・絵 GPT 5.6 sol