如何更改 sops 加密機密而不重新部署

如何更改 sops 加密機密而不重新部署

我部署了一個 cronjob。我需要更新秘密中包含的參數——旋轉 AES 金鑰。秘密是 sops 加密的。

是否可以在不重新部署作業的情況下更新 AES 金鑰?

我嘗試過的:

"kubectl edit secret jobsecret" -- edits the sops encrypted file but it is still encrypted
"helm edit secrets jobsecret.yaml" -- edits/encrypts the parameter file before deploy

我的下一個想法是建立一個文件,然後使用 sops 對其進行加密,並將結果複製/貼上到「kubectl edit Secret jobsecret」編輯器中。我希望有更好的方法。

我是一名開發人員,而不是 k8s 管理員。但是,不是出於選擇。填寫直到我們可以解決“no k8s admin”問題。

答案1

長話短說

您可以用來$ kubectl patch更新資源欄位。

例子:

kubectl patch secret YOUR_SECRET -p '{"data":{"key":"NEW_BASE64_ENCODED_VALUE"}}'

您可以在這裡找到更多參考:

我在下面添加了更多解釋。


「修補」秘密的例子:

  • $ secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: super-secret
data:
  username: a3J1aw==
  password: b2xkLXBhc3N3b3Jk

附註!

username和等鍵的值password是 base64 編碼的!

要更改您的值,password需要運行:

  • kubectl patch super-secret -p '{"data":{"password":"bmV3LXBhc3N3b3Jk"}}'

顯示新更新的秘密應該會顯示(輸出只是部分):

  • $ kubectl get secret super-secret -o yaml
data:
  password: bmV3LXBhc3N3b3Jk 
  username: a3J1aw==

我強烈建議您檢查附加參考:

相關內容