API для получения информации о ключах запросов
Получает информацию о ключах API с помощью Query DSL в страничном формате.
Запрос
GET /_security/_query/api_key
POST /_security/_query/api_key
Предварительные требования
- Для использования этого API необходимо иметь как минимум право доступа
manage_own_api_keyк кластеру. - Если у вас есть только право доступа
manage_own_api_key, этот API возвращает только ключи API, которые вы владеете. Если у вас есть право доступаmanage_api_keyили выше (включаяmanage_security), этот API возвращает все ключи API независимо от владения.
Описание
Используйте этот API для получения ключей API, созданных с помощью API создания ключа API, в страничном формате. Вы можете необязательно фильтровать результаты с помощью запроса.
Тело запроса
Вы можете указать следующие параметры в теле запроса:
-
query -
(Необязательно, строка) Запрос для фильтрации возвращаемых ключей API. Запрос поддерживает подмножество типов запросов, включая
match_all,bool,term,terms,ids,prefix,wildcardиrange.Вы можете запросить всю общедоступную информацию, связанную с ключом API, включая следующие значения.
Допустимые значения для
query-
id - Идентификатор ключа API. Обратите внимание, что
idнеобходимо запросить с помощьюidsзапроса. -
name - Название ключа API.
-
creation - Время создания ключа API в миллисекундах.
-
expiration - Время истечения срока действия ключа API в миллисекундах.
-
invalidated - Указывает, является ли ключ API недействительным. Если
true, ключ недействителен. По умолчаниюfalse. -
username - Имя пользователя владельца ключа API.
-
realm - Имя области владельца ключа API.
-
metadata - Поле метаданных, связанное с ключом API, например,
metadata.my_field. Поскольку метаданные хранятся в виде поля flattened, все поля ведут себя как поляkeywordпри запросе и сортировке.
-
-
from -
(Необязательно, целое число) Начальный смещение документа. По умолчанию
0.По умолчанию нельзя просмотреть более 10 000 совпадений с параметрами
fromиsize. Для просмотра большего количества совпадений используйте параметрsearch_after. -
size -
(Необязательно, целое число) Количество совпадений для возврата. Должно быть неотрицательным и по умолчанию равно
10.По умолчанию нельзя просмотреть более 10 000 совпадений с параметрами
fromиsize. Для просмотра большего количества совпадений используйте параметрsearch_after. -
sort - (Необязательно, объект) Определение сортировки. Помимо
id, все общедоступные поля ключа API пригодны для сортировки. Кроме того, сортировка может быть применена к полю_docдля сортировки по порядку индекса. -
search_after - (Необязательно, массив) Определение поиска после.
Тело ответа
Этот API возвращает следующие поля верхнего уровня:
-
total - Общее количество найденных ключей API.
-
count - Количество ключей API, возвращённых в ответе.
-
api_keys - Список информации о ключах API.
Примеры
Следующий запрос выводит все ключи API, предполагая, что у вас есть право доступа manage_api_key:
GET /_security/_query/api_key
Успешный вызов возвращает JSON-структуру, которая содержит информацию, полученную от одного или нескольких ключей API:
{
"total": 3,
"count": 3,
"api_keys": [
{
"id": "nkvrGXsB8w290t56q3Rg",
"name": "my-api-key-1",
"creation": 1628227480421,
"expiration": 1629091480421,
"invalidated": false,
"username": "elastic",
"realm": "reserved",
"metadata": {
"letter": "a"
}
},
{
"id": "oEvrGXsB8w290t5683TI",
"name": "my-api-key-2",
"creation": 1628227498953,
"expiration": 1628313898953,
"invalidated": false,
"username": "elastic",
"realm": "reserved",
"metadata": {
"letter": "b"
}
}
]
} | Список ключей API, полученных для этого запроса |
Если вы создаете ключ API со следующими данными:
POST /_security/api_key
{
"name": "application-key-1",
"metadata": { "application": "my-application"}
} Успешный вызов возвращает JSON-структуру, которая предоставляет информацию о ключе API. Например:
{
"id": "VuaCfGcBCdbkQm-e5aOx",
"name": "application-key-1",
"api_key": "ui2lp2axTNmsyakw9tvNnw",
"encoded": "VnVhQ2ZHY0JDZGJrUW0tZTVhT3g6dWkybHAyYXhUTm1zeWFrdzl0dk5udw=="
} Используйте информацию из ответа для получения ключа API по идентификатору:
GET /_security/_query/api_key
{
"query": {
"ids": {
"values": [
"VuaCfGcBCdbkQm-e5aOx"
]
}
}
} Вы также можете получить ключ API по имени:
GET /_security/_query/api_key
{
"query": {
"term": {
"name": {
"value": "application-key-1"
}
}
}
} Используйте bool запрос для создания сложных логических условий и используйте from, size, sort, чтобы помочь в постраничном отображении результата:
{
"query": {
"bool": {
"must": [
{
"prefix": {
"name": "app1-key-"
}
},
{
"term": {
"invalidated": "false"
}
}
],
"must_not": [
{
"term": {
"name": "app1-key-01"
}
}
],
"filter": [
{
"wildcard": {
"username": "org-*-user"
}
},
{
"term": {
"metadata.environment": "production"
}
}
]
}
},
"from": 20,
"size": 10,
"sort": [
{ "creation": { "order": "desc", "format": "date_time" } },
"name"
]
} | Имя ключа API должно начинаться с | |
| Ключ API должен быть действительным | |
| Имя ключа API не должно быть | |
| Ключ API должен принадлежать пользователю с именем шаблона | |
| Ключ API должен иметь поле метаданных | |
| Смещение для начала поиска результата — 20-й (индекс с нуля) ключ API | |
| Размер страницы ответа — 10 ключей API | |
| Результат отсортирован по дате создания |
Ответ содержит список совпавших ключей API вместе со значениями сортировки:
{
"total": 100,
"count": 10,
"api_keys": [
{
"id": "CLXgVnsBOGkf8IyjcXU7",
"name": "app1-key-79",
"creation": 1629250154811,
"invalidated": false,
"username": "org-admin-user",
"realm": "native1",
"metadata": {
"environment": "production"
},
"_sort": [
"2021-08-18T01:29:14.811Z",
"app1-key-79"
]
},
{
"id": "BrXgVnsBOGkf8IyjbXVB",
"name": "app1-key-78",
"creation": 1629250153794,
"invalidated": false,
"username": "org-admin-user",
"realm": "native1",
"metadata": {
"environment": "production"
},
"_sort": [
"2021-08-18T01:29:13.794Z",
"app1-key-78"
]
},
...
]
} | Первое значение сортировки — время создания, которое отображается в | |
| Второе значение сортировки — имя ключа API |
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/security-api-query-api-key.html