Infisical
В Svacer реализована поддержка получения секретов из хранилища секретов Infisical. Для интеграции Svacer с хранилищем необходимо в конфигурационном файле Svacer добавить секцию security.infisical:
security: infisical: env: "dev" client: "ba06aa0a-62fd-451c-85c4-ae547a4b4572" secret: "de6b1544af08307c249bf699455f1182e781095de4aa178998ab63c8824e570b" project_id: "09a8bf0a-7986-4c22-b663-8bc1a9a20664" url: "http://127.0.0.1:8181"
В данной секции указывается подключение к проекту, созданному в Infisical, в котором хранятся нужные секреты. В таблице приведено описание параметров, используемых в секции
| Название | Назначение |
|---|---|
| env | Тип секрета (dev, prog, stage) |
| client | ID машины (в терминах infisical это и программа и хост) |
| secret | Секрет машины для аутентификации |
| project_id | ID проекта, в котором хранятся секреты |
| url | Хост infisical с указанием порта и схемы |
После указания секции security.infisical, можно использовать ссылки вида infisical:<secret_path> в значениях параметров конфигурационного файла Svacer, допускающих получение параметров из хранилища. К таким параметрам относятся следующие:
- tls.certFile
- tls.keyFile
- pg
- ldap.[name].connection.password
Названия секретов (значения <secret_path>) регистрозависимы
Ниже приводится пример указания ссылок для получения данных параметров
pg: infisical:/pg/conn
security:
tls:
certFile: infisical:/tls/cert
keyFile: infisical:/tls/pkey
infisical:
.... Секция конфигурации Infisical ...
auth:
ldap:
servers:
- name: freeIPA
basedn: dc=example,dc=com
useGroup: false
type: freeIPA
hideURL: true
checkAlivePeriod: 1
connection:
url: ldap://svacer.local:7001
connectAs: cn=admin,dc=example,dc=com
password: infisical:/ldap/freeipa/admin_psw
user:
basedn: ou=users
filter: "(&(objectClass=inetOrgPerson)(memberOf=*))"
login: cn
info:
display: cn
email: mail
firstName: givenName
lastName: sn
enabled: true
- name: example1
basedn: dc=example,dc=com
useGroup: false
hideURL: true
checkAlivePeriod: 1
connection:
url: ldap://svacer.local:7001
connectAs: cn=admin,dc=example,dc=com
password: infisical:/ldap/example/admin_psw
user:
basedn: ''
filter: "(&(objectClass=inetOrgPerson)(memberOf=*))"
login: cn
group: dn
info:
display: cn
email: mail
firstName: givenName
lastName: sn
enabled: true