Autoaloja con Helm
Este artículo le guiará a través del procedimiento para instalar y desplegar Bitwarden en diferentes despliegues de Kubernetes utilizando un gráfico de Helm.
Este artículo describirá los pasos genéricos para alojar Bitwarden en Kubernetes. Guías específicas del proveedor están disponibles para profundizar en cómo podrías alterar una implementación basada en las ofertas específicas de cada proveedor:
Antes de proceder con la instalación, asegúrese de que se cumplan los siguientes requisitos:
kubectl está instalado.
Helm 3 está instalado.
Tienes un certificado SSL y una clave o acceso para crear uno a través de un proveedor de certificados.
Tienes un servidor SMTP o acceso a un proveedor de SMTP en la nube.
Una clase de almacenamiento que admite ReadWriteMany.
Tienes una identificación de instalación y una clave obtenida de https://bitwarden.com/host.
Agrega el repositorio a Helm usando los siguientes comandos:
Bashhelm repo add bitwarden https://charts.bitwarden.com/ helm repo update
Crea un espacio de nombres para desplegar Bitwarden. Nuestra documentación asume un espacio de nombres llamado Bitwarden
, así que asegúrate de modificar los comandos si eliges un nombre diferente.
Bashkubectl create namespace bitwarden
Crea un archivo de configuración my-values.yaml
, que utilizarás para personalizar tu implementación, utilizando el siguiente comando:
Bashhelm show values bitwarden/self-host > my-values.yaml
Como mínimo, debes configurar los siguientes valores en tu archivo my-values.yaml
:
Valor | Descripción |
---|---|
| El dominio que apuntará a la dirección IP pública de tu clúster. |
| Si usar el controlador de ingreso nginx definido en el gráfico (ver un ejemplo usando un controlador de ingreso no incluido). |
| Por ejemplo, |
| Anotaciones para agregar al controlador de ingreso. Si está utilizando el controlador nginx incluido, se proporcionan valores predeterminados que debe descomentar y personalizar según sea necesario. |
| Si estás utilizando el controlador nginx predeterminado, se proporcionan valores predeterminados que puedes personalizar según sea necesario. |
| El nombre de tu certificado TLS. Caminaremos a través de un ejemplo más tarde, así que ingrésalo ahora si lo tienes o vuelve más tarde. |
| El nombre de su emisor de certificado TLS. Caminaremos a través de un ejemplo más tarde, así que ingrésalo ahora si lo tienes o vuelve más tarde. |
| Dirección de correo electrónico utilizada para invitaciones, típicamente |
| El nombre de host o la dirección IP de su servidor SMTP. |
| El puerto SMTP utilizado por el servidor SMTP. |
| Si su servidor SMTP utiliza un protocolo de cifrado ( |
| Establezca en |
| Por defecto, |
| El nombre de la clase de almacenamiento compartido, que deberá proporcionar y debe admitir ReadWriteMany (vea un ejemplo usando Azure File Storage) a menos que sea un clúster de un solo nodo. |
| El nombre de tu objeto secreto de Kubernetes. Crearás este objeto en el próximo paso, así que decide un nombre ahora o vuelve a este valor más tarde. |
| Si usar o no el pod SQL incluido en el gráfico. Solo establezca en |
| El pod SCIM está desactivado por defecto. Para habilitar el pod SCIM, establece el valor |
| Aunque no es necesario, recomendamos ajustar a |
Crea un objeto secreto de Kubernetes para establecer, como mínimo, los siguientes valores:
Valor | Descripción |
---|---|
| Una id de instalación válida obtenida de https://bitwarden.com/host. Para obtener más información, consulte ¿Para qué se utilizan mi ID de instalación y mi clave de instalación? |
| Una clave de instalación válida obtenida de https://bitwarden.com/host. Para obtener más información, consulte ¿Para qué se utilizan mi ID de instalación y mi clave de instalación? |
| Un nombre de usuario válido para su servidor SMTP. |
| Una contraseña válida para el nombre de usuario ingresado del servidor SMTP. |
| ID de cliente para el Servicio de Validación YubiCloud o el Servidor de Validación Yubico autoalojado. Si es YubiCloud, obtenga su ID de cliente y clave secreta aquí. |
| Clave secreta para el Servicio de Validación YubiCloud o el Servidor de Validación Yubico autoalojado. Si es YubiCloud, obtenga su ID de cliente y clave secreta aquí. |
| Tu clave API de HaveIBeenPwned (HIBP), disponible aquí. Esta clave permite a los usuarios ejecutar el informe de filtración de datos y verificar su contraseña maestra para presencia en filtraciones cuando crean una cuenta. |
Si estás utilizando el pod SQL de Bitwarden, Si estás utilizando tu propio servidor SQL, | Credenciales para la base de datos conectada a tu instancia de Bitwarden. Lo que se requiere dependerá de si está utilizando el pod SQL incluido o un servidor SQL externo. |
Por ejemplo, usar el comando kubectl create secret
para establecer estos valores se vería de la siguiente manera:
advertencia
Este ejemplo registrará comandos en el historial de tu terminal. Otros métodos pueden ser considerados para ajustar de manera segura un secreto.
Bashkubectl create secret generic custom-secret -n bitwarden \
--from-literal=globalSettings__installation__id="REPLACE" \
--from-literal=globalSettings__installation__key="REPLACE" \
--from-literal=globalSettings__mail__smtp__username="REPLACE" \
--from-literal=globalSettings__mail__smtp__password="REPLACE" \
--from-literal=globalSettings__yubico__clientId="REPLACE" \
--from-literal=globalSettings__yubico__key="REPLACE" \
--from-literal=globalSettings__hibpApiKey="REPLACE" \
--from-literal=SA_PASSWORD="REPLACE"
No olvides establecer el valor de secrets.secretName:
en my-values.yaml
al nombre del secreto creado, en este caso custom-secret
.
El despliegue requiere un certificado y clave TLS, o acceso a la creación de uno a través de un proveedor de certificados. El siguiente ejemplo te guiará a través del uso de cert-manager para generar un certificado con Let's Encrypt:
Instale cert-manager en el clúster utilizando el siguiente comando:
Bashkubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.11.0/cert-manager.yaml
Definir un emisor de certificados. Bitwarden recomienda usar la configuración de Staging en este ejemplo hasta que tus registros DNS hayan sido apuntados a tu clúster. Asegúrate de reemplazar el marcador de posición
correo electrónico:
con un valor válido:Bashcat <<EOF | kubectl apply -n bitwarden -f - apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-staging spec: acme: server: https://acme-staging-v02.api.letsencrypt.org/directory email: me@example.com privateKeySecretRef: name: tls-secret solvers: - http01: ingress: class: nginx #use "azure/application-gateway" for Application Gateway ingress EOF
Bashcat <<EOF | kubectl apply -n bitwarden -f - apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-production spec: acme: server: https://acme-v02.api.letsencrypt.org/directory email: me@example.com privateKeySecretRef: name: tls-secret solvers: - http01: ingress: class: nginx #use "azure/application-gateway" for Application Gateway ingress EOF
Si aún no lo has hecho, asegúrate de establecer los valores
general.ingress.cert.tls.name:
ygeneral.ingress.cert.tls.clusterIssuer:
enmy-values.yaml
. En este ejemplo, ajustarías:general.ingress.cert.tls.name: tls-secret
general.ingress.cert.tls.clusterIssuer: letsencrypt-staging
El gráfico de Helm autoalojado de Bitwarden te permite incluir otros archivos de manifiesto de Kubernetes ya sea antes o después de la instalación. Para hacer esto, actualiza la sección rawManifests
del gráfico (aprende más). Esto es útil, por ejemplo, en escenarios donde quieres usar un controlador de ingreso distinto al controlador nginx definido por defecto.
Para instalar Bitwarden con la configuración establecida en my-values.yaml
, ejecute el siguiente comando:
Bashhelm upgrade bitwarden bitwarden/self-host --install --namespace bitwarden --values my-values.yaml
¡Felicidades! Bitwarden ahora está en funcionamiento en https://your.domain.com
, según se define en my-values.yaml
. Visita la caja fuerte web en tu navegador web para confirmar que está funcionando. Ahora puedes registrar una nueva cuenta e iniciar sesión.
Necesitará haber configurado una configuración SMTP y secretos relacionados para verificar el correo electrónico de su nueva cuenta.
En este repositorio, hemos proporcionado dos trabajos de ejemplo ilustrativos para hacer copias de seguridad y restaurar la base de datos en el pod de la base de datos de Bitwarden. Si está utilizando su propia instancia de SQL Server que no se implementó como parte de este gráfico de Helm, siga las políticas de respaldo y restauración de su empresa.
Las copias de seguridad de la base de datos y las políticas de copia de seguridad dependen en última instancia del implementador. La copia de seguridad podría programarse fuera del clúster para ejecutarse a intervalos regulares, o podría modificarse para crear un objeto CronJob dentro de Kubernetes con fines de programación.
El trabajo de respaldo creará versiones con marca de tiempo de los respaldos anteriores. La copia de seguridad actual simplemente se llama vault.bak
. Estos archivos se colocan en el volumen persistente de copias de seguridad de MS SQL. El trabajo de restauración buscará vault.bak
en el mismo volumen persistente.
Sugerir cambios en esta página
¿Cómo podemos mejorar esta página para usted?
Si tiene preguntas técnicas, sobre facturación o sobre el producto, póngase en contacto con el servicio de asistencia.