Como alterar um segredo criptografado por sops sem reimplantar

Como alterar um segredo criptografado por sops sem reimplantar

Eu tenho um cronjob implantado. Preciso atualizar um parâmetro – girar uma chave AES – contido no segredo. O segredo é criptografado.

É possível atualizar a chave AES sem reimplantar o trabalho?

O que eu tentei:

"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

Meu próximo pensamento é criar um arquivo, criptografá-lo com sops e copiar/colar o resultado no editor para "kubectl edit secret jobsecret". Eu esperava que houvesse uma maneira melhor.

Sou um desenvolvedor, não um administrador do K8s. Mas, não por escolha. Preenchendo até que possamos solucionar o problema "sem administrador do k8s".

Responder1

DR

Você pode usar $ kubectl patchpara atualizar campos de recursos.

Exemplo:

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

Você pode encontrar mais referências aqui:

Incluí mais explicações abaixo.


Exemplo de "corrigir" um segredo:

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

Uma nota lateral!

Valores de chaves como usernamee passwordsão codificados em base64!

Para alterar o valor de passwordvocê precisará executar:

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

A exibição do segredo recém-atualizado deve aparecer (a saída é apenas parcial):

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

Eu recomendo fortemente que você verifique a referência adicional:

informação relacionada