0Pricing
DevOps Bootcamp · レッスン

helm-secrets と SOPS による値の暗号化

暗号化したシークレット値を Git で安全に保管します。

「helm-secrets と SOPS による値の暗号化」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全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.yaml

secrets コマンドプレフィックス

通常の 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チューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。

「helm-secrets と SOPS による値の暗号化」で何を学びますか?

暗号化したシークレット値を Git で安全に保管します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「helm-secrets と SOPS による値の暗号化」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDevOps Bootcampレッスンでコードを書いて実行できますか?

はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Secrets を values.yaml に置くべきではない理由
  2. helm-secrets と SOPS による値の暗号化
  3. External Secrets Operator からシークレットを取得する
  4. Kubernetes Secret リソースのテンプレート化
← DevOps Bootcampに戻る