Skip to content

Commit c58c41d

Browse files
TsvetanGlbandrovyzhivkovTsvetanG
authored
Hashicorp Vault wallet implementation (#781)
* Vault integration * add readme for hashicorp vault wallet config * Add link to Hashicorp vault documentation website in README.md --------- Signed-off-by: Yanko Zhelyazkov <yanko@senofi.ca> Signed-off-by: TsvetanG <tsvetan.georgiev@gmail.com> Co-authored-by: Lyubomir Bandrov <73892014+lbandrov@users.noreply.github.com> Co-authored-by: Yanko Zhelyazkov <yanko@senofi.ca> Co-authored-by: TsvetanG <tsvetan@senofi.ca>
1 parent 44a7ba7 commit c58c41d

30 files changed

+3992
-18667
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,3 +107,6 @@ dist
107107
.tern-port
108108
packages/athena/json_docs/json_validation/ibp_openapi_v3.publish.yaml
109109
packages/athena/env/dev.json
110+
111+
# IDEs
112+
.idea

README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,38 @@ You should be able to manage channels, Using 2.0 lifecycle to install, approve,
133133
* URL - http://127.0.0.1:5985/_utils/
134134
* Login - admin/password
135135

136+
# Configure Fabric Operations Console Wallet With Hashicorp Vault
137+
The Fabric Operations Console wallet stores and manages the cryptographic materials that represent different entities and identities who interact on the Hyperledger Fabric network. By default, the wallet stores the crypto materials inside the browser's local store. If that is the preferred setup, no further configuration or action is needed to configure the wallet.
138+
139+
HashiCorp Vault is an open-source tool designed to manage secrets and protect sensitive data like certificates, tokens, passwords, etc. If you decide to use HashiCorp Vault to securely store and manage the cryptographic materials, you may configure the wallet to use HashiCorp Vault.
140+
141+
The configuration is a JSON file with the following structure:
142+
143+
```json
144+
{
145+
"vaultEnginePath": "{% engine path %}",
146+
"authMethodPath": "{% user authentication path %}",
147+
"url": "{% Hashicorp Vault API url %}",
148+
"username": "{% user name %}",
149+
"password": "{% user password %}",
150+
"vaultPath": "{% folder path to store the crypto materials %}",
151+
"apiVersion": "v1"
152+
}
153+
```
154+
155+
The wallet requires a KV secrets engine path. You may create a new secrets engine dedicated to the console wallet. The configured user should be enabled with a username and password authentication method. The user should have a proper access policy to work with the configured secrets engine. You may configure the vault path variable to a convenient name. This path points to the root path under the configured secrets engine where your cryptographic materials will be stored and accessed by the wallet.
156+
157+
The properly configured JSON file should be accessible to the console at the following path:
158+
```
159+
/server/conf/vault/vault-config.json
160+
```
161+
162+
You may consult the official [HashiCorp Vault documentation](https://developer.hashicorp.com/vault/docs) for detailed instructions on how to create and configure a HashiCorp Vault secrets engine, user, and respective authentication method and access policy.
163+
164+
165+
You can transition from an operational Fabric Operations Console browser store wallet to the HashiCorp Vault wallet by first performing a bulk export of your existing identities. Be sure to complete this export before activating the HashiCorp Vault wallet in your console. Once the export is finished and the console is set up with the new wallet, you can then bulk import the identities into it. This process will ensure that the imported identities are stored in the new wallet. Similarly, the same method can be applied when moving from the HashiCorp Vault wallet to a local browser store-based wallet.
166+
167+
136168
# Developing Fabric Operations Console
137169
This repository is managed using [Lerna](https://github.com/lerna/lerna).
138170

package-lock.json

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)