재배포하지 않고 sops 암호화된 비밀을 변경하는 방법

재배포하지 않고 sops 암호화된 비밀을 변경하는 방법

cronjob을 배포했습니다. 비밀에 포함된 매개변수(AES 키 회전)를 업데이트해야 합니다. 비밀은 암호화되어 있습니다.

작업을 재배포하지 않고 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 jobssecret" 편집기에 복사/붙여넣는 것입니다. 나는 더 좋은 방법이 있기를 바랐습니다.

저는 k8s 관리자가 아닌 개발자입니다. 그러나 선택에 의한 것은 아닙니다. "k8s 관리자 없음" 문제를 해결할 수 있을 때까지 정보를 입력하세요.

답변1

TL;DR

$ 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및 와 같은 키 값은 passwordbase64로 인코딩됩니다!

값을 변경하려면 password다음을 실행해야 합니다.

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

새로 업데이트된 비밀을 표시하면 다음이 표시되어야 합니다(출력은 부분적임).

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

추가 참조 자료를 확인하시기 바랍니다.

관련 정보