2017-03-15 06:40:33 +00:00
|
|
|
|
---
|
2020-01-18 00:18:09 +00:00
|
|
|
|
layout: api
|
|
|
|
|
page_title: /sys/mounts - HTTP API
|
2022-02-28 15:05:32 +00:00
|
|
|
|
description: The `/sys/mounts` endpoint is used to manage secrets engines in Vault.
|
2017-03-15 06:40:33 +00:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# `/sys/mounts`
|
|
|
|
|
|
2022-02-28 15:05:32 +00:00
|
|
|
|
The `/sys/mounts` endpoint is used to manage secrets engines in Vault.
|
2017-03-15 06:40:33 +00:00
|
|
|
|
|
2017-09-20 20:05:00 +00:00
|
|
|
|
## List Mounted Secrets Engines
|
2017-03-15 06:40:33 +00:00
|
|
|
|
|
2017-09-20 20:05:00 +00:00
|
|
|
|
This endpoints lists all the mounted secrets engines.
|
2017-03-15 06:40:33 +00:00
|
|
|
|
|
2020-01-18 00:18:09 +00:00
|
|
|
|
| Method | Path |
|
|
|
|
|
| :----- | :------------ |
|
|
|
|
|
| `GET` | `/sys/mounts` |
|
2017-03-15 06:40:33 +00:00
|
|
|
|
|
|
|
|
|
### Sample Request
|
|
|
|
|
|
2020-05-21 17:18:17 +00:00
|
|
|
|
```shell-session
|
2017-03-15 06:40:33 +00:00
|
|
|
|
$ curl \
|
|
|
|
|
--header "X-Vault-Token: ..." \
|
2018-03-23 15:41:51 +00:00
|
|
|
|
http://127.0.0.1:8200/v1/sys/mounts
|
2017-03-15 06:40:33 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Sample Response
|
2020-01-18 00:18:09 +00:00
|
|
|
|
|
2017-03-15 06:40:33 +00:00
|
|
|
|
```json
|
|
|
|
|
{
|
2020-04-22 03:57:49 +00:00
|
|
|
|
"request_id": "48d2c601-97a0-3904-f549-4fcbc740d718",
|
|
|
|
|
"lease_id": "",
|
|
|
|
|
"lease_duration": 0,
|
|
|
|
|
"renewable": false,
|
2019-06-24 14:39:34 +00:00
|
|
|
|
"data": {
|
2020-04-22 03:57:49 +00:00
|
|
|
|
"cubbyhole/": {
|
|
|
|
|
"accessor": "cubbyhole_eb4503de",
|
|
|
|
|
"config": {
|
|
|
|
|
"default_lease_ttl": 0,
|
|
|
|
|
"force_no_cache": false,
|
|
|
|
|
"max_lease_ttl": 0
|
|
|
|
|
},
|
|
|
|
|
"description": "per-token private secret storage",
|
|
|
|
|
"external_entropy_access": false,
|
|
|
|
|
"local": true,
|
|
|
|
|
"options": null,
|
|
|
|
|
"seal_wrap": false,
|
|
|
|
|
"type": "cubbyhole",
|
|
|
|
|
"uuid": "79ddaa52-fa07-6f19-653a-f0777f6439fd"
|
|
|
|
|
},
|
|
|
|
|
"identity/": {
|
|
|
|
|
"accessor": "identity_68a03448",
|
2019-06-24 14:39:34 +00:00
|
|
|
|
"config": {
|
|
|
|
|
"default_lease_ttl": 0,
|
|
|
|
|
"force_no_cache": false,
|
2020-04-22 03:57:49 +00:00
|
|
|
|
"max_lease_ttl": 0
|
|
|
|
|
},
|
|
|
|
|
"description": "identity store",
|
|
|
|
|
"external_entropy_access": false,
|
|
|
|
|
"local": false,
|
|
|
|
|
"options": null,
|
|
|
|
|
"seal_wrap": false,
|
|
|
|
|
"type": "identity",
|
|
|
|
|
"uuid": "45f79a67-58f7-3f87-892c-9032084e7801"
|
|
|
|
|
},
|
|
|
|
|
"secret/": {
|
|
|
|
|
"accessor": "kv_aedd93c1",
|
|
|
|
|
"config": {
|
|
|
|
|
"default_lease_ttl": 0,
|
|
|
|
|
"force_no_cache": false,
|
|
|
|
|
"max_lease_ttl": 0
|
|
|
|
|
},
|
|
|
|
|
"description": "key/value secret storage",
|
|
|
|
|
"external_entropy_access": false,
|
|
|
|
|
"local": false,
|
|
|
|
|
"options": {
|
|
|
|
|
"version": "2"
|
|
|
|
|
},
|
|
|
|
|
"seal_wrap": false,
|
|
|
|
|
"type": "kv",
|
|
|
|
|
"uuid": "8074a73f-6921-c0cd-589a-016405dc46ec"
|
2019-06-24 14:39:34 +00:00
|
|
|
|
},
|
|
|
|
|
"sys/": {
|
2020-04-22 03:57:49 +00:00
|
|
|
|
"accessor": "system_f8df2902",
|
2019-06-24 14:39:34 +00:00
|
|
|
|
"config": {
|
|
|
|
|
"default_lease_ttl": 0,
|
|
|
|
|
"force_no_cache": false,
|
2020-04-22 03:57:49 +00:00
|
|
|
|
"max_lease_ttl": 0,
|
2020-05-21 17:18:17 +00:00
|
|
|
|
"passthrough_request_headers": ["Accept"]
|
2020-04-22 03:57:49 +00:00
|
|
|
|
},
|
|
|
|
|
"description": "system endpoints used for control, policy and debugging",
|
|
|
|
|
"external_entropy_access": false,
|
|
|
|
|
"local": false,
|
|
|
|
|
"options": null,
|
|
|
|
|
"seal_wrap": false,
|
|
|
|
|
"type": "system",
|
|
|
|
|
"uuid": "c79f4f66-4cfa-4521-9d31-b1238b0a6800"
|
2020-01-18 00:18:09 +00:00
|
|
|
|
}
|
2020-04-22 03:57:49 +00:00
|
|
|
|
},
|
|
|
|
|
"warnings": null
|
2017-03-15 06:40:33 +00:00
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
`default_lease_ttl` or `max_lease_ttl` values of 0 mean that the system defaults
|
|
|
|
|
are used by this backend.
|
|
|
|
|
|
2017-09-21 21:14:40 +00:00
|
|
|
|
## Enable Secrets Engine
|
2017-03-15 06:40:33 +00:00
|
|
|
|
|
2017-09-21 21:14:40 +00:00
|
|
|
|
This endpoint enables a new secrets engine at the given path.
|
2017-03-15 06:40:33 +00:00
|
|
|
|
|
2020-01-18 00:18:09 +00:00
|
|
|
|
| Method | Path |
|
|
|
|
|
| :----- | :------------------ |
|
|
|
|
|
| `POST` | `/sys/mounts/:path` |
|
2017-03-15 06:40:33 +00:00
|
|
|
|
|
|
|
|
|
### Parameters
|
|
|
|
|
|
2017-09-20 20:05:00 +00:00
|
|
|
|
- `path` `(string: <required>)` – Specifies the path where the secrets engine
|
2017-03-15 06:40:33 +00:00
|
|
|
|
will be mounted. This is specified as part of the URL.
|
|
|
|
|
|
2020-01-18 00:18:09 +00:00
|
|
|
|
!> **NOTE:** Use ASCII printable characters to specify the desired path.
|
2019-01-10 15:39:20 +00:00
|
|
|
|
|
2017-03-15 06:40:33 +00:00
|
|
|
|
- `type` `(string: <required>)` – Specifies the type of the backend, such as
|
|
|
|
|
"aws".
|
|
|
|
|
|
|
|
|
|
- `description` `(string: "")` – Specifies the human-friendly description of the
|
|
|
|
|
mount.
|
|
|
|
|
|
|
|
|
|
- `config` `(map<string|string>: nil)` – Specifies configuration options for
|
2019-02-05 21:02:15 +00:00
|
|
|
|
this mount; if set on a specific mount, values will override any global
|
|
|
|
|
defaults (e.g. the system TTL/Max TTL)
|
2017-03-15 06:40:33 +00:00
|
|
|
|
|
2018-03-09 19:32:28 +00:00
|
|
|
|
- `default_lease_ttl` `(string: "")` - The default lease duration, specified
|
2019-02-05 21:02:15 +00:00
|
|
|
|
as a string duration like "5s" or "30m".
|
2017-09-05 03:52:14 +00:00
|
|
|
|
|
2018-03-09 19:32:28 +00:00
|
|
|
|
- `max_lease_ttl` `(string: "")` - The maximum lease duration, specified as a
|
2019-02-05 21:02:15 +00:00
|
|
|
|
string duration like "5s" or "30m".
|
2017-09-05 03:52:14 +00:00
|
|
|
|
|
2018-03-09 19:32:28 +00:00
|
|
|
|
- `force_no_cache` `(bool: false)` - Disable caching.
|
2017-09-05 03:52:14 +00:00
|
|
|
|
|
2021-08-09 19:37:03 +00:00
|
|
|
|
- `audit_non_hmac_request_keys` `(array: [])` - List of keys that will not be
|
|
|
|
|
HMAC'd by audit devices in the request data object.
|
2018-03-09 19:32:28 +00:00
|
|
|
|
|
2021-08-09 19:37:03 +00:00
|
|
|
|
- `audit_non_hmac_response_keys` `(array: [])` - List of keys that will not be
|
|
|
|
|
HMAC'd by audit devices in the response data object.
|
2017-03-15 06:40:33 +00:00
|
|
|
|
|
2018-11-30 22:32:04 +00:00
|
|
|
|
- `listing_visibility` `(string: "")` - Specifies whether to show this mount
|
2018-07-02 16:13:25 +00:00
|
|
|
|
in the UI-specific listing endpoint. Valid values are `"unauth"` or
|
2020-01-18 00:18:09 +00:00
|
|
|
|
`"hidden"`. If not set, behaves like `"hidden"`.
|
2018-03-21 23:56:47 +00:00
|
|
|
|
|
2021-08-09 19:37:03 +00:00
|
|
|
|
- `passthrough_request_headers` `(array: [])` - List of headers to whitelist
|
|
|
|
|
and pass from the request to the plugin.
|
2018-03-21 23:56:47 +00:00
|
|
|
|
|
2021-08-09 19:37:03 +00:00
|
|
|
|
- `allowed_response_headers` `(array: [])` - List of headers to whitelist,
|
|
|
|
|
allowing a plugin to include them in the response.
|
2018-03-09 19:32:28 +00:00
|
|
|
|
|
2019-05-24 02:09:52 +00:00
|
|
|
|
- `options` `(map<string|string>: nil)` - Specifies mount type specific options
|
|
|
|
|
that are passed to the backend.
|
2017-08-31 16:16:59 +00:00
|
|
|
|
|
2020-01-18 00:18:09 +00:00
|
|
|
|
_Key/Value (KV)_
|
|
|
|
|
|
2019-05-24 02:09:52 +00:00
|
|
|
|
- `version` `(string: "1")` - The version of the KV to mount. Set to "2" for mount
|
|
|
|
|
KV v2.
|
2018-05-21 20:39:43 +00:00
|
|
|
|
|
2017-09-05 03:52:14 +00:00
|
|
|
|
Additionally, the following options are allowed in Vault open-source, but
|
2017-04-28 18:33:27 +00:00
|
|
|
|
relevant functionality is only supported in Vault Enterprise:
|
|
|
|
|
|
2017-09-20 20:05:00 +00:00
|
|
|
|
- `local` `(bool: false)` – Specifies if the secrets engine is a local mount
|
2017-04-28 18:33:27 +00:00
|
|
|
|
only. Local mounts are not replicated nor (if a secondary) removed by
|
|
|
|
|
replication.
|
|
|
|
|
|
2019-02-05 21:02:15 +00:00
|
|
|
|
- `seal_wrap` `(bool: false)` - Enable seal wrapping for the mount, causing
|
|
|
|
|
values stored by the mount to be wrapped by the seal's encryption capability.
|
2020-01-18 00:18:09 +00:00
|
|
|
|
|
2019-10-28 22:04:27 +00:00
|
|
|
|
- `external_entropy_access` `(bool: false)` - Enable the secrets engine to access
|
|
|
|
|
Vault's external entropy source.
|
2018-01-03 19:02:31 +00:00
|
|
|
|
|
2017-03-15 06:40:33 +00:00
|
|
|
|
### Sample Payload
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"type": "aws",
|
|
|
|
|
"config": {
|
|
|
|
|
"force_no_cache": true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Sample Request
|
|
|
|
|
|
2020-05-21 17:18:17 +00:00
|
|
|
|
```shell-session
|
2017-03-15 06:40:33 +00:00
|
|
|
|
$ curl \
|
|
|
|
|
--header "X-Vault-Token: ..." \
|
|
|
|
|
--request POST \
|
2017-06-07 14:02:58 +00:00
|
|
|
|
--data @payload.json \
|
2018-03-23 15:41:51 +00:00
|
|
|
|
http://127.0.0.1:8200/v1/sys/mounts/my-mount
|
2017-03-15 06:40:33 +00:00
|
|
|
|
```
|
|
|
|
|
|
2017-09-21 21:14:40 +00:00
|
|
|
|
## Disable Secrets Engine
|
2017-03-15 06:40:33 +00:00
|
|
|
|
|
2017-09-21 21:14:40 +00:00
|
|
|
|
This endpoint disables the mount point specified in the URL.
|
2017-03-15 06:40:33 +00:00
|
|
|
|
|
2020-01-18 00:18:09 +00:00
|
|
|
|
| Method | Path |
|
2020-12-17 21:53:33 +00:00
|
|
|
|
| :------- | :------------------ | ------------------ |
|
2020-01-18 00:18:09 +00:00
|
|
|
|
| `DELETE` | `/sys/mounts/:path` | `204 (empty body)` |
|
2017-03-15 06:40:33 +00:00
|
|
|
|
|
|
|
|
|
### Sample Request
|
|
|
|
|
|
2020-05-21 17:18:17 +00:00
|
|
|
|
```shell-session
|
2017-03-15 06:40:33 +00:00
|
|
|
|
$ curl \
|
|
|
|
|
--header "X-Vault-Token: ..." \
|
|
|
|
|
--request DELETE \
|
2018-03-23 15:41:51 +00:00
|
|
|
|
http://127.0.0.1:8200/v1/sys/mounts/my-mount
|
2017-03-15 06:40:33 +00:00
|
|
|
|
```
|
|
|
|
|
|
2022-03-11 18:43:59 +00:00
|
|
|
|
### Force Disable
|
|
|
|
|
|
|
|
|
|
Because disabling a secrets engine revokes secrets associated with this mount,
|
|
|
|
|
possible errors can prevent the secrets engine from being disabled if the
|
|
|
|
|
revocation fails.
|
|
|
|
|
|
|
|
|
|
The best way to resolve this is to figure out the underlying issue and then
|
|
|
|
|
disable the secrets engine once the underlying issue is resolved. Often, this can be as
|
|
|
|
|
simple as increasing the timeout (in the event of timeout errors).
|
|
|
|
|
|
|
|
|
|
For recovery situations where the secret was manually removed from the
|
|
|
|
|
secrets backing service, one can force a secrets engine disable in Vault by
|
|
|
|
|
performing a [force revoke](https://www.vaultproject.io/api/system/leases#revoke-force)
|
|
|
|
|
on the mount prefix, followed by a secrets disable when that completes.
|
|
|
|
|
If the underlying secrets were not manually cleaned up, this method might result
|
|
|
|
|
in dangling credentials. This is meant for extreme circumstances.
|
|
|
|
|
|
2021-11-08 18:32:01 +00:00
|
|
|
|
## Get the configuration of a Secret Engine
|
|
|
|
|
|
|
|
|
|
This endpoint returns the configuration of a specific secret engine.
|
|
|
|
|
|
|
|
|
|
| Method | Path |
|
|
|
|
|
| :----- | :------------------ |
|
|
|
|
|
| `GET` | `/sys/mounts/:path` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Sample Request
|
|
|
|
|
|
|
|
|
|
```shell-session
|
|
|
|
|
$ curl \
|
|
|
|
|
--header "X-Vault-Token: ..." \
|
|
|
|
|
http://127.0.0.1:8200/v1/sys/mounts/cubbyhole
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Sample Response
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"config": {
|
|
|
|
|
"default_lease_ttl": 0,
|
|
|
|
|
"force_no_cache": false,
|
|
|
|
|
"max_lease_ttl": 0
|
|
|
|
|
},
|
|
|
|
|
"description": "per-token private secret storage",
|
|
|
|
|
"accessor": "cubbyhole_db85f061",
|
|
|
|
|
"external_entropy_access": false,
|
|
|
|
|
"options": null,
|
|
|
|
|
"uuid": "9c0e211a-904d-e41d-e1a2-7f1ff2bb8461",
|
|
|
|
|
"type": "cubbyhole",
|
|
|
|
|
"local": true,
|
|
|
|
|
"seal_wrap": false,
|
|
|
|
|
"request_id": "efdab917-ade2-1802-b8fa-fe2e6486d4e5",
|
|
|
|
|
"lease_id": "",
|
|
|
|
|
"renewable": false,
|
|
|
|
|
"lease_duration": 0,
|
|
|
|
|
"data": {
|
|
|
|
|
"accessor": "cubbyhole_db85f061",
|
|
|
|
|
"config": {
|
|
|
|
|
"default_lease_ttl": 0,
|
|
|
|
|
"force_no_cache": false,
|
|
|
|
|
"max_lease_ttl": 0
|
|
|
|
|
},
|
|
|
|
|
"description": "per-token private secret storage",
|
|
|
|
|
"external_entropy_access": false,
|
|
|
|
|
"local": true,
|
|
|
|
|
"options": null,
|
|
|
|
|
"seal_wrap": false,
|
|
|
|
|
"type": "cubbyhole",
|
|
|
|
|
"uuid": "9c0e211a-904d-e41d-e1a2-7f1ff2bb8461"
|
|
|
|
|
},
|
|
|
|
|
"wrap_info": null,
|
|
|
|
|
"warnings": null,
|
|
|
|
|
"auth": null
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
2017-03-15 06:40:33 +00:00
|
|
|
|
## Read Mount Configuration
|
|
|
|
|
|
|
|
|
|
This endpoint reads the given mount's configuration. Unlike the `mounts`
|
|
|
|
|
endpoint, this will return the current time in seconds for each TTL, which may
|
|
|
|
|
be the system default or a mount-specific value.
|
|
|
|
|
|
2020-01-18 00:18:09 +00:00
|
|
|
|
| Method | Path |
|
|
|
|
|
| :----- | :----------------------- |
|
|
|
|
|
| `GET` | `/sys/mounts/:path/tune` |
|
2017-03-15 06:40:33 +00:00
|
|
|
|
|
|
|
|
|
### Sample Request
|
|
|
|
|
|
2020-05-21 17:18:17 +00:00
|
|
|
|
```shell-session
|
2017-03-15 06:40:33 +00:00
|
|
|
|
$ curl \
|
|
|
|
|
--header "X-Vault-Token: ..." \
|
2018-03-23 15:41:51 +00:00
|
|
|
|
http://127.0.0.1:8200/v1/sys/mounts/my-mount/tune
|
2017-03-15 06:40:33 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Sample Response
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"default_lease_ttl": 3600,
|
|
|
|
|
"max_lease_ttl": 7200,
|
|
|
|
|
"force_no_cache": false
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Tune Mount Configuration
|
|
|
|
|
|
|
|
|
|
This endpoint tunes configuration parameters for a given mount point.
|
|
|
|
|
|
2020-01-18 00:18:09 +00:00
|
|
|
|
| Method | Path |
|
|
|
|
|
| :----- | :----------------------- |
|
|
|
|
|
| `POST` | `/sys/mounts/:path/tune` |
|
2017-03-15 06:40:33 +00:00
|
|
|
|
|
|
|
|
|
### Parameters
|
|
|
|
|
|
|
|
|
|
- `default_lease_ttl` `(int: 0)` – Specifies the default time-to-live. This
|
|
|
|
|
overrides the global default. A value of `0` is equivalent to the system
|
|
|
|
|
default TTL.
|
|
|
|
|
|
|
|
|
|
- `max_lease_ttl` `(int: 0)` – Specifies the maximum time-to-live. This
|
|
|
|
|
overrides the global default. A value of `0` are equivalent and set to the
|
|
|
|
|
system max TTL.
|
|
|
|
|
|
2018-02-21 22:18:05 +00:00
|
|
|
|
- `description` `(string: "")` – Specifies the description of the mount. This
|
|
|
|
|
overrides the current stored value, if any.
|
|
|
|
|
|
2021-08-09 19:37:03 +00:00
|
|
|
|
- `audit_non_hmac_request_keys` `(array: [])` - Specifies the list of keys that
|
|
|
|
|
will not be HMAC'd by audit devices in the request data object.
|
2018-03-02 17:18:39 +00:00
|
|
|
|
|
2021-08-09 19:37:03 +00:00
|
|
|
|
- `audit_non_hmac_response_keys` `(array: [])` - Specifies the list of keys that
|
|
|
|
|
will not be HMAC'd by audit devices in the response data object.
|
2018-03-02 17:18:39 +00:00
|
|
|
|
|
2018-11-30 22:32:04 +00:00
|
|
|
|
- `listing_visibility` `(string: "")` - Specifies whether to show this mount in
|
2018-07-02 16:13:25 +00:00
|
|
|
|
the UI-specific listing endpoint. Valid values are `"unauth"` or `"hidden"`.
|
|
|
|
|
If not set, behaves like `"hidden"`.
|
2018-03-21 23:56:47 +00:00
|
|
|
|
|
2021-08-09 19:37:03 +00:00
|
|
|
|
- `passthrough_request_headers` `(array: [])` - List of headers to whitelist
|
|
|
|
|
and pass from the request to the plugin.
|
2019-02-05 21:02:15 +00:00
|
|
|
|
|
2021-08-09 19:37:03 +00:00
|
|
|
|
- `allowed_response_headers` `(array: [])` - List of headers to whitelist,
|
|
|
|
|
allowing a plugin to include them in the response.
|
2018-03-21 23:56:47 +00:00
|
|
|
|
|
2021-11-22 01:08:38 +00:00
|
|
|
|
- `allowed_managed_keys` `(array: [])` - List of managed key registry entry names
|
|
|
|
|
that the mount in question is allowed to access.
|
|
|
|
|
|
2017-03-15 06:40:33 +00:00
|
|
|
|
### Sample Payload
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"default_lease_ttl": 1800,
|
|
|
|
|
"max_lease_ttl": 3600
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Sample Request
|
|
|
|
|
|
2020-05-21 17:18:17 +00:00
|
|
|
|
```shell-session
|
2017-03-15 06:40:33 +00:00
|
|
|
|
$ curl \
|
|
|
|
|
--header "X-Vault-Token: ..." \
|
|
|
|
|
--request POST \
|
2017-06-07 14:02:58 +00:00
|
|
|
|
--data @payload.json \
|
2018-03-23 15:41:51 +00:00
|
|
|
|
http://127.0.0.1:8200/v1/sys/mounts/my-mount/tune
|
2017-03-15 06:40:33 +00:00
|
|
|
|
```
|