2 KiB
About
This Python module retrieves passwords for Passbolt groups to make them available in Saltstack Pillar.
License
MIT
Setup
-
Clone this repo
-
Go to directory, run (requires
python3-setuptools
)python3 setup.py install
-
Create an Passbolt account for the Salt master.
-
Copy the private and public PGP key files to
/etc/salt
. -
Import the private key with
gpg --import /etc/salt/passbolt_private.asc
-
Create a
/etc/salt/passbolt.ini
file with the following content:[PASSBOLT] SERVER = https://passbolt.example.com #SERVER_PUBLIC_KEY_FILE = <optional: server_public.asc> USER_FINGERPRINT = [REPLACE WITH GPG KEY FINGERPRINT] USER_PUBLIC_KEY_FILE = /etc/salt/passbolt_public.asc USER_PRIVATE_KEY_FILE = /etc/salt/passbolt_private.asc PASSPHRASE = [REPLACE WITH PASSBOLT USER PASSWORD]
-
Change file permissions:
chown salt /etc/salt/passbolt* chmod 600 /etc/salt/passbolt*
-
Create Pillar sls files for the different Salt minions. Use the example below as content for the sls files and replace the group UUID. Hint: you can find the Group UUID with the network tool of the browser by clicking on a group.
#!py def run(): from salt_passbolt import fetch_passbolt_passwords return fetch_passbolt_passwords("27b9abd4-af9b-4c9e-9af1-cf8cb963680c")
You can also look into the example directory.
-
In state, reference secrets with their UUID. See the
example/salt/important_secrets/files/secret.conf
. Hint: you can find the secret UUID in the URL of your browser by clicking on the checkbox of a secret.password={{ pillar['passbolt']['3ec2a739-8e51-4c67-89fb-4bbfe9147e17'] }}
YAML Replacement Structure
If the Passbolt server is not available, for example during local development, file with the following format can replace the Python code mentioned in step 8:
passbolt:
3ec2a739-8e51-4c67-89fb-4bbfe9147e17: MY_SECRET