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. Linux

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

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

  2. Mac

    文章を多く書く人はMacを使うべき?「半角/全角」キーと早めに決別するべき理由

    Macbookのキーボードのキー配列って、Unix配列って言われるもの…

  3. コミック

    新しい世界の未来予想。まもなくバーチャル・リアリティの時代が来ます。

    先日、テレビでバーチャル・リアリティ(以下VR)についての特集を見まし…

  4. Mac

    MacbookPro ME865J/Aが届いたので開けてみた、その所感。

    今年最後の個人的な仕事と言うか使命を終え、家についたとほぼ同時に届きま…

  5. お金

    三菱東京UFJ(MUFG)も扱い始める「仮想通貨」、時代は変わり続けるよ!

    もしも10年前に戻れるとしたら・・・皆さんは何をするでしょうか。ぼ…

コメント

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

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

  1. こころ

    人を嫌いになってはいけない理由。嫌いになる前にできること。
  2. レビュー

    気持ちが落ち込んだ時に僕が考えている事。「反応しない練習」を読んで。
  3. サイト紹介

    アフィリエイト百貨店sikiって知ってますか?これからの時代の強力なツール、アフ…
  4. 日記

    福岡に引っ越す前日の記録
  5. 日記

    あたまの良い子の育て方。「あたまがいい」というのはどういう事か
PAGE TOP