keyserv: Deploy keyserv

`keyserv` is a little utility I wrote to dispense *age* keys to clients.
It uses SSH certificates for authentication.  If the client presents an
SSH certificate signed by a trusted key, the server will return all the
keys the principal(s) listed in the certificate are allowed to use.  The
response is encrypted with the public key from the certificate, so the
client must have access to the corresponding private key in order to
read the response.

I am currently using this server to provide keys for the new
configuration policy.  The keys herein are used to encrypt NUT monitor
passwords.
This commit is contained in:
2024-01-19 22:08:25 -06:00
parent 897923a172
commit 534c4bfca0
19 changed files with 341 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: keyserv
labels:
- pairs:
app.kubernetes.io/instance: keyserv
includeSelectors: true
- pairs:
app.kubernetes.io/part-of: keyserv
includeSelectors: false
resources:
- namespace.yaml
- secrets.yaml
- keyserv.yaml
- ingress.yaml
configMapGenerator:
- name: keyserv-config
files:
- key-map.yml
- trusted-ca.keys
options:
disableNameSuffixHash: true
labels:
app.kubernetes.io/name: keyserv-config
app.kubernetes.io/component: keyserv
secretGenerator:
- name: age-keys
files:
- age-keys/age1y4prxtunmkx0kwrtl5qkxvj0gzl8kuyp9seyptgy2rlvrqyysegq32srfn
- age-keys/age1fc96yyd7a7l3uc4jr8sk06h8al607gjxd89q435jlp6nsmrhqflq5dkhtq
- age-keys/age1c6swn9tm0502jd3e0yszfd4qd7lgx2nd9uk0hruuckhx7zpn3utqhau7mz
- age-keys/age197zq0l27nwxj74d4pmpat6kqqth235mdc0ggmfm3006v0fy7advsg9ljts
- age-keys/age1ez6hv5frke4k4esk4p3nyf7y4g5mjq953t8ctk45qxnpreeerdpsrqu2dd
- age-keys/age1j63kzwldegazaaj4rm2ydzlm4wlh6z4cgm4s7g6pzysskh04duhslyc5yy
- age-keys/age1hl8dfgh938092h32zuex7xnfmqer3peg5gl6d892aarsw0s6nptq5tysu9
- age-keys/age1668cmw7jeyfawpdp7c6c79hdqdmvzjrkuszz4c96sfugkyjsr39qv4vsg7
- age-keys/age1dcyvkqde4j43gz6pzk6u8g3ph85tj3qr0tucr9lkcy4sgyqshe8qzq7d20
- age-keys/age1y3hea7a4rpeyjhcrcg29lsfzg9guwqeqx6m6q6szt5wuc8guy3hsl6t33e
- age-keys/age1kfqgu0ug40uwrsqx94azeflg58wp4ckx3xsm5l2y6zvw95zqygfsy8x69t
- age-keys/age1xfmmwhutwr4cml4dlj6rq6r9mgjs3fake0q4wuly5z9r9mqgk4nsk53d5j
options:
disableNameSuffixHash: true
labels:
app.kubernetes.io/name: age-keys
app.kubernetes.io/component: keyserv