これを読んだメモ。
Bitnami Sealed Secrets
SealedSecret という CRD に encrypt value を書いて、これを git にホストする。
kubeseal
という components がこれをもとに decrypt して k8s secret を生成する。
アーキテクチャはシンプルで、かなり汎用的に使える Kubernetes の secret management tool のようだ。
GoDaddy Kubernetes External Secrets
Deprecated This project has been deprecated. Please take a look at ESO (External Secrets Operator) instead https://github.com/external-secrets/external-secrets
PR 出した。
External Secrets Operator
外部のサービスに保存されている Secret を API で取得して kubernetes secret を inject する。
resource model に high-level architecture がのっていてわかりやすい。
secretStore というリソースが Provider になっている。
汎用的なので複数の Secret Provider を使うなら良い選択肢だろう。
Hashicorp Vault
kuberentes はこっち。
正直よくわからなかった。
を見るに、http server として vault server が立って、そこに secret を問い合わせる雰囲気があったが、それであれば application に手を入れないといけなくなるのでよくわからない。
Banzai Cloud Bank-Vaults
Hasicorp vault を使ってなんとかする、ぐらいしか読み取れなかった。
Helm Secrets
README 眺めて結局何ができるのかよくわからず。
Kustomize secret generator plugins
これもよくわからず。kustomize の secret generator を go の plugin で使う例を書いてるっぽいが...
aws-secret-operator
AWS secrets manager から値をとりに行って、AWSSecret という CRD を通じて実際の k8s secret を生成してくれる。
AWS にしか secret がないなら良い選択肢。
KSOPS
kustomize plugin.
SOPS というのは暗号化のためのツール: Secrets OPerationS
あんまりよく掴めてないけど、ArgoCD にアドオンして、kustomize を紐解くときの処理に secret を作れるようにするってことかな...
argocd-vault-plugin
document
argocd-vault-plugin.readthedocs.io
ArgoCD が secret を apply するときに、
proivider は AWS secret manager を指定することもでき、ArgoCD のプラグインとして動作する。
operator を稼働させなくて良い点がメリットか。
argocd-vault-replacer
こちらも vault-plugin と似ているように見える。
暗号化に hasicorp vault を使い、かつ external provider をサポートしてない点が違うかな?
まとめ
AWS Secrets Manager に Credential が格納されている場合、External Secrets Operator か aws-secret-operator か argocd-vault-plugin が選択肢になる。
別の External Secrets Provider を使いたいなら External Secrets Operator、AWS だけでいいなら aws-secret-operator。operator の管理をしたくないなら argocd-vault-plugin が良さそうである。