Infisical: Difference between revisions

From Svacer Wiki
No edit summary
m (minor fixes)
 
(10 intermediate revisions by one other user not shown)
Line 1: Line 1:
В '''Svacer''' реализована поддержка получения секретов из хранилища секретов [https://infisical.com/ Infisical]. Для интеграции '''Svacer''' с хранилищем необходимо в конфигурационном файле '''Svacer''' добавить секцию '''security.infisical''', например
В '''Svacer''' реализована поддержка получения секретов из хранилища секретов [https://infisical.com/ Infisical]. Для интеграции '''Svacer''' с хранилищем необходимо в конфигурационном файле '''Svacer''' добавить секцию '''security.infisical''':


```mediawiki
<pre>
<nowiki>
{{#yamlexport:
security:
security:
  infisical:
  infisical:
Line 11: Line 9:
   project_id: "09a8bf0a-7986-4c22-b663-8bc1a9a20664"
   project_id: "09a8bf0a-7986-4c22-b663-8bc1a9a20664"
   url: "http://127.0.0.1:8181"
   url: "http://127.0.0.1:8181"
}}
</pre>
</nowiki>
```


в которой будет описано подключение к проекту в infisical, в котором хранятся нужные секреты. В таблице приведено описание параметров, используемых в секции
В данной секции указывается подключение к проекту, созданному в '''Infisical''', в котором хранятся нужные секреты. В таблице приведено описание параметров, используемых в секции
{| class="wikitable"
|+
!Название
!Назначение
|-
|env
|Тип секрета (dev, prog, stage)
|-
|client
|ID машины (в терминах infisical это и программа и хост)
|-
|secret
|Секрет машины для аутентификации
|-
|project_id
|ID проекта, в котором хранятся секреты
|-
|url
|Хост infisical с указанием порта и схемы
|}
После указания секции '''security.infisical''', можно использовать ссылки вида <code>infisical:<secret_path></code> в значениях параметров конфигурационного файла '''Svacer''', допускающих получение параметров из хранилища. К таким параметрам относятся следующие:


- env; Тип секрета (dev, prog, stage)
* tls.certFile
* tls.keyFile
* pg
* ldap.[name].connection.password


- client; ID машины (в терминах infisical это и программа и хост)
{{Note|type=warn|text=Названия секретов (значения <secret_path>) регистрозависимы}}


- secret; Секрет машины для аутентификации
Ниже приводится пример указания ссылок для получения данных параметров


- project_id; ID проекта, в котором хранятся секреты
'''pg: infisical:/pg/conn'''
 
security:
- url; Хост infisical с указанием порта и схемы
  tls:
 
      '''certFile: infisical:/tls/cert
После указания секции security.infisical, можно использовать строку вида infisical:<secret_path> в значениях параметров, допускающих получение параметров из хранилища. К таким параметрам относятся:
      keyFile: infisical:/tls/pkey'''
 
  infisical:  
1. tls.certFile
    .... Секция конфигурации Infisical ...
 
auth:
2. tls.keyFile
  ldap:
 
    servers:
3. pg
    - name: freeIPA
 
      basedn: dc=example,dc=com
4. ldap.?.connection.password
      useGroup: false
 
      type: freeIPA
Внесены изменения. В полях certFile и keyFIle могут теперь находится не только пути к файлам, но и значения вида: infisical:value, где value - это путь к секрету с именем на конце. В примере /tls/CERT означает, то в папке /tls будет запрошен секрет с именем CERT. Аналогично и для keyFile. В данной реализации никакие файлы в файловой системе не создаются
      hideURL: true
 
      checkAlivePeriod: 1
<nowiki>####</nowiki> Значение PG
      connection:
 
        url: ldap://svacer.local:7001
Может содержать ссылку на ключ в infisical, аналогичную с TLS. В примере: будет запрошен секрет PG_CONN в корне проекта.
        connectAs: cn=admin,dc=example,dc=com
 
        '''password: infisical:/ldap/freeipa/admin_psw'''
При старте сервера добавлена проверка на наличие конфигурации Infisical. Если она есть, то будет попытка получения секрета и если она удачна, то строка подключения к БД будет взята из infisical
      user:
 
        basedn: ou=users
В случае указания PG в cli и в конфиге - приоритет у cli
        filter: "(&(objectClass=inetOrgPerson)(memberOf=*))"
 
        login: cn
<nowiki>##</nowiki> Примечания
        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: <nowiki>''</nowiki>
        filter: "(&(objectClass=inetOrgPerson)(memberOf=*))"
        login: cn
        group: dn
        info:
          display: cn
          email: mail
          firstName: givenName
          lastName: sn
      enabled: true

Latest revision as of 16:49, 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
Названия секретов (значения <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