HelmのSecretsとConfigMapパターンを検証する

環境変数、Secrets参照、ConfigMapマウント、外部シークレット統合のvalues.yamlパターンをチェックします。

Advanced Patterns

詳細な説明

SecretsとConfigMap設定

Helmチャートは設定インジェクションのためにKubernetes SecretsとConfigMapsを一般的に参照します。values.yamlファイルは使用するシークレットとconfigmap、マウント方法、設定する環境変数を制御します。

環境変数パターン

env:
  - name: DATABASE_URL
    valueFrom:
      secretKeyRef:
        name: app-secrets
        key: database-url
  - name: LOG_LEVEL
    value: "info"

ボリュームマウントパターン

extraVolumes:
  - name: config-volume
    configMap:
      name: app-config
  - name: secret-volume
    secret:
      secretName: app-credentials

extraVolumeMounts:
  - name: config-volume
    mountPath: /etc/config
    readOnly: true
  - name: secret-volume
    mountPath: /etc/credentials
    readOnly: true

検証される項目

  1. 型チェック: envextraEnvVarsは配列、extraVolumesextraVolumeMountsは配列
  2. 構造: 環境変数エントリにはnamevalueまたはvalueFromが必要
  3. シークレット処理: シークレット値はvalues.yamlにハードコードすべきでない

よくあるアンチパターン

  • values.yamlに機密値を直接ハードコード
  • シークレットにsecretKeyRefではなくプレーンvalue:を使用
  • シークレットを書き込み可能なボリュームとしてマウント(readOnly: trueであるべき)

ユースケース

セキュリティ監査前にHelmチャートのシークレット管理戦略をレビュー。資格情報がハードコードされておらず、すべてのシークレット参照が組織の外部シークレットパターンに従っていることを確認。

試してみる — Helm Values Validator

フルツールを開く