kubesec を使ってみる (kubernetes)
kubernetes
Published: 2021-01-03

やったこと

Secret リソースを暗号化するため、kubesec を使ってみます。

確認環境

$ k version
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.2", GitCommit:"c97fe5036ef3df2967d086711e6c0c405941e14b", GitTreeState:"clean", BuildDate:"2019-10-15T19:18:23Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.3", GitCommit:"1e11e4a2108024935ecfcb2912226cedeafd99df", GitTreeState:"clean", BuildDate:"2020-10-14T12:41:49Z", GoVersion:"go1.15.2", Compiler:"gc", Platform:"linux/amd64"}

調査

インストール

kubesec のインストール

$ curl -sSL https://github.com/shyiko/kubesec/releases/download/0.9.2/kubesec-0.9.2-darwin-amd64 \
>   -o kubesec && chmod a+x kubesec && sudo mv kubesec /usr/local/bin/
Password:
$ kubesec --version
0.9.2

gpg のインストール

$ brew install gpg
$ gpg --version
gpg (GnuPG) 2.2.25
libgcrypt 1.8.7
(省略)

暗号化

secret-hoge.yaml

apiVersion: v1
kind: Secret
metadata:
  name: first-kubesec
type: Opaque
data:
  AAA: MTIz
  BBB: NDU2
  CCC: YWJj
$ gpg --gen-key
pub   rsa3072 2020-12-27 [SC] [有効期限: 2022-12-27]
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

※ 鍵はxに変換してあります。

標準出力
$ kubesec encrypt --key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx secret-hoge.yaml

ファイル書き換え
$ kubesec encrypt -i --key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx secret-hoge.yaml

※ 出力結果は省略します。

復号化

$ kubesec decrypt secret-hoge.yaml
apiVersion: v1
data:
  AAA: MTIz
  BBB: NDU2
  CCC: YWJj
kind: Secret
metadata:
  name: first-kubesec
type: Opaque

参考