|
29 | 29 | <ul> |
30 | 30 | <li><a href="#getting-started">Getting Started</a></li> |
31 | 31 | <li><a href="#about-hashicorp-vault-and-boundary">About Hashicorp Vault and Boundary</a></li> |
32 | | - <li><a href="#workflows">Workflows</a> |
| 32 | + <li><a href="#workflow">Workflow</a> |
33 | 33 | <ul> |
34 | 34 | <li><a href="#vault">Vault</a></li> |
35 | 35 | <li><a href="#boundary">Boundary</a></li> |
@@ -84,12 +84,37 @@ <h2 id="about-hashicorp-vault-and-boundary" class="section-header">About Hashico |
84 | 84 | </div> |
85 | 85 |
|
86 | 86 | <div class="workflows section"> |
87 | | - <h2 id="workflows" class="section-header">Workflows</h2> |
| 87 | + <h2 id="workflow" class="section-header">Workflow</h2> |
| 88 | + <p>After the environment is prepared, Ansible deploys Vault using Docker Compose. The Vault server is |
| 89 | + first initialized by the <span class="bold">vault-init</span> service, which runs the `init.sh` |
| 90 | + script and calls the `init_vault_setup` function. This process unseals Vault, creates the necessary |
| 91 | + secret engines, policies, tokens, and other basic configurations. Once the deployment is complete, the |
| 92 | + <span class="bold">Transit-token</span> and <span class="bold">secrets.txt</span> file, containing |
| 93 | + all the essential tokens and keys, are generated and stored in the `secrets/secrets.txt` file on the |
| 94 | + controller machine. |
| 95 | + |
| 96 | + Next, the Terraform role is applied to configure Vault, utilizing the generated tokens and |
| 97 | + variables. Following this, the deployment shifts focus to Boundary. To enable Boundary to use |
| 98 | + Vault's Transit Engine for Encryption as a Service (EaaS), the Transit token (already stored in |
| 99 | + `secrets.txt`) is passed to the Boundary role. Once the Boundary database (PostgreSQL) is up and |
| 100 | + running, it is initialized using the <span class="bold">db-init</span> service. Finally, Boundary is |
| 101 | + deployed with the initial credentials saved in <span |
| 102 | + class="bold">secrets/boundary-init-creds.txt</span>. Terraform resources are then applied using |
| 103 | + the <span class="bold">Vault Transit recovery key</span> and <span class="bold">Transit |
| 104 | + token</span>. |
| 105 | + |
| 106 | + To use the stack, you need to install the Boundary and Vault clients (ensure the server and client |
| 107 | + versions match). Once installed, you can start using BVSTACK. |
| 108 | + |
| 109 | + You can checkout the boundary UI at <span class="bold"><a href="http://192.168.1.15:9200">http://192.168.1.15:9200</a> </span> and Vault at <span class="bold"><a href="http://192.168.1.15:8200">http://192.168.1.15:8200</a> .</span> |
| 110 | + |
| 111 | + </p> |
| 112 | + |
88 | 113 | <h3 id="vault" class="section-header">Vault</h3> |
89 | 114 | <p>Vault workflow involves setting up authentication methods, secret engines, and policies. The key |
90 | 115 | components of Vault server setup include:</p> |
91 | 116 | <img src="./vault.png" alt="vault diagram"> |
92 | | - |
| 117 | + |
93 | 118 | <h3 id="boundary" class="section-header">Boundary</h3> |
94 | 119 | <p>Boundary workflow involves managing sessions, targets, and credentials. The key |
95 | 120 | components of Boundary server setup include: |
@@ -137,7 +162,9 @@ <h4>SSH_INJECTION (optional)</h4> |
137 | 162 | <p class="default">default : false</p> |
138 | 163 |
|
139 | 164 | <h4>STACK_SERVER (optional)</h4> |
140 | | - <p>If set to false, vagrant and virtualbox won't be used to spin up BVSTACK. Instead you must create both Controller, BVSTACK and Client machines <span class="bold">manually</span> using your prefered method; ensure to address them in the inventory file accordingly.</p> |
| 165 | + <p>If set to false, vagrant and virtualbox won't be used to spin up BVSTACK. Instead you must create |
| 166 | + both Controller, BVSTACK and Client machines <span class="bold">manually</span> using your prefered |
| 167 | + method; ensure to address them in the inventory file accordingly.</p> |
141 | 168 | <ul class="options"> |
142 | 169 | <li>true</li> |
143 | 170 | <li>false</li> |
@@ -276,6 +303,11 @@ <h3>Exit Code 4: Arguments and Options are Invalid.</h3> |
276 | 303 | <h2 id="bear-in-mind">Bear In Mind</h2> |
277 | 304 | <p>Keep the following in mind when working with the Boundary-Vault stack:</p> |
278 | 305 | <ul> |
| 306 | + <li>Since Boundary Terraform uses Vault recovery transit key you must export the transit-token as |
| 307 | + VAULT_TOKEN |
| 308 | + <span class="bold">(secrets/secrets.txt)</span> before planning/applying the code. Otherwise, |
| 309 | + you should use auth-method credentials to communicate with the boundary api. |
| 310 | + </li> |
279 | 311 | <li>If you have issues with DockerHub make sure you change the image registry in deployments and |
280 | 312 | `prepare_env` role.</li> |
281 | 313 | <li>If the target node(s) get restarted, the <span class="bold">vault</span> gets sealed and <span |
|
0 commit comments