Uso de Vault
Vaul administra los secretes que serán usados en Kubernetes. Para usarlos hay que seguir estos tres pasos:
- Acceder con su usuario mediante la interface gráfica.
- Crear los secretos necesarios en su grupo de trabajo separandolos por Namespace.
- Luego en el Namespace donde desea usarlos crear un objeto de conección y un objeto de solicitud de secret por cada secreto que desea crear.
Si todo está bien, Vault creará el secret de kubernetes solicitado
Pro cualquier inconveniente o consulta escribir a soporte@unicen.edu.ar
Ingresar a Vault
Acceda a interface gráfica mediante el método UserName. Cada usuario recivió un mail con las credenciales de acceso. Recuerde cambiar la contraseña cuando inicie sesión por primera vez.
Crear secret en Vault
En el dashboard de acceso o entrando al menú Secrets Engines; Kubernetes encontrá el nombre de grupo que lo representa, por Ejemplo: Econ, Extensión, it, Gestión, etc.
Solo tendrá permiso de escritura y lectura en el grupo correcto
Luego de acceder a su grupo oprima "Create Secret +". el path del secret que desea crear debe poseer el siguiente formato:
Grupo/Namespace/nombre-secret, el nombre-secret es el que se usará dentro del deploy o statefulset requerido
Por ejemplo:
- it/monitor/credenciales-externos
- ojs/ojs-interantro/ojs-mysql-secret
- comedor/comedor-produccion/base
Luego coloque cada clave - valor requerida dentro del secret
Dado que no es necesario recordar la clave se pueden utilizar valores generados aleatoreamente.
Solicitar medianta manifiesto la creación de secret en un namespace
A continuación una plantilla de manifiesto
# Autenticación de Namespace
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultAuth
metadata:
name: static-auth
namespace: <Namespace> #Cambiar
spec:
method: kubernetes
mount: kubernetes
kubernetes:
role: <Grupo> #Cambiar
serviceAccount: default
audiences:
- vault
---
#solicitud de secreto
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: vault-<NombreSecret> #Cambiar
spec:
type: kv-v2
mount: kubernetes
# path of the secret
path: <Grupo>/<Namespace>/<Nombre-Secret> #Cambiar
# dest k8s secret
destination:
name: <Nombre-Secret> #Cambiar
create: true
type: <Tipo de Secret> #Cambiar, si no se coloca el campo por defecto usa Opaque
refreshAfter: 300s
vaultAuthRef: static-auth
Ejemplo instanciado:
# Autenticación de Namespace
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultAuth
metadata:
name: static-auth
namespace: ojs-interantro
spec:
method: kubernetes
mount: kubernetes
kubernetes:
role: ojs
serviceAccount: default
audiences:
- vault
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: vault-docker-secret
spec:
type: kv-v2
mount: kubernetes
# path of the secret
path: ojs/ojs-interantro/docker-secret
# dest k8s secret
destination:
name: docker-secret
create: true
refreshAfter: 300s
vaultAuthRef: static-auth