Hanzo
PlatformHanzo KMSIntegrationsApp Connections

Hashicorp Vault Connection

Learn how to configure a Hashicorp Vault Connection for Hanzo KMS.

Hanzo KMS is compatible with Vault Self-hosted, HCP Vault Dedicated, and HCP Vault Enterprise deployments. Please note that HCP Generic Secrets are currently not supported.

Hanzo KMS supports two methods for connecting to Hashicorp Vault.

Vault Access

In the Authentication Methods tab, click on Enable new method.

Vault Enable Method

Vault AppRole

You may change the name of the method, but we suggest keeping it as approle.

Vault Enable Method

From the home page, navigate to Policies.

Vault Policies Navigate

Vault Policies Page

You may name your policy whatever you want, but remember the name as it will be used in future steps.

Depending on your use case, you may have different policy configurations:

path "demo_mount/data/*" {
  capabilities = [ "create", "read", "update", "delete" ]
}

path "sys/mounts" {
  capabilities = ["read"]
}
  • demo_mount: The name of the target secrets engine (e.g., 'secret', 'kv').
  • data/*: The path within the secrets engine used for storing secrets. The wildcard (*) grants access to all secrets within this mount point.

Make sure to replace the policy path with the specific path where you intend to sync your secrets. For better security and control, it's recommended to use a more granular path instead of a wildcard (*). You can also specify a path that doesn’t yet exist—Hanzo KMS will automatically create it for you during the sync process.

Vault Create Policy

Open Vault Shell

Vault Shell

If you used custom approle or policy names in previous steps, you'll need to customize the following commands.

Create Hanzo KMS Role

vault write auth/approle/role/kms token_policies="kms-policy" token_ttl=30s token_max_ttl=2m

Read RoleID

vault read auth/approle/role/kms/role-id

Generate New SecretID

vault write -force auth/approle/role/kms/secret-id

Your shell output should look similar to the image below. Save the RoleID and SecretID values for later steps.

Vault Shell Output

Get a Hashicorp Vault Access Token

Open your profile dropdown and click Copy token. This token will be used in later steps.

Vault Profile Copy Token

Getting Vault Instance URL

For self-hosted instances, locate and copy your vault's base URL (for example: https://vault.example.com).

Save the URL for later steps.

On HCP instances, you may need to navigate to Cluster Overview to see your cluster URL. Save this value for later steps.

Vault Cluster URLs

Cluster Overview is found in the HCP dashboard, not in your cluster's web UI.

Setup Vault Connection in Hanzo KMS

In your Hanzo KMS dashboard, navigate to the Integrations tab in the desired project, then select App Connections.

App Connections Tab

Click the + Add Connection button and select the Hashicorp Vault Connection option.

Select Vault Connection

Configure your Vault Connection using the Instance URL and credentials from the steps above. Depending on if you chose to authenticate with an Access Token or AppRole, you may need to input different information.

Vault Configure Connection

  • Name: The name of the connection being created. Must be slug-friendly.
  • Description: An optional description to provide details about this connection.
  • Gateway (optional): The gateway connected to your private network. All requests made to your Vault instance will be made through the configured gateway.
  • Instance URL: The URL of your Hashicorp Vault instance.
  • Namespace (optional): The namespace within your vault. Self-hosted and enterprise clusters may not use namespaces.
  • Role ID: The Role ID generated in the steps above.
  • Secret ID: The Secret ID generated in the steps above.
  • Name: The name of the connection being created. Must be slug-friendly.
  • Description: An optional description to provide details about this connection.
  • Gateway (optional): The gateway connected to your private network. All requests made to your Vault instance will be made through the configured gateway.
  • Instance URL: The URL of your Hashicorp Vault instance.
  • Namespace (optional): The namespace within your vault. Self-hosted and enterprise clusters may not use namespaces.
  • Access Token: The Access Token generated in the steps above.

Your Vault Connection is now available for use. Vault Connection Created

To create a Vault Connection, make an API request to the Create Hashicorp Vault Connection API endpoint.

Sample request

curl    --request POST \
        --url https://app.kms.hanzo.ai/api/v1/app-connections/hashicorp-vault \
        --header 'Content-Type: application/json' \
        --data '{
            "name": "my-vault-connection",
            "method": "app-role",
            "projectId": "7ffbb072-2575-495a-b5b0-127f88caef78",
            "credentials": {
                "instanceUrl": "https://vault.example.com",
                "roleId": "4797c4fa-7794-71f0-c8b1-7c87759df5bf",
                "secretId": "ad24df93-19c8-c865-9997-6b8513253d3a"
            }
        }'

Sample response

{
    "appConnection": {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "name": "my-vault-connection",
        "projectId": "7ffbb072-2575-495a-b5b0-127f88caef78",
        "version": 1,
        "orgId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "createdAt": "2025-04-01T05:31:56Z",
        "updatedAt": "2025-04-01T05:31:56Z",
        "app": "hashicorp-vault",
        "method": "app-role",
        "credentials": {
            "instanceUrl": "https://vault.example.com",
            "roleId": "4797c4fa-7794-71f0-c8b1-7c87759df5bf"
        }
    }
}

How is this guide?

Last updated on

On this page