Bitwarden
Auf einen Blick
| Thema | Beschreibung |
|---|---|
| URL | https://vault.prod.az.automit.de/ |
| Hauptverantwortlicher | Michael Kamleiter |
| Terraform Modul | module-bitwarden |
| Terraform code | prod-bitwarden |
1. Beschreibung der Anwendung
1.1 Hauptzielsetzung und Funktionen im Überblick
Bitwarden ist das zentrale Passwortmanagement Tool der automIT AG. Es dient als einziger Ort um passwörter zu erstellen, diese Abzuspeichern und diese wiederum in benötigten Anwendungen einzufügen. Dadurch kann sichergestellt werden, dass jederzeit alle Passwortrichtlinien der Firma eingehalten werden. [ LINK ] Des Weiteren kann auf die TOTP FUnktion von Bitwarden zurückgegriffen werden. Sollte es nötig sein, Passwörter oder anderweitige Sicherheitsrelevanten Daten zwischen Mitarbeitern zu transferrieren, so können die sog. Collections dafür verwendet werden.
1.2 Verantwortlichkeiten
| Thema | Verantwortlicher |
|---|---|
| Aufbau | Michael Kamleiter |
| Betriebs u. Updatemanagement | Michael Kamleiter |
| Backup u. Recovery | Michael Kamleiter |
1.3 Ansprechpartner / Hersteller
Bitwarden ist ein Produkt der Firma Bitwarden Inc. mit Hauptsitz in Kalifornien. https://bitwarden.com/about/
Zum Hosting wird hauptsächlich eine Virtuelle Maschine der Azure Cloud verwendet. https://azure.microsoft.com/de-de/services/virtual-machines/
2. Systemarchitektur
GDrive: INT_2022_automIT/Architektur/automit-prod-bitwarden.png3. Installation und Konfiguration
Zur Installation der Infrastruktur wird Terraform (https://www.terraform.io/) mithilfe des Azure Providers (https://registry.terraform.io/providers/hashicorp/azurerm/) verwendet.
Die benötigten Konfigurationen sind hierbei auf 2 unterschiedliche GIT repositories aufgeteilt.
- module-bitwarden: Terraformmodul welches die Objekte + Logik enthält
- prod-bitwarden: Instanziierung des Moduls für die Produktive Subscription.
Die Entscheidung für diese Trennung wurde getroffen, damit das Setup jederzeit in einer anderen Subscription ausgerollt und getestet werden kann
Um den Bitwarden Server zu konfigurieren muss wie folgt vorgegangen werden:
git clone https://automITde@dev.azure.com/automITde/automIT/_git/module-bitwarden
git clone https://automITde@dev.azure.com/automITde/automIT/_git/prod-bitwarden
cd prod-bitwarden/tf
terraform init
terraform plan
terraform apply
Zur Installation und Konfiguration von Bitwarden auf der bereitgestellten Infrastruktur, wird ansible verwendet (https://www.ansible.com/) Hierfür wurde ein Ansible Playbook erstellt und dieses ebenfalls im Git abgelegt:
git clone git@ssh.dev.azure.com:v3/automITde/automIT/bitwarden
git checkout main
cd bitwarden/ansible
ansible-playbook bitwarden.yaml -i inventory/hosts.yaml --vault-id=@prompt
4. Verfügbarkeit
4.1 Betriebszeiten und Wartungsfenster
Die Bitwarden Erreichbarkeit wird unter der Woche werktätig zwischen 06:00 und 22:00 sichergestellt Hierbei wird eine Verfügbarkeit von 99,9% garantiert. Vorhandene Wartungsfenster:
- Mittwochs, 06:00 - 09:00
Sollte eine Wartung in einem dieser Zeiträume geschehen, so muss dies mit einem Tag vorlauf im Team angekündigt werden.
5. System-/Anwendungsbetrieb
5.1 Rollen und Aufgaben
Folgende speziellen Rollen sind für Bitwarden vorgesehen. Jeder nicht erwähnte Mitarbeiter findet sich in der Rolle “User” wieder.
| Rolle | Mitarbeiter |
|---|---|
| Systemadmin | Michael Kamleiter |
| Projektadmin | Christian Spies |
5.2 Datensicherung
Jeden morgen um 06:00 wird ein Backup des gesamten Bitwarden erstellt. Dieses wird auf dem Server abgelegt. Der Server selbst ist in einmal täglichen Backup seitens Azure integriert und hier werden jeweils die letzten 7 stände aufbewahrt
5.3 Systemspezifische Tätigkeiten
5.3.1 Anlage von neuen collections
Für jeden Kunden/ jedes größere Fachliche Thema, sollte eine Collection im Bitwarden angelegt sein. Hierfür meldet sich ein Admin auf der Weboberfläche an… TODO
5.4 Updatemanagement
Das Updatemanagement für Bitwarden wird in 2 Teile aufgeteilt.
5.4.1 Update des VM Betriebsystems
Betriebssystem Updates werden jedee Woche automatisiert vom Azure Update Management eingespielt.
5.4.2 Upgrade der Bitwarden Software
Zum updaten der bitwarden software, wird das mitgelieferte Update script verwendet.
ssh vault.prod.az.automit.de
sudo -i
cd /opt/bitwarden/
./bitwarden.sh updateself
./bitwarden.sh update
5.5.3 Erneuern des Zertifikats
Es wird ein Lets Encrypt Zertifikat verwendet, um den Zugriff auf die Weboberfläche zu verschlüsseln.
Dieses Zertifikat hat eine Laufzeit von 3 Monaten und muss dementsprechend regelmäßig erneuert werden.
Hier liegt auf dem Host unter /root/renew-certbot.sh ein script, welches ausgeführt werden muss.
Nach der Erneuerung muss Bitwarden einmal neu gestartet werden.
6. Sicherheit
Der Zugriff auf das Bitwarden ist weitestgehend eingeschränkt. Zugang erhält man nur aus dem Firmennetz der automIT AG. Der Zugriff auf die Weboberfläche ist mithilfe eines von Lets Encrypt ausgestellten Zertifikats vor Angriffen geschützt.
6.1 Berechtigungskonzept und Berechtigungen
6.1.1 auf der Weboberfläche
Jeder Mitarbeiter erhält ein Konto am Firmeneigenen Passwortsafe. Dieses Konto muss durch 2 Faktor Authentifizierung mithilfe eines Yubikeys geschützt werden, sonst ist kein Zugriff möglich. Standardmäßig haben User nur Zugriff auf ihre persönlichen Passwörter. Um erweiterten Zugriff zu erhalten, muss ein Projekt Administrator dem User die jeweilige Berechtigung auf eine collection zuweisen. Dies erfolgt im Rahmen der Projektbeauftragung.
6.1.2 auf die Systeminfrastruktur
Der Zugriff auf die Systeminfrastruktur ist eingeschränkt. Nur Admins mit Zugriff zum eigens erstellten SSH Private key haben zugriff auf die VM und können dadurch Änderungen an der Infrastrutkur vornehmen. Zusätzlich wird Administrationszugriff auf die Azure Subscription “automit-prod” benötigt.
7. Störungsmanagement
7.1 Restart und Wiederanlauf
ssh vault.prod.az.automit.de
sudo -i
cd /opt/bitwarden/
./bitwarden.sh restart