You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			| ![github-actions[bot]](/assets/img/avatar_default.png) b90f6f9de8 Co-authored-by: matifali <matifali@users.noreply.github.com> | 2 years ago | |
|---|---|---|
| .. | ||
| README.md | 2 years ago | |
| main.test.ts | 2 years ago | |
| main.tf | 2 years ago | |
| run.sh | 2 years ago | |
		
			
				
				README.md
			
		
		
			
			
		
	
	| display_name | description | icon | maintainer_github | partner_github | verified | tags | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| Hashicorp Vault Integration (Token) | Authenticates with Vault using Token | ../.icons/vault.svg | coder | hashicorp | true | 
 | 
Hashicorp Vault Integration (Token)
This module lets you authenticate with Hashicorp Vault in your Coder workspaces using a Vault token.
variable "vault_token" {
  type        = string
  description = "The Vault token to use for authentication."
  sensitive   = true
}
module "vault" {
  source      = "registry.coder.com/modules/vault-token/coder"
  version     = "1.0.7"
  agent_id    = coder_agent.example.id
  vault_token = var.token
  vault_addr  = "https://vault.example.com"
}
Then you can use the Vault CLI in your workspaces to fetch secrets from Vault:
vault kv get -namespace=coder -mount=secrets coder
or using the Vault API:
curl -H "X-Vault-Token: ${VAULT_TOKEN}" -X GET "${VAULT_ADDR}/v1/coder/secrets/data/coder"
Configuration
To configure the Vault module, you must create a Vault token with the the required permissions and configure the module with the token and Vault address.
- Create a vault policy with read access to the secret mount you need your developers to access.
vault policy write read-coder-secrets - <<EOF path "coder/data/*" { capabilities = ["read"] } path "coder/metadata/*" { capabilities = ["read"] } EOF
- Create a token using this policy.
vault token create -policy="read-coder-secrets"
- Copy the generated token and use in your template.
Examples
Configure Vault integration and install a specific version of the Vault CLI
variable "vault_token" {
  type        = string
  description = "The Vault token to use for authentication."
  sensitive   = true
}
module "vault" {
  source            = "registry.coder.com/modules/vault-token/coder"
  version           = "1.0.7"
  agent_id          = coder_agent.example.id
  vault_addr        = "https://vault.example.com"
  vault_token       = var.token
  vault_cli_version = "1.15.0"
}