Skip to content
Latchkey

SOPS vs Sealed Secrets: どちらの GitOps シークレットを選ぶか

SOPS は任意のシークレットファイルを KMS/age/PGP で暗号化し、Sealed Secrets は SealedSecret CRD をクラスタ内で Secret に復号する Kubernetes コントローラです。

SOPS は汎用的です。任意の構造化ファイルを暗号化し、多くのバックエンドや CI ツールと統合し、鍵を持っている場所ならどこでも復号します。Sealed Secrets は Kubernetes 固有です。クラスタの公開鍵で SealedSecret に暗号化し、クラスタ内のコントローラだけが復号でき、plaintext を完全に Git の外に保ちます。SOPS は環境をまたぐ柔軟性で勝り、Sealed Secrets は緊密な Kubernetes ネイティブの GitOps モデルで勝ります。

SOPSSealed Secrets
スコープ任意のファイルKubernetes CRD
復号鍵があればどこでもクラスタ内コントローラ
バックエンドKMS、age、PGPクラスタ鍵ペア
GitOps への適合幅広いK8s ネイティブ
最適な用途環境をまたぐシークレットK8s の GitOps シークレット

ユースケースとスコープ

SOPS は柔軟な鍵バックエンドで多くの環境やファイル種別にわたってシークレットを管理するチームに適しています。Sealed Secrets は、ターゲットクラスタだけが unseal できる暗号化された manifest を Git に置きたい、Kubernetes 専用の GitOps に適しています。

ops と CI への適合

SOPS は CI またはデプロイ時に鍵で復号し、Sealed Secrets はクラスタ内のコントローラに依存するため、CI は暗号化のために公開鍵だけを必要とします。より高速なマネージド runner が、どちらのフローでも暗号化/復号と manifest ビルドのステップを短縮します。

結論

柔軟で環境をまたぐ暗号化シークレットファイルが欲しいなら SOPS。クラスタだけが復号できる Kubernetes ネイティブなシーリングが欲しいなら Sealed Secrets。幅広さは SOPS を好み、K8s ネイティブの GitOps は Sealed Secrets を好みます。

関連ガイド