よっしー
こんにちは。よっしーです(^^)
今日は、sopsコマンドについてご紹介します。
背景
Sopsとは
direnvは、開発者がプロジェクトごとに異なる環境変数を設定するためのツールです。プロジェクトごとに異なる設定や環境変数が必要な場合、direnvを使用することで環境変数を自動的に切り替えることができます。
direnvを使用する主な背景や利点は次のとおりです:
- プロジェクトごとの環境設定: direnvを使用することで、各プロジェクトに対して異なる環境設定を行うことができます。例えば、プロジェクトAでは特定のパスを追加したり、プロジェクトBでは別のAPIキーを設定したりすることが可能です。
- 環境変数の自動切り替え: direnvはディレクトリごとに
.envrc
というファイルを作成し、その中で環境変数を設定します。ディレクトリに移動すると、direnvは自動的に.envrc
を読み込み、そのディレクトリの環境変数を有効にします。ディレクトリを移動するたびに手動で環境変数を設定する手間を省くことができます。 - プロジェクトの共有性: direnvを使用することで、プロジェクトの環境設定を
.envrc
ファイルとして共有することができます。新しい開発者がプロジェクトに参加する際に、.envrc
を使用して環境をセットアップすることができます。
要約すると、direnvは異なるプロジェクトやディレクトリごとに環境変数を管理し、開発者にとって便利な環境設定ツールです。
インストール手順
asdfコマンドを使用して、下記の手順でsopsコマンドをインストールしました。
# プラグインの確認
asdf plugin list all | grep sops
# プラグインの追加
asdf plugin add sops
# インストールできるバージョン確認
asdf list-all sops
# 最新バージョンをインストール
asdf install sops 3.7.3
# 利用可能なバージョンを確認
asdf list sops
# ローカルで使用するように設定
asdf local sops 3.7.3
asdfコマンドについては、下記の記事を御覧ください。
GPGを利用した使用方法
主な使用方法は下記になります。
下記のコマンドを入力する。
git clone git@github.com:mozilla/sops.git
cd sops
gpg --import pgp/sops_functional_tests_key.asc
sops .env
下記の内容を入力して、:wq で終了する。
PASSWORD=P@ssw0rd
下記のコマンドを入力する。
cat .env
下記のように値が暗号化されていることが確認できれば成功です。
PASSWORD=ENC[AES256_GCM,data:QcCoZkVWCDM=,iv:185LJ2+8hr5f7hYmsCYXQ68oRUjTeTMLhA+xZOrG9xk=,tag:ZsjXrBRHx6DcpbIlGGsVyQ==,type:str]
(以下、省略)
復号化した値を取得したいときは、下記のコマンドを入力します。
% sops -d .env
PASSWORD=P@ssw0rd
GPG以外を使用するやり方もありますので、詳細は下記の公式サイトに従ってください。機会があれば、他のやり方も記事にしたいと思います。
おわりに
今日は、sopsコマンドについてご紹介しました。これで、特定の環境変数を暗号化して管理することができるようになりますので、.envファイル等で環境変数を管理している方は使用してみるといいと思います。
よっしー
何か質問や相談があれば、遠慮なくコメントしてください。また、エンジニア案件についても、いつでも相談にのっていますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント