helm-secrets と SOPS による値の暗号化
暗号化したシークレット値を Git で安全に保管します。
「helm-secrets と SOPS による値の暗号化」はCoddyKit上の無料Helm Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはHelm Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Helm Academyコースには全4レッスンが含まれています。
暗号化してからコミットする
シークレットの値を Git に安全に保存できるとしたらどうでしょうか?暗号化を使えば可能です。適切なキーがなければファイルを読み取れなくなります。🔐
SOPS を使う
SOPS は YAML ファイル内の values を暗号化しながら、キーは読み取れる状態に保つツールです。そのため、差分の内容も把握できます。
暗号化されるのは values だけ
SOPS の大きな利点は、values だけを暗号化することです。どのキーが存在するかは確認できますが、シークレットの内容は見えません。
db:
password: ENC[AES256_GCM,data:9fK2...,type:str]キーサービスで保護する
SOPS は age、AWS KMS、GCP KMS などのプロバイダーから取得したマスターキーを使って暗号化します。そのため、復号できるのは認証されたキー保持者だけです。
helm-secrets プラグイン
helm-secrets プラグインは SOPS と Helm を橋渡しし、コマンドの実行中に暗号化された values ファイルを Helm がその場で復号できるようにします。
helm plugin install https://github.com/jkroepke/helm-secretsファイルを暗号化する
プラグインで values ファイルをラップして暗号化し、ファイル自体を置き換えます。平文のシークレットは、Git に保存できる安全な暗号文になります。
helm secrets encrypt secrets.yaml > secrets.enc.yamlデプロイ時に復号する
インストールまたはアップグレード時に、helm-secrets はその実行中だけファイルを復号し、メモリ上の平文を Helm に渡します。
helm secrets install myapp ./chart -f secrets.enc.yamlsecrets コマンドプレフィックス
通常の Helm コマンドの前に secrets を付けるだけです。プラグインが復号を処理し、その後すべてを Helm に渡します。
helm secrets upgrade myapp ./chart -f secrets.enc.yaml暗号文だけをコミットする
暗号化されたファイルだけをコミットし、平文は Git から完全に排除します。リポジトリには、攻撃者にとって役立つ情報が何も残りません。
再暗号化でローテーションする
シークレットを読める人を変更するには、キーをローテーションしてファイルを再暗号化します。SOPS は共有アクセスのために複数の受信者をサポートしています。
キーは Git の外で管理する
この仕組み全体は、復号キーをリポジトリの外に置くことを前提としています。キーは人や KMS が保持し、暗号文の隣には決して置きません。
確認問題
SOPS は YAML ファイルの何を暗号化しますか?
まとめ
helm-secrets と SOPS を組み合わせ、Git に安全に保存できるよう values を暗号化し、デプロイ時にだけ復号する方法を学びました。🎉
よくある質問
「helm-secrets と SOPS による値の暗号化」レッスンは無料ですか?
はい。「helm-secrets と SOPS による値の暗号化」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Helm Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Helm Academyコースには全4レッスンが含まれています。
「helm-secrets と SOPS による値の暗号化」で何を学びますか?
暗号化したシークレット値を Git で安全に保管します。 ブラウザで直接実行するハンズオンコードでHelm Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Helm Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのHelm Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「helm-secrets と SOPS による値の暗号化」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このHelm Academyレッスンでコードを書いて実行できますか?
はい。すべてのHelm Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Secrets を values.yaml に置くべきではない理由
- helm-secrets と SOPS による値の暗号化
- External Secrets Operator からシークレットを取得する
- Kubernetes Secret リソースのテンプレート化