Spring Cloud Vault - лучшее место для хранения Secret-Id и Role-Id

Я использую библиотеку Spring Cloud Vault для доступа к своим секретам с сервера Vault.

В настоящее время я храню все параметры, такие как role-id, secret-id, host, portи т. д., как переменные среды, а затем вводить это в мой bootstrap.yml моего приложения Spring-boot. Ниже мой YAML файл

spring:
 cloud:
    vault:
      authentication: APPROLE
      app-role:
        role-id: ${role-id}
        secret-id: ${secret-id}
      host: ${host}
      port: ${port}
      scheme: ${scheme}

Я застрял в Управлении Role-Id и Secret-Id Убежища. Очевидно, что Vault плохо защищает наши секреты, если люди могут легко достать эти 2 фрагмента информации - они действительно сами являются секретами.

Какая отраслевая передовая практика? Role-Id а также Secret-Id защищены? Мы уже обдумали такие идеи, как хранение в конфигурационном сервере, хранение в переменной среды, хранение в облаке. ИБП.

Тем не менее, мы хотели бы понять лучшие практики в этом..

0 ответов

Я столкнулся с той же проблемой, и вот что вы можете сделать. Прежде всего, приложение должно иметь собственного системного пользователя и запускаться от имени этого пользователя. Затем в том же каталоге, что и ваш файл jar/war, вы можете создать файл bootstrap.properties, содержащий:

spring.cloud.vault.app-role.secret-id=*your-secret-for-role-id*

Вот пример вывода ls:

-rw-------. 1 app app bootstrap.properties
-rwxr--r--. 1 app app app.jar

Пользователь приложения должен быть владельцем этого файла свойств, и только ему должно быть разрешено читать bootstrap.properties. Это защищает ваш секрет от несанкционированного доступа, если у вас нет прав root или пользователя приложения.

Другие вопросы по тегам