+vault
This commit is contained in:
128
HashiCorp_Vault.md
Normal file
128
HashiCorp_Vault.md
Normal file
@ -0,0 +1,128 @@
|
||||
|
||||
Загрузить в HashiCorp Vault настройки можно так:
|
||||
|
||||
```sh
|
||||
vault kv put secret/org-ccalm-jwt \
|
||||
jwt.secret=my-secret-value \
|
||||
db.user=admin \
|
||||
db.pass=123456
|
||||
```
|
||||
|
||||
Разбор параметров:
|
||||
1. vault kv put – команда для записи ключей и значений в KV-хранилище Vault.
|
||||
2. secret/org-ccalm-jwt – путь к секрету.
|
||||
* secret/ – это backend-хранилище (оно должно быть включено в Vault).
|
||||
* org-ccalm-jwt – имя секрета, под которым сохраняются параметры.
|
||||
3. jwt.secret=my-secret-value – ключ jwt.secret со значением my-secret-value.
|
||||
4. db.user=admin – ключ db.user со значением admin.
|
||||
5. db.pass=123456 – ключ db.pass со значением 123456.
|
||||
|
||||
|
||||
# 🚀 Установка и настройка HashiCorp Vault на Windows
|
||||
|
||||
## 📌 1. Установка HashiCorp Vault
|
||||
|
||||
1. **Скачайте Vault CLI** с официального сайта:
|
||||
🔗 [https://developer.hashicorp.com/vault/downloads](https://developer.hashicorp.com/vault/downloads)
|
||||
2. Распакуйте архив и **добавьте путь к `vault.exe` в `PATH`**:
|
||||
- Кликните **ПКМ → Этот компьютер → Свойства → Дополнительные параметры системы**.
|
||||
- В **Переменные среды** добавьте путь к папке с `vault.exe`.
|
||||
3. Откройте **cmd** или **PowerShell** и проверьте установку командой:
|
||||
```sh
|
||||
vault --version
|
||||
```
|
||||
Если всё ОК, увидите версию Vault. Примерно такую: Vault v1.18.4 (503be623a3697e8c10c254dc87d26492c46753e1), built 2025-01-29T13:57:54Z
|
||||
|
||||
---
|
||||
|
||||
## 📌 2. Запуск Vault-сервера (разработческий режим)
|
||||
|
||||
Чтобы локально запустить Vault в **dev-режиме** (без авторизации), выполните:
|
||||
```sh
|
||||
vault server -dev
|
||||
```
|
||||
После запуска он покажет **root-токен** (сохраните его!):
|
||||
```plaintext
|
||||
Unseal Key: 9OSMJSPNCs9IT/H5OzLz17jW/vogeCAWQbXy2K7LRPQ=
|
||||
Root Token: hvs.JDIyKgDMagA0WyIhLFQ4mAjZ
|
||||
```
|
||||
|
||||
Теперь Vault работает по адресу:
|
||||
```
|
||||
http://127.0.0.1:8200
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📌 3. Экспорт токена (чтобы не вводить каждый раз)
|
||||
|
||||
Откройте **PowerShell** и выполните:
|
||||
```sh
|
||||
$env:VAULT_ADDR="http://127.0.0.1:8200"
|
||||
$env:VAULT_TOKEN="hvs.JDIyKgDMagA0WyIhLFQ4mAjZ"
|
||||
```
|
||||
(Замените `hvs.JDIyKgDMagA0WyIhLFQ4mAjZ` на свой токен.)
|
||||
|
||||
Теперь можно работать с Vault без ввода токена каждый раз.
|
||||
|
||||
---
|
||||
|
||||
## 📌 4. Запись значений в Vault на Windows
|
||||
|
||||
Если нужно с версионированием то Используйте команду:
|
||||
```sh
|
||||
vault kv put secret/org-ccalm-jwt jwt.secret=my-secret-value db.user=admin db.pass=123456
|
||||
```
|
||||
Если у вас **KV v1**, используйте:
|
||||
```sh
|
||||
vault write secret/org-ccalm-jwt jwt.secret=my-secret-value db.user=admin db.pass=123456
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📌 5. Проверка сохранённых данных
|
||||
|
||||
Чтобы посмотреть, что записано в Vault:
|
||||
```sh
|
||||
vault kv get secret/org-ccalm-jwt
|
||||
```
|
||||
Если всё настроено правильно, вы увидите примерно такой вывод:
|
||||
```plaintext
|
||||
====== Metadata ======
|
||||
Key Value
|
||||
--- -----
|
||||
created_time 2025-02-24T12:00:00Z
|
||||
version 1
|
||||
|
||||
====== Data ======
|
||||
Key Value
|
||||
--- -----
|
||||
db.pass 123456
|
||||
db.user admin
|
||||
jwt.secret my-secret-value
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📌 6. Удаление данных из Vault
|
||||
|
||||
Удаление данных:
|
||||
```sh
|
||||
vault kv delete secret/org-ccalm-jwt
|
||||
```
|
||||
Полное уничтожение (без возможности восстановления):
|
||||
```sh
|
||||
vault kv destroy -versions=1 secret/org-ccalm-jwt
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Итог
|
||||
✅ Установили Vault CLI
|
||||
✅ Запустили Vault сервер (`vault server -dev`)
|
||||
✅ Экспортировали `VAULT_ADDR` и `VAULT_TOKEN`
|
||||
✅ Записали настройки в Vault
|
||||
✅ Проверили данные
|
||||
|
||||
Теперь можно интегрировать Vault в Spring Boot 🚀
|
||||
|
||||
@ -4,6 +4,15 @@ ____
|
||||
Refresh token токен действует 12 часов и за эти 12 часов не реже чем раз в 3 часа нужно обновить Refresh token ну и заодно Access token обновиться.
|
||||
Аccess token действует 20 минут (позже уменьшу до 10 минут) и его можно обновить в любое время, если будет просрочен выдаст 401 ошибку. Чтобы время от времени по расписанию не запрашивать обновление токена,
|
||||
можно сделать обвёртку для 2й отправки запроса, в случае выявления просрочки токена чтобы эта обвёртка отправляла запрос Refresh, а потом обратно в нужное место отправляла запрос.
|
||||
|
||||
Настройки хранятся в HashiCorp Vault и их можно загрузить туда так:
|
||||
|
||||
vault kv put secret/org-ccalm-jwt jwt.secret=my-secret-value db.user=admin db.pass=123456
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
____
|
||||
## Оглавление
|
||||
1. [Получить список разрешений для пользователя по Access token](#получить-список-разрешений-для-пользователя-по-Access-token)
|
||||
|
||||
@ -11,8 +11,16 @@ issuer:
|
||||
spring:
|
||||
application:
|
||||
name: kz_istransit_jwt
|
||||
cloud:
|
||||
vault:
|
||||
uri: http://localhost:8200 # URL твоего Vault
|
||||
token: hvs.JDIyKgDMagA0WyIhLFQ4mAjZ # Токен доступа (лучше подгружать из ENV)
|
||||
kv:
|
||||
enabled: true
|
||||
backend: secret # Название backend (например, `secret/` в Vault)
|
||||
default-context: application
|
||||
datasource:
|
||||
url: jdbc:postgresql://mcp.kz:5432/mcp
|
||||
url: jdbc:postgresql://10.101.1.6:5432/transit
|
||||
username: igor
|
||||
password: VnzbUdcePSLtg22ktz13
|
||||
driver-class-name: org.postgresql.Driver
|
||||
|
||||
@ -12,7 +12,7 @@ spring:
|
||||
application:
|
||||
name: kz_istransit_jwt
|
||||
datasource:
|
||||
url: jdbc:postgresql://mcp.kz:5432/mcp
|
||||
url: jdbc:postgresql://10.201.3.36:5432/mcp
|
||||
username: igor
|
||||
password: VnzbUdcePSLtg22ktz13
|
||||
driver-class-name: org.postgresql.Driver
|
||||
|
||||
@ -1,11 +1,19 @@
|
||||
#Серверные настройки должны браться с voult
|
||||
|
||||
server:
|
||||
port: 8082
|
||||
ssl:
|
||||
enabled: true
|
||||
key-store: classpath:keystore.jks
|
||||
key-store-password: MFNX344yh4
|
||||
#key-store-password: MFNX344yh4
|
||||
key-store-type: PKCS12
|
||||
|
||||
#server.ssl.key-store-password: MFNX344yh4
|
||||
spring:
|
||||
application:
|
||||
name: org-ccalm-jwt
|
||||
|
||||
|
||||
issuer:
|
||||
name: ccalm
|
||||
|
||||
|
||||
11
org_ccalm_jwt_vault.yml
Normal file
11
org_ccalm_jwt_vault.yml
Normal file
@ -0,0 +1,11 @@
|
||||
spring:
|
||||
application:
|
||||
name: org-ccalm-jwt
|
||||
cloud:
|
||||
vault:
|
||||
uri: http://localhost:8200 # URL твоего Vault
|
||||
token: my-root-token # Токен доступа (лучше подгружать из ENV)
|
||||
kv:
|
||||
enabled: true
|
||||
backend: secret # Название backend (например, `secret/` в Vault)
|
||||
default-context: application
|
||||
4
pom.xml
4
pom.xml
@ -63,6 +63,10 @@
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-vault-config</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
|
||||
Reference in New Issue
Block a user