Mac

ローカルに秘密情報を置かないという選択 – 1Password CLIで実現する安全な.env運用

これまでずっと導入を迷っていたのだけど、昨今のサプライチェーン攻撃を重く受け止めた結果、1Passwordを契約してしまった。3年間で1万円だった。 色々考えたが、もう1Passwordを買うしかなかったと言える。

最近のサプライチェーンがやばすぎる件

最近、と書いたが、実のところ特に最近始まったことでもなく。 詳しくはこちらの記事をご覧いただきたい。

サプライチェーン攻撃への防御策 | blog.jxck.io https://blog.jxck.io/entries/2025-09-20/mitigate-risk-of-oss-dependencies.html

結局、OSSを日常的に利用している以上、いつだってこういうリスクには晒されていたのだったが、昨今のAIを利用した開発のスピードの速さに伴って、コードを真剣に読むことが昔ほど多くなくなってしまった自分の現状も鑑みて、備えを十分にしたほうが良いと改めて思い至った形である。

まあ、これまで.envファイルにシークレット情報を平文でバチバチに書きまくっていた状況に疑問や不安を感じなかったといえば、そんなこともないのだが、いつの間にか日常になって気にならなくっていた。

クラウドサービスのパラメーターストアみたいな感じで使える

それで、1Passwordを使えば何が便利かというと、1Password CLI( op )というソフトウェアを使うことで、クラウド上のパラメータストアみたいな感じで1Passwordを利用することができる。

コードの中に埋め込み用のプレースホルダを用意して、プログラムの実行時にのみ、そこに対してopを通してシークレット情報を流し込む運用をすることで、ローカルの中に一切のシークレット情報を持たないようにするのである。

.envファイルに対して下記のようなプレースホルダを記述し

# .env
SECRET1=op://vault-name/item-name/section-name/api-key1
SECRET2=op://vault-name/item-name/section-name/api-key2

下記のような形で実行する

$ op run --env-file=.env -- python app.py

これによって.envファイルは特にシークレット情報ではなくなり、GitHubなどに上げてしまっても良いものになる。(さすがにPublicで上げるのは気持ち悪いし、1Passwordの内部構造を晒すことになるので非推奨ではある。)

1Password自体はそれをインストールしている端末であればどこからでも利用できるものであるので、自分のアカウントでログインしていれば、どの端末でもこの .env ファイルを同じように利用できる。(各端末で op signin による認証は必要)

AI時代のセキュリティ意識

AIの進歩でコードレビューの支援は強化されつつあるが、AI自身が不正コードを生成するリスクもあるため、完全な防壁にはならない。

それに、実は上記の方法でも完璧とは言い難い。冒頭で紹介した記事にも書かれている通り、もっと固くしようと思えば、プロジェクト環境自体をコンテナで運用しつつ、コンテナの起動時にopを使ってシークレット情報を流し込むというものになると思う。

ただ、コンテナを使って開発するというのもなかなか面倒だ。なにかパッケージを一つ追加で入れるたびにリビルドしないといけない。

というか、サプライチェーンの問題を真剣に受け止めると、brewやaptでインストールするソフトウェア全般に警戒しなければならず、考えれば考えるほど仮想環境層を挟まないと何もできない事になってしまい、それはちょっときつすぎる、ということで折衷案として、ローカルには決してシークレット情報を置かない運用というものを考えた結果が今回の記事の内容になる。

皆さんにおかれても、より良い方法があればぜひ教えてほしい。

 

この記事が気に入ったらいいね!しよう
🍀

更新情報をお届けします

AirPods第4世代、アクティブノイズキャンセリング機能付きを使ってみた感想前のページ

関連記事

  1. コンピューター

    IIJmioのSIMカードのサイズを変更する際に気をつけておきたい事

    先日、ついに画面バリバリの携帯からピカピカの携帯に替えることができまし…

  2. Mac

    壊れたCFカードから写真データCR2を取り出すことに挑んだ記録 その2

    ふて寝して翌日。途方にくれた僕はこんな顔をして過ごしていました。…

  3. Linux

    リナックス(Linux)入門におすすめの学習本!漫画で最高にわかりやすい「シス管系女子」レビュー

    今日はLinuxの便利さについて、とても分かりやすく説明してある本をご…

  4. Linux

    Linuxを愛する私がMacBookPro ME865J/Aを一日さわってみた感想

    まだまだ全然、自分色に染めることができていませんが、少しずつじぶん好み…

  5. ゲーム

    「連鎖ノ試練」 答え合わせ- エンジニア専用RPG CODE QUESTで使ったコード

    ツイッターを見ていたら面白そうなツイートが流れてきた。┏┳┳┳…

  6. コンピューター

    子どもたちの語る生まれる前の話に、ワケが分からなさすぎてワクワクする

    先日、ちょっと前から狙っていて、ちょこちょこ学習していた技術を習得しま…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

  1. レビュー

    巻爪ほぼ完全に治ったので巻爪ロボを褒め称えるの巻
  2. 日記

    考えてもどうにもならない、不安のこと
  3. サイト紹介

    世界遺産に登録間近!長崎の教会群、旧外海町の出津教会の写真ほか
  4. ライフハック

    人は習慣によって作られる。良い習慣を簡単に身につける方法
  5. レビュー

    映画「この世界の片隅に」を見てきたよ!
PAGE TOP