Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

/sys/mounts

Конечная точка /sys/mounts используется для управления механизмами секретов в StarVault.

1. Список примонтированных механизмов секретов

В этой конечной точке перечислены все примонтированные механизмы секретов.

Метод

Путь

GET

/sys/mounts

Пример запроса:
curl \
  --header "X-Vault-Token: ..." \
  http://127.0.0.1:8200/v1/sys/mounts
Пример ответа:
{
  "request_id": "48d2c601-97a0-3904-f549-4fcbc740d718",
  "lease_id": "",
  "lease_duration": 0,
  "renewable": false,
  "data": {
    "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,
      "plugin_version": "",
      "running_plugin_version": "v1.1.0+builtin.starvault",
      "running_sha256": "",
      "seal_wrap": false,
      "type": "cubbyhole",
      "uuid": "79ddaa52-fa07-6f19-653a-f0777f6439fd"
    },
    "identity/": {
      "accessor": "identity_68a03448",
      "config": {
        "default_lease_ttl": 0,
        "force_no_cache": false,
        "max_lease_ttl": 0
      },
      "description": "identity store",
      "external_entropy_access": false,
      "local": false,
      "options": null,
      "plugin_version": "",
      "running_plugin_version": "v1.1.0+builtin.starvault",
      "running_sha256": "",
      "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
      },
      "deprecation_status": "supported",
      "description": "key/value secret storage",
      "external_entropy_access": false,
      "local": false,
      "options": {
        "version": "2"
      },
      "plugin_version": "",
      "running_plugin_version": "v0.13.0+builtin",
      "running_sha256": "",
      "seal_wrap": false,
      "type": "kv",
      "uuid": "8074a73f-6921-c0cd-589a-016405dc46ec"
    },
    "sys/": {
      "accessor": "system_f8df2902",
      "config": {
        "default_lease_ttl": 0,
        "force_no_cache": false,
        "max_lease_ttl": 0,
        "passthrough_request_headers": ["Accept"]
      },
      "description": "system endpoints used for control, policy and debugging",
      "external_entropy_access": false,
      "local": false,
      "options": null,
      "plugin_version": "",
      "running_plugin_version": "v1.1.0+builtin.starvault",
      "running_sha256": "",
      "seal_wrap": false,
      "type": "system",
      "uuid": "c79f4f66-4cfa-4521-9d31-b1238b0a6800"
    }
  },
  "warnings": null
}

Значение 0 в default_lease_ttl или max_lease_ttl означает, что этот бэкэнд использует системные значения по умолчанию.

2. Включение механизма секретов

Данная конечная точка включает новый механизм секретов по указанному пути.

Метод

Путь

POST

/sys/mounts/:path

2.1. Параметры

  • path (string: <required>) – указывает путь, по которому будет смонтирован механизм секретов. Он указывается как часть URL-адреса.

    Для указания нужного пути используйте печатные символы ASCII.

  • type (string: <required>) – указывает тип бэкэнда, например «kv».

  • description (string: "") – задает понятное для человека описание монтирования.

  • config (map<string|string>: nil) – здает параметры конфигурации для данного монтирования; если они установлены для конкретного монтирования, значения переопределят любые глобальные значения по умолчанию (например, системное TTL/Max TTL)

    • default_lease_ttl (string: "") - длительность аренды по умолчанию, указанная в виде строки, например «5s» или «30m».

    • max_lease_ttl (string: "") - максимальная продолжительность аренды, указанная в виде строки, например «5s» или «30m».

    • force_no_cache (bool: false) - отключить кэширование.

    • audit_non_hmac_request_keys (array: []) - список ключей, которые не будут проверяться HMAC устройствами аудита в объекте данных запроса.

    • audit_non_hmac_response_keys (array: []) - список ключей, которые не будут проверяться HMAC устройствами аудита в объекте данных ответа.

    • listing_visibility (string: "") — указывает, отображать ли данное подключение в списке при вызове конечной точке, специфичной для пользовательского интерфейса. Допустимые значения: "unauth" или "hidden", значение по умолчанию — "", что эквивалентно "hidden".

    • passthrough_request_headers (array: []) - список заголовков, которые разрешается передавать из запроса в плагин.

    • allowed_response_headers (array: []) - список заголовков, которые разрешены для включения плагином в исходящий ответ.

    • plugin_version (string: "") – указывает семантическую версию используемого плагина, например, "v1.0.0". Если версия не указана, сервер выберет любой подходящий плагин без версии, который мог быть зарегистрирован, плагин с последней зарегистрированной версией или встроенный плагин в указанном порядке приоритета.

  • options (map<string|string>: nil) - указывает параметры, специфичные для типа монтирования, которые передаются в бэкэнд.

    Ключ/Значение (KV)

    • version (string: "1") - версия KV для монтирования. Установите значение «2» для монтирования KV v2.

Пример тела запроса:
{
  "type": "kv",
  "config": {
    "force_no_cache": true
  }
}
Пример запроса:
curl \
  --header "X-Vault-Token: ..." \
  --request POST \
  --data @payload.json \
  http://127.0.0.1:8200/v1/sys/mounts/my-mount

3. Отключение механизма секретов

Эта конечная точка отключает точку монтирования, указанную в URL.

Метод

Путь

DELETE

/sys/mounts/:path

Пример запроса:
curl \
  --header "X-Vault-Token: ..." \
  --request DELETE \
  http://127.0.0.1:8200/v1/sys/mounts/my-mount

3.1. Принудительное отключение

Поскольку отключение механизма секретов приводит к отзыву секретов, связанных с этим монтированием, возможные ошибки могут помешать отключению механизма секретов, если отзыв завершится неудачей.

Лучший способ решения этой проблемы — выяснить её первопричину и отключить механизм секретов после её устранения. Часто это может быть просто увеличение тайм-аута (в случае ошибок тайм-аута).

В случае восстановления, когда секрет был вручную удалён из службы поддержки секретов, можно принудительно отключить механизм секретов в StarVault, выполнив принудительный отзыв префикса монтирования, а затем отключив секреты после его завершения. Если базовые секреты не были очищены вручную, этот метод может привести к появлению неактивных учётных данных. Это предназначено для чрезвычайных ситуаций.

4. Получение конфигурации механизма секретов

Эта конечная точка возвращает конфигурацию конкретного механизма секретов.

Метод

Путь

GET

/sys/mounts/:path

Пример запроса:
curl \
  --header "X-Vault-Token: ..." \
  http://127.0.0.1:8200/v1/sys/mounts/cubbyhole
Пример ответа:
{
  "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,
    "plugin_version": "",
    "running_plugin_version": "v1.1.0+builtin.starvault",
    "running_sha256": "",
    "seal_wrap": false,
    "type": "cubbyhole",
    "uuid": "9c0e211a-904d-e41d-e1a2-7f1ff2bb8461"
  },
  "wrap_info": null,
  "warnings": null,
  "auth": null
}

5. Чтение конфигурации монтирования

Эта конечная точка считывает конфигурацию указанного монтирования. В отличие от конечной точки mounts, она возвращает текущее время в секундах для каждого TTL, которое может быть системным значением по умолчанию или значением, специфичным для монтирования.

Метод

Путь

GET

/sys/mounts/:path/tune

Пример запроса:
curl \
  --header "X-Vault-Token: ..." \
  http://127.0.0.1:8200/v1/sys/mounts/my-mount/tune
Пример ответа:
{
  "default_lease_ttl": 3600,
  "max_lease_ttl": 7200,
  "force_no_cache": false
}

6. Настройка конфигурации монтирования

Эта конечная точка настраивает параметры конфигурации для заданной точки монтирования.

Метод

Путь

POST

/sys/mounts/:path/tune

6.1. Параметры

  • default_lease_ttl (int: 0) – задаёт время жизни по умолчанию. Оно переопределяет глобальное значение по умолчанию. Значение 0 эквивалентно времени жизни (TTL) системы по умолчанию.

  • max_lease_ttl (int: 0) – задаёт максимальное время жизни. Это переопределяет глобальное значение по умолчанию. Значение 0 эквивалентно максимальному времени жизни (TTL) системы.

  • description (string: "") – задаёт описание монтирования. Оно переопределяет текущее сохранённое значение, если таковое имеется.

  • audit_non_hmac_request_keys (array: []) - указывает список ключей, которые не будут проверяться HMAC устройствами аудита в объекте данных запроса.

  • audit_non_hmac_response_keys (array: []) - указывает список ключей, которые не будут проверяться HMAC устройствами аудита в объекте данных ответа.

  • listing_visibility (string: "") — указывает, отображать ли данное подключение в списке при вызове конечной точке, специфичной для пользовательского интерфейса. Допустимые значения: "unauth" или "hidden", значение по умолчанию — "", что эквивалентно "hidden".

  • passthrough_request_headers (array: []) - список заголовков, которые разрешается передавать из запроса в плагин.

  • allowed_response_headers (array: []) - список заголовков, которые разрешены для включения плагином в исходящий ответ.

  • plugin_version (string: "") – указывает семантическую версию используемого плагина, например, "v1.0.0". Изменения не вступят в силу до перезагрузки монтирования.

Пример тела запроса:
{
  "default_lease_ttl": 1800,
  "max_lease_ttl": 3600
}
Пример запроса:
curl \
  --header "X-Vault-Token: ..." \
  --request POST \
  --data @payload.json \
  http://127.0.0.1:8200/v1/sys/mounts/my-mount/tune