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

Entity

1. Создание сущности

Эта конечная точка создает или обновляет сущность.

Метод Путь

POST

/identity/entity

1.1. Параметры

  • name (string: entity-<UUID>) - имя сущности;

  • id (string: <необязательно>) - ID сущности. Если установлен, обновляет соответствующую существующую сущность;

  • metadata (key-value-map: {}) - метаданные, которые будут ассоциироваться с сущностью;

  • policies (list of strings: []) - политики, которые будут привязаны к сущности;

  • disabled (bool: false) - является ли сущность отключенной. Связанные токены отключенных сущностей не могут быть использованы, но не аннулируются.

Пример тела запроса:
{
  "metadata": {
    "organization": "starvault",
    "team": "starvault"
  },
  "policies": ["eng-dev", "infra-dev"]
}
Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/identity/entity
Пример ответа:
{
  "data": {
    "id": "8d6a45e5-572f-8f13-d226-cd0d1ec57297",
    "aliases": null,
    "name":"entity_ff358508"
  }
}

2. Чтение сущности по ID

Эта конечная точка запрашивает сущность по ее идентификатору.

Метод Путь

GET

/identity/entity/id/:id

2.1. Параметры

  • id (string: <обязательно>) - идентификатор сущности.

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    http://127.0.0.1:8200/v1/identity/entity/id/8d6a45e5-572f-8f13-d226-cd0d1ec57297
Пример ответа:
{
  "request_id": "19291742-3021-fa6c-7493-5ec86deca0a5",
  "lease_id": "",
  "renewable": false,
  "lease_duration": 0,
  "data": {
    "aliases": [],
    "creation_time": "2025-07-29T09:03:26.236053691Z",
    "direct_group_ids": [],
    "disabled": false,
    "group_ids": [],
    "id": "8d6a45e5-572f-8f13-d226-cd0d1ec57297",
    "inherited_group_ids": [],
    "last_update_time": "2025-07-29T09:03:26.236053691Z",
    "merged_entity_ids": null,
    "metadata": {
      "organization": "starvault",
      "team": "starvault"
    },
    "name": "entity_ff358508",
    "namespace_id": "root",
    "policies": [
      "eng-dev",
      "infra-dev"
    ]
  },
  "wrap_info": null,
  "warnings": null,
  "auth": null
}

3. Обновление сущности по ID

Эта конечная точка используется для обновления существующей сущности.

Метод Путь

POST

/identity/entity/id/:id

3.1. Параметры

  • id (string: <обязательно>) - идентификатор сущности;

  • name (string: entity-<UUID>) - имя сущности;

  • metadata (key-value-map: {}) - метаданные, которые будут ассоциироваться с сущностью;

  • policies (list of strings: []) - политики, которые будут привязаны к сущности;

  • disabled (bool: false) - является ли сущность отключенной. Связанные токены отключенных сущностей не могут быть использованы, но не аннулируются.

Пример тела запроса:
{
  "name": "updatedEntityName",
  "metadata": {
    "organization": "starvault",
    "team": "nomad"
  },
  "policies": ["eng-developers", "infra-developers"]
}
Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/identity/entity/id/8d6a45e5-572f-8f13-d226-cd0d1ec57297

4. Удаление сущности по ID

Эта конечная точка удаляет сущность и все ее связанные псевдонимы.

Метод Путь

DELETE

/identity/entity/id/:id

4.1. Параметры

  • id (string: <обязательно>) - идентификатор сущности.

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request DELETE \
    http://127.0.0.1:8200/v1/identity/entity/id/8d6a45e5-572f-8f13-d226-cd0d1ec57297

5. Пакетное удаление сущностей

Эта конечная точка удаляет все указанные сущности.

Метод Путь

POST

/identity/entity/batch-delete

5.1. Параметры

  • entity_ids ([]string: <обязательно>) - список идентификаторов сущностей для удаления.

Пример тела запроса:
{
  "entity_ids": [
    "02fe5a88-912b-6794-62ed-db873ef86a95",
    "3bf81bc9-44df-8138-57f9-724a9ae36d04",
    "627fba68-98c9-c012-71ba-bfb349585ce1",
    "6c4c805b-b384-3d0e-4d51-44d349887b96",
    "70a72feb-35d1-c775-0813-8efaa8b4b9b5",
    "f1092a67-ce34-48fd-161d-c13a367bc1cd",
    "faedd89a-0d82-c197-c8f9-93a3e6cf0cd0"
  ]
}
Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/identity/entity/batch-delete

6. Список сущностей по ID

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

Метод Путь

LIST

/identity/entity/id

GET

/identity/entity/id?list=true

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request LIST \
    http://127.0.0.1:8200/v1/identity/entity/id
Пример ответа:
{
  "data": {
    "keys": [
      "02fe5a88-912b-6794-62ed-db873ef86a95",
      "3bf81bc9-44df-8138-57f9-724a9ae36d04",
      "627fba68-98c9-c012-71ba-bfb349585ce1",
      "6c4c805b-b384-3d0e-4d51-44d349887b96",
      "70a72feb-35d1-c775-0813-8efaa8b4b9b5",
      "f1092a67-ce34-48fd-161d-c13a367bc1cd",
      "faedd89a-0d82-c197-c8f9-93a3e6cf0cd0"
    ]
  }
}

7. Создание/обновление сущности по имени

Эта конечная точка используется для создания или обновления сущности по заданному имени.

Метод Путь

POST

/identity/entity/name/:name

7.1. Параметры

  • name (string: entity-<UUID>) - имя сущности;

  • metadata (key-value-map: {}) - метаданные, которые будут ассоциироваться с сущностью;

  • policies (list of strings: []) - политики, которые будут привязаны к сущности;

  • disabled (bool: false) - является ли сущность отключенной. Связанные токены отключенных сущностей не могут быть использованы, но не аннулируются.

Пример тела запроса:
{
  "metadata": {
    "organization": "starvault",
    "team": "nomad"
  },
  "policies": ["eng-developers", "infra-developers"]
}
Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/identity/entity/name/testentityname
Пример ответа:
{
  "data": {
    "aliases": null,
    "id": "0826be06-577c-a076-3942-2f92da0310ce",
    "name": "testentityname"
  }
}

8. Чтение сущности по имени

Эта конечная точка запрашивает сущность по ее имени.

Метод Путь

GET

/identity/entity/name/:name

8.1. Параметры

  • name (string: <обязательно>) - имя сущности.

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    http://127.0.0.1:8200/v1/identity/entity/name/testentityname
Пример ответа:
{
  "request_id": "419f28b2-823b-3ada-1db7-0a5cfc2f163f",
  "lease_id": "",
  "renewable": false,
  "lease_duration": 0,
  "data": {
    "aliases": [],
    "creation_time": "2025-07-29T09:17:20.328729846Z",
    "direct_group_ids": [],
    "disabled": false,
    "group_ids": [],
    "id": "d9b54ce3-dc1c-3861-bbbc-d31ec064b3ba",
    "inherited_group_ids": [],
    "last_update_time": "2025-07-29T09:17:20.328729846Z",
    "merged_entity_ids": null,
    "metadata": {
      "organization": "starvault",
      "team": "nomad"
    },
    "name": "testentityname",
    "namespace_id": "root",
    "policies": [
      "eng-developers",
      "infra-developers"
    ]
  },
  "wrap_info": null,
  "warnings": null,
  "auth": null
}

9. Удаление сущности по имени

Эта конечная точка удаляет сущность и все ее связанные псевдонимы, по данному имени сущности.

Метод Путь

DELETE

/identity/entity/name/:name

9.1. Параметры

  • name (string: <обязательно>) - имя сущности.

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request DELETE \
    http://127.0.0.1:8200/v1/identity/entity/name/testentityname

10. Список сущностей по имени

Эта конечная точка возвращает список доступных сущностей по их именам.

Метод Путь

LIST

/identity/entity/name

GET

/identity/entity/name?list=true

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request LIST \
    http://127.0.0.1:8200/v1/identity/entity/name
Пример ответа:
{
  "data": {
    "keys": ["testentityname"]
  }
}

11. Объединение сущностей

Эта конечная точка объединяет множество сущностей в одну сущность. Кроме того, все группы, связанные с from_entity_ids, объединяются с группами to_entity_id. Обратите внимание, что если эти сущности содержат псевдонимы, которые используют один и тот же доступ к монтированию, объединение не удастся, если conflicting_alias_ids_to_keep не указан, и сущности должны объединяться по одной. Это связано с тем, что каждая сущность может иметь только один псевдоним с каждым доступом к монтированию - для получения дополнительной информации обратитесь к странице концепций идентификации.

Метод Путь

POST

/identity/entity/merge

11.1. Параметры

  • from_entity_ids (list of strings: <обязательно>) - идентификаторы сущностей, которые нужно объединить.

  • to_entity_id (string: <обязательно>) - идентификатор сущности, в которую все остальные сущности будут объединены.

  • force (bool: false) - установка этого параметра позволит следовать стратегии 'mine' для объединения секретов MFA. Если в сущностях есть секреты одного и того же типа, как в сущностях, которые объединяются, так и в сущности, в которую все остальные будут объединены, секреты в назначении останутся неизменными. Если не установлен, этот API выдаст ошибку, содержащую все конфликты.

  • conflicting_alias_ids_to_keep (list of strings: []) - список псевдонимов сущностей, которые нужно сохранить в случае, если у сущности назначения и сущности источника есть псевдонимы с одинаковым доступом к монтированию. В случае, если псевдонимы используют одни и те же доступы к монтированию, идентификатор псевдонима, указанный в этом списке, будет сохранен или объединен, а другой псевдоним будет удален. Обратите внимание, что объединения, требующие этого параметра, должны иметь только одну сущность источника.

Пример тела запроса:
{
  "to_entity_id": "f2cdefbe-f510-a226-77fa-989a48ba6abc",
  "from_entity_ids": [
    "1ade80ec-ba5c-8eed-91e2-b9dcd41d6fff",
    "270976d0-9bab-14a5-4b92-3861805ef73d"
  ]
}
Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/identity/entity/merge