зеркало из
				https://github.com/iharh/notes.git
				synced 2025-10-31 05:36:08 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			49 строки
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			49 строки
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| https://github.com/hashicorp/vault-examples
 | |
| https://github.com/hashicorp/hello-vault-go
 | |
| 
 | |
| ********************************************************************************************************************************
 | |
| Статичные и долгосрочные учетные данные представляют собой огромную угрозу, так как в случае их утечки злоумышленники могут беспрепятственно получить доступ к системам.
 | |
| Один из вариантов решения это краткосрочные учетные данные, которые действуют только в течение ограниченного времени и автоматически истекают.
 | |
| Предположим, что у вас уже есть настроенная система аутентификации, тогда нам нужно настроить динамическую генерацию учётных данных:
 | |
| 1. Для начала активируем secret engine
 | |
| 
 | |
| Для этого используем простую команду;
 | |
| vault secrets enable database
 | |
| 
 | |
| После чего пропишем подключение к БД:
 | |
| vault write database/config/my-postgresql-database \
 | |
|   plugin_name=postgresql-database-plugin \
 | |
|   connection_url="postgresql://{{username}}:{{password}}@localhost:5432/mydb?sslmode=disable" \
 | |
|   allowed_roles="my-role" \
 | |
|   username="postgres" \
 | |
|   password="my-secret-password"
 | |
| 
 | |
| 2. Далее необходимо создать роль, которая будет использоваться для генерации учетных данных
 | |
| 
 | |
| Команда для создания роли:
 | |
| vault write database/roles/my-role \
 | |
|   db_name=my-postgresql-database \
 | |
|   creation_statements="CREATE ROLE {{name}} WITH LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expire_time}}'" \
 | |
|   default_ttl="1h" \
 | |
|   max_ttl="24h"
 | |
| 
 | |
| 3. Теперь вы можете генерировать учетные данные для вашей роли.
 | |
| 
 | |
| Команда для генерации:
 | |
| vault read database/creds/my-role
 | |
| 
 | |
| Это сгенерирует временные учетные данные для подключения к базе данных, например:
 | |
| Key                Value
 | |
| ---                -----
 | |
| username           vault-xyz123
 | |
| password           GtU7GmHJwU69
 | |
| lease_id           database/creds/my-role/XYZ123
 | |
| lease_duration     1h
 | |
| lease_renewable    true
 | |
| 
 | |
| 4. Автоматизация процесса и управление учетными данными
 | |
| 
 | |
| Для автоматического продления или обновления учетных данных можно использовать API Vault для повторной генерации учетных данных по мере необходимости. 
 | |
| vault lease renew database/creds/my-role/XYZ123
 | |
| ********************************************************************************************************************************
 | 
