rsadecrypt-template-v2-external-secret.yaml 1.5 KB

12345678910111213141516171819202122232425262728293031323334
  1. {% raw %}
  2. apiVersion: external-secrets.io/v1
  3. kind: ExternalSecret
  4. metadata:
  5. name: rsa-decrypt-template-v2
  6. spec:
  7. # ...
  8. target:
  9. template:
  10. engineVersion: v2
  11. data:
  12. # Decrypt a binary ciphertext using a private key stored in a Kubernetes Secret.
  13. # getSecretKey("secret-name", "namespace", "key") reads the PEM private key.
  14. # rsaDecrypt("SCHEME", "HASH", ciphertext, privateKeyPEM) decrypts the ciphertext (binary).
  15. password: '{{ getSecretKey "my_secret_with_pk" "namespace_pk" "key_pk" | rsaDecrypt "RSA-OAEP" "SHA1" .password_encrypted_binary }}'
  16. # Alternatives:
  17. # - If provider returns Base64, decode in-template with b64dec:
  18. # password: '{{ getSecretKey "my_secret_with_pk" "namespace_pk" "key_pk" | rsaDecrypt "RSA-OAEP" "SHA1" (.password_encrypted_base64 | b64dec) }}'
  19. # - Or set decodingStrategy: Base64 on the spec.data.remoteRef so template receives binary.
  20. # - Or use a private key pulled into this ExternalSecret (then use {{ .private_key }}):
  21. # password: '{{ .private_key | rsaDecrypt "RSA-OAEP" "SHA1" .password_encrypted_binary }}'
  22. data:
  23. - secretKey: password_encrypted_binary
  24. remoteRef:
  25. key: /credentials/password_encrypted_binary
  26. # If ciphertext is Base64 encoded, either decode in-template (b64dec) or use decodingStrategy: Base64
  27. # Example (decode here -> template receives binary):
  28. # - secretKey: password_encrypted_base64
  29. # remoteRef:
  30. # key: /credentials/password_encrypted_base64
  31. # decodingStrategy: Base64
  32. # ...
  33. {% endraw %}