External Secrets Operator からシークレットを取得する
デプロイ時に vault からシークレットを取得します。
「External Secrets Operator からシークレットを取得する」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
シークレットをチャートの外で管理する
別の方法では、シークレットをチャートの近くに保存することすら避けます。専用の保管庫に保管し、デプロイ時に取得します。
信頼できる唯一の情報源
HashiCorp Vault や AWS Secrets Manager のようなシークレットストアを信頼できる唯一の情報源とし、チャートやリポジトリから分離します。
External Secrets Operator
External Secrets Operator(通常は ESO と呼びます)はクラスター内で動作し、外部ストアの値を Kubernetes Secret にコピーします。
Helm で ESO をインストールする
このオペレーター自体も、公開チャートから Helm でインストールします。その後、同期方法を指示するリソースを監視します。
helm install external-secrets external-secrets/external-secretsSecretStore で接続する
SecretStore リソースには、保管庫の場所と認証方法を指定します。ESO はその情報を使い、代わりにシークレットを読み取ります。
kind: SecretStore
spec:
provider:
vault:
server: https://vault.example.comExternalSecret で要求する
ExternalSecret リソースには、取得したいリモートキーと、ESO がそこから作成する Kubernetes Secret を指定します。
kind: ExternalSecret
spec:
target:
name: db-credentialsESO が Secret を実体化する
オペレーターが保管庫を読み取り、通常の Kubernetes Secret を実体化します。Pod は他の Secret と同じように利用できます。
チャートにはシークレットを含めない
これでチャートに含めるのは ExternalSecret マニフェストだけになり、認証情報自体は含めません。機密性の高い値は保管庫だけに存在します。🔐
自動更新
ESO は一定間隔で Secret を更新できます。そのため、保管庫で値をローテーションすると、再デプロイなしでクラスターにも反映されます。
spec:
refreshInterval: 1hvalues.yaml で参照する
チャートの values に保持するのは同期された Secret の名前だけで、シークレット自体は保持しません。これにより、設定を安全にコミットできます。
existingSecret: db-credentials責任を分離する
このモデルでは、シークレットを管理する担当者とアプリをデプロイする担当者を分離できます。セキュリティチームが保管庫を管理し、チャート作成者はそれを参照するだけです。
確認問題
External Secrets Operator は実際に何をしますか?
まとめ
External Secrets Operator が保管庫の値を Kubernetes Secret に同期することで、チャートには参照だけを含められることを学びました。🎉
よくある質問
「External Secrets Operator からシークレットを取得する」レッスンは無料ですか?
はい。「External Secrets Operator からシークレットを取得する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「External Secrets Operator からシークレットを取得する」で何を学びますか?
デプロイ時に vault からシークレットを取得します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「External Secrets Operator からシークレットを取得する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Secrets を values.yaml に置くべきではない理由
- helm-secrets と SOPS による値の暗号化
- External Secrets Operator からシークレットを取得する
- Kubernetes Secret リソースのテンプレート化