80 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			80 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | == Vault server bootstrap | ||
|  | 
 | ||
|  | 1. Run vaul-start in one shell | ||
|  | 
 | ||
|  | 2. Open another shell and execute the command below: | ||
|  | > vault operator init | ||
|  | 
 | ||
|  | Unseal Key 1: Iwvpd4IVofhcmQ2HEIPs5HMUbz4tz6JhqmLZ6+1MhAPx | ||
|  | Unseal Key 2: ANQDXUFGGtLtt6grX25YsdmeKELhM/ioKWzwFukJIe2f | ||
|  | Unseal Key 3: 8MHyzFnOvlwVQzdWYJ3BIN4xPDOn8a4VemZ/Qe5HgurU | ||
|  | Unseal Key 4: ywT9YR9OfxIpA4l1RniNNCvSZWAuNZsAEFRyD7aqFOrp | ||
|  | Unseal Key 5: q1c7M+lnlT72jGLoCH+jjri6KGSBhc5lCzlT0I1R9URU | ||
|  | 
 | ||
|  | Initial Root Token: dee7107a-8819-0719-62a3-cea3ea854589 | ||
|  | 
 | ||
|  | ... | ||
|  | 
 | ||
|  | == Admin token setup | ||
|  | 
 | ||
|  | 1. Set the VAULT_TOKEN environment variable with the root token value  | ||
|  | export VAULT_TOKEN=d341fdaf-1cf9-936a-3c38-cf5eec94b5c0 (Linux)  | ||
|  | set VAULT_TOKEN=d341fdaf-1cf9-936a-3c38-cf5eec94b5c0 (Windows) | ||
|  | 
 | ||
|  | 2. Create another admin token | ||
|  | 
 | ||
|  | >vault token create -display-name=admin | ||
|  | Key                  Value | ||
|  | ---                  ----- | ||
|  | token                3779c3ca-9f5e-1d8f-3842-efa96d88de43  <=== this is the new root token | ||
|  | token_accessor       2dfa4031-973b-cf88-c749-ee6f520ecaea | ||
|  | token_duration       ∞ | ||
|  | token_renewable      false | ||
|  | token_policies       ["root"] | ||
|  | identity_policies    [] | ||
|  | policies             ["root"] | ||
|  | 
 | ||
|  | 3. Create ~/.vault-secret with your root token | ||
|  | 4. Unset the VAULT_TOKEN environment variable ! | ||
|  | 
 | ||
|  | === Test DB setup (MySQL only, for now) | ||
|  | 
 | ||
|  | 1. Create test db | ||
|  | 2. Create admin account used to create dynamic accounts: | ||
|  | 
 | ||
|  | create schema fakebank; | ||
|  | create user 'fakebank-admin'@'%' identified by 'Sup&rSecre7!' | ||
|  | grant all privileges on fakebank.* to 'fakebank-admin'@'%' with grant option; | ||
|  | grant create user on *.* to 'fakebank-admin' with grant option; | ||
|  | flush privileges; | ||
|  | 
 | ||
|  | 
 | ||
|  | === Database secret backend setup | ||
|  | > vault secrets enable database | ||
|  | 
 | ||
|  | ==== Create db configuration | ||
|  | > vault write database/config/mysql-fakebank ^ | ||
|  |   plugin_name=mysql-legacy-database-plugin ^ | ||
|  |   connection_url="{{username}}:{{password}}@tcp(127.0.0.1:3306)/fakebank" ^ | ||
|  |   allowed_roles="*" ^ | ||
|  |   username="fakebank-admin" ^ | ||
|  |   password="Sup&rSecre7!"  | ||
|  |    | ||
|  | ==== Create roles | ||
|  | > vault write database/roles/fakebank-accounts-ro ^ | ||
|  |     db_name=mysql-fakebank ^ | ||
|  |     creation_statements="CREATE USER '{{name}}'@'%' IDENTIFIED BY '{{password}}';GRANT SELECT ON fakebank.* TO '{{name}}'@'%';" ^ | ||
|  |     default_ttl="1h" ^ | ||
|  |     max_ttl="24h"   | ||
|  | 
 | ||
|  | > vault write database/roles/fakebank-accounts-rw ^ | ||
|  |     db_name=mysql-fakebank ^ | ||
|  |     creation_statements="CREATE USER '{{name}}'@'%' IDENTIFIED BY '{{password}}';GRANT SELECT,INSERT,UPDATE ON fakebank.* TO '{{name}}'@'%';" ^ | ||
|  |     default_ttl="5m" ^ | ||
|  |     max_ttl="30m"   | ||
|  | 	 | ||
|  | === Get credentials | ||
|  | > vault read database/creds/fakebank-accounts-rw | ||
|  | 
 | ||
|  | 
 |