Infisical: Difference between revisions
Chernykov sv (talk | contribs) No edit summary |
Chernykov sv (talk | contribs) No edit summary |
||
Line 41: | Line 41: | ||
Ниже приводится пример указания ссылок для получения данных параметров: | Ниже приводится пример указания ссылок для получения данных параметров: | ||
<pre> | |||
auth: | |||
svacer: | |||
enabled: true | |||
ldap1: | |||
servers: | |||
- name: freeIPA | |||
basedn: dc=example,dc=com | |||
useGroup: true | |||
type: freeIPA | |||
hideURL: true | |||
checkAlivePeriod: 1 | |||
connection: | |||
url: ldap://svacer.local:7001 | |||
connectAs: cn=admin,dc=example,dc=com | |||
password: '12345678' | |||
group: | |||
basedn: ou=groups | |||
filter: "(&(objectClass=groupOfUniqueNames)(cn=ipa-svacer))" | |||
userMember: _ | |||
display: cn | |||
user: | |||
basedn: ou=users | |||
filter: "(&(objectClass=inetOrgPerson)(memberOf=*))" | |||
login: cn | |||
group: memberOf | |||
info: | |||
display: cn | |||
email: mail | |||
firstName: givenName | |||
lastName: sn | |||
enabled: true | |||
- name: postgrespo | |||
basedn: dc=example,dc=com | |||
useGroup: true | |||
hideURL: true | |||
checkAlivePeriod: 1 | |||
connection: | |||
url: ldap://svacer.local:7001 | |||
connectAs: cn=admin,dc=example,dc=com | |||
password: '12345678' | |||
group: | |||
basedn: '' | |||
filter: "(&(objectClass=groupOfUniqueNames)(cn=gitlab))" | |||
userMember: uniqueMember | |||
display: cn | |||
svacerRole: cn | |||
user: | |||
basedn: '' | |||
filter: "(&(objectClass=inetOrgPerson)(memberOf=*))" | |||
login: cn | |||
group: dn | |||
info: | |||
display: cn | |||
email: mail | |||
firstName: givenName | |||
lastName: sn | |||
enabled: true | |||
</pre> | |||
Внесены изменения. В полях certFile и keyFIle могут теперь находится не только пути к файлам, но и значения вида: infisical:value, где value - это путь к секрету с именем на конце. В примере /tls/CERT означает, то в папке /tls будет запрошен секрет с именем CERT. Аналогично и для keyFile. В данной реализации никакие файлы в файловой системе не создаются | Внесены изменения. В полях certFile и keyFIle могут теперь находится не только пути к файлам, но и значения вида: infisical:value, где value - это путь к секрету с именем на конце. В примере /tls/CERT означает, то в папке /tls будет запрошен секрет с именем CERT. Аналогично и для keyFile. В данной реализации никакие файлы в файловой системе не создаются |
Revision as of 11:33, 16 May 2025
В 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
Ниже приводится пример указания ссылок для получения данных параметров:
auth: svacer: enabled: true ldap1: servers: - name: freeIPA basedn: dc=example,dc=com useGroup: true type: freeIPA hideURL: true checkAlivePeriod: 1 connection: url: ldap://svacer.local:7001 connectAs: cn=admin,dc=example,dc=com password: '12345678' group: basedn: ou=groups filter: "(&(objectClass=groupOfUniqueNames)(cn=ipa-svacer))" userMember: _ display: cn user: basedn: ou=users filter: "(&(objectClass=inetOrgPerson)(memberOf=*))" login: cn group: memberOf info: display: cn email: mail firstName: givenName lastName: sn enabled: true - name: postgrespo basedn: dc=example,dc=com useGroup: true hideURL: true checkAlivePeriod: 1 connection: url: ldap://svacer.local:7001 connectAs: cn=admin,dc=example,dc=com password: '12345678' group: basedn: '' filter: "(&(objectClass=groupOfUniqueNames)(cn=gitlab))" userMember: uniqueMember display: cn svacerRole: cn user: basedn: '' filter: "(&(objectClass=inetOrgPerson)(memberOf=*))" login: cn group: dn info: display: cn email: mail firstName: givenName lastName: sn enabled: true
Внесены изменения. В полях certFile и keyFIle могут теперь находится не только пути к файлам, но и значения вида: infisical:value, где value - это путь к секрету с именем на конце. В примере /tls/CERT означает, то в папке /tls будет запрошен секрет с именем CERT. Аналогично и для keyFile. В данной реализации никакие файлы в файловой системе не создаются
#### Значение PG
Может содержать ссылку на ключ в infisical, аналогичную с TLS. В примере: будет запрошен секрет PG_CONN в корне проекта.
При старте сервера добавлена проверка на наличие конфигурации Infisical. Если она есть, то будет попытка получения секрета и если она удачна, то строка подключения к БД будет взята из infisical
В случае указания PG в cli и в конфиге - приоритет у cli
## Примечания
Названия секретов регистрозависимы