When a new hashicorp vault cluster starts, it needs to be initialized. The code handles the initialization and some tasks after the initialization
vault-init initializes the vault in the given address and
saves the output to a gcp/aws secret or file. Currently it does
NOT handle unseal process and it assumes that auto unseal is
implemented already (usually through KMS).
After the intialization, with the initial root token, vault-init
can perform the following tasks:
- Run a
policytask to set up vault policies; in order for the authentication to work properly, policies need to be set. Typically,adminpolicy can be set through this task. - Run a
oidc_authtask to set upjwttype auth for oidc; oidc configuration and the initial role can be set up. Typically,adminrole is set up with the policy created in the previous "policy task". For example, the role of terraform agent and workspace for vault ACL can be set up through this task. Refer to https://developer.hashicorp.com/terraform/cloud-docs/workspaces/dynamic-provider-credentials/vault-configuration for details - Run a
gcp_authtask to set upgcptype auth; refer to https://developer.hashicorp.com/vault/docs/auth/gcp - Run a
secret_synctask to create a Vault KV v2 secret mount and sync secrets from the configured secret backend (GCP Secret Manager, AWS Secrets Manager, or a file source) into vault