Add toolshed's credential encryption keys
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
# The keys toolshed encrypts stored connection credentials with.
|
||||
#
|
||||
# Connections hold access to a customer's git server, registry and cloud.
|
||||
# Those are not toolshed's secrets to lose, so they are encrypted with a key
|
||||
# the database never contains — a dump of PostgreSQL must not hand over
|
||||
# somebody's infrastructure.
|
||||
#
|
||||
# Format is a comma-separated list of "id:base64key", most recent first. More
|
||||
# than one so rotation is not a flag day: values written with an older key
|
||||
# keep decrypting while new ones use the new key.
|
||||
#
|
||||
# # generate a key
|
||||
# kubectl -n toolshed exec deploy/toolshed-api -- /usr/local/bin/keygen # session keys, not this
|
||||
#
|
||||
# Generate a 32-byte key any way you like; openssl is the shortest:
|
||||
#
|
||||
# NEW=$(openssl rand -base64 32)
|
||||
# kubectl -n vault exec -i vault-0 -- sh -lc "
|
||||
# vault login <root-token> >/dev/null &&
|
||||
# vault kv put secret/toolshed/encryption keys='k1:$NEW'"
|
||||
#
|
||||
# To rotate later, prepend a new key and keep the old one until nothing needs
|
||||
# it: keys='k2:<new>,k1:<old>'. Removing a key that still encrypts something
|
||||
# makes those credentials unreadable, and toolshed will say so by name rather
|
||||
# than reporting corruption.
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: toolshed-encryption
|
||||
namespace: toolshed
|
||||
spec:
|
||||
refreshInterval: 1h
|
||||
secretStoreRef:
|
||||
name: vault-backend
|
||||
kind: ClusterSecretStore
|
||||
target:
|
||||
name: toolshed-encryption
|
||||
creationPolicy: Owner
|
||||
data:
|
||||
- secretKey: keys
|
||||
remoteRef:
|
||||
key: toolshed/encryption
|
||||
property: keys
|
||||
Reference in New Issue
Block a user