You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I purpose that vela should support more secret engines besides key/value, like gcp, aws, and azure. This change could easily allow administrators to provide a set of credentials to be utilized by tools like terraform without needing to provide long lived credentials.
Some specific design considerations to think of:
Multiple values are returned by the secret engines mentioned above
for example, secret_key, secret_token, lease_duration, etc.
Should the secret be configured within vault directly or via vela?
configuring through vela can be challenging for specific secret engines/configurations due to the number of steps for setup
Vela specific metadata about these secrets cannot be stored within vault since it doesn't allow additonal metadata like the k/v secret engine does
The above example showcases that vela will retrieve the credentials through the aws secrets engine and convert all of the returned values to be in the format of <secret name in vela.yml>_<key returned in vault>=<key value>.
My proposed workflow to accomplish the above looks like:
Vault administrator enables the new secret engine of AWS within Vault
i.e. vault secrets enable aws and vault write aws/config/root access_key=<access key> secret_key=<secret key> region=<region>
i.e. vault write aws/roles/<role name> credential_type=<credential type> ...
Vela administrator maps the Vault secret with a Vela secret
i.e. vela map secret <name of secret within vault> --name <name of secret within vela> --org <org> --repo <repo> ...
Vela stores the above metadata about the secret within the Vela database since Vault doesn't allow that type of metadata for non k/v store secret engines
I purpose that vela should support more secret engines besides key/value, like gcp, aws, and azure. This change could easily allow administrators to provide a set of credentials to be utilized by tools like terraform without needing to provide long lived credentials.
Some specific design considerations to think of:
My initial thought on changes to the pipeline to accomplish this looks like:
With the step of
test
returning the output of:The above example showcases that vela will retrieve the credentials through the aws secrets engine and convert all of the returned values to be in the format of
<secret name in vela.yml>_<key returned in vault>
=<key value>
.My proposed workflow to accomplish the above looks like:
vault secrets enable aws
andvault write aws/config/root access_key=<access key> secret_key=<secret key> region=<region>
vault write aws/roles/<role name> credential_type=<credential type> ...
vela map secret <name of secret within vault> --name <name of secret within vela> --org <org> --repo <repo> ...
server/secret/vault/vault.go
Line 125 in a41ef02
server/secret/vault/vault.go
Line 37 in a41ef02
Looking for feedback on this before I attempt to write the code to accomplish it.
The text was updated successfully, but these errors were encountered: