ツナワタリマイライフ

日常ネタから技術ネタ、音楽ネタまで何でも書きます。

ArgoCD における secret management

argo-cd.readthedocs.io

これを読んだメモ。

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 出した。

github.com

External Secrets Operator

github.com

外部のサービスに保存されている Secret を API で取得して kubernetes secret を inject する。

external-secrets.io

resource model に high-level architecture がのっていてわかりやすい。

external-secrets.io

secretStore というリソースが Provider になっている。

汎用的なので複数の Secret Provider を使うなら良い選択肢だろう。

Hashicorp Vault

www.vaultproject.io

kuberentes はこっち。

www.vaultproject.io

正直よくわからなかった。

learn.hashicorp.com

を見るに、http server として vault server が立って、そこに secret を問い合わせる雰囲気があったが、それであれば application に手を入れないといけなくなるのでよくわからない。

Banzai Cloud Bank-Vaults

github.com

Hasicorp vault を使ってなんとかする、ぐらいしか読み取れなかった。

Helm Secrets

github.com

README 眺めて結局何ができるのかよくわからず。

Kustomize secret generator plugins

github.com

これもよくわからず。kustomize の secret generator を go の plugin で使う例を書いてるっぽいが...

aws-secret-operator

github.com

AWS secrets manager から値をとりに行って、AWSSecret という CRD を通じて実際の k8s secret を生成してくれる。

AWS にしか secret がないなら良い選択肢。

KSOPS

github.com

kustomize plugin.

SOPS というのは暗号化のためのツール: Secrets OPerationS

github.com

あんまりよく掴めてないけど、ArgoCD にアドオンして、kustomize を紐解くときの処理に secret を作れるようにするってことかな...

argocd-vault-plugin

github.com

document

argocd-vault-plugin.readthedocs.io

ArgoCD が secret を apply するときに、 を書き換える。

proivider は AWS secret manager を指定することもでき、ArgoCD のプラグインとして動作する。

operator を稼働させなくて良い点がメリットか。

argocd-vault-replacer

github.com

こちらも 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 が良さそうである。