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
検証される項目
- 型チェック:
envとextraEnvVarsは配列、extraVolumesとextraVolumeMountsは配列 - 構造: 環境変数エントリには
nameとvalueまたはvalueFromが必要 - シークレット処理: シークレット値はvalues.yamlにハードコードすべきでない
よくあるアンチパターン
- values.yamlに機密値を直接ハードコード
- シークレットに
secretKeyRefではなくプレーンvalue:を使用 - シークレットを書き込み可能なボリュームとしてマウント(readOnly: trueであるべき)
ユースケース
セキュリティ監査前にHelmチャートのシークレット管理戦略をレビュー。資格情報がハードコードされておらず、すべてのシークレット参照が組織の外部シークレットパターンに従っていることを確認。