Ключи приложений
Ключ приложения (Application Key) позволяет приложениям и агентам записывать метрики, логи и трейсы в Monium.
Ключ приложения рекомендуется для записи телеметрии в один проект. API-ключ подойдет, если интеграция уже использует сервисный аккаунт или требует управления доступом через роли IAM. Его права доступа определяются ролями сервисного аккаунта и областью действия ключа.
Ограничения ключа приложения:
- Разрешает только запись телеметрии. С его помощью нельзя читать данные или управлять настройками проекта.
- Привязан к одному проекту. Отправить данные в другой проект по этому ключу нельзя.
- Область действия определяет доступные для записи типы телеметрии и не меняется после создания ключа. Чтобы изменить набор типов, создайте новый ключ.
Эти ограничения уменьшают возможный ущерб при утечке ключа. Для API-ключа также назначайте минимально необходимые роли сервисному аккаунту и ограничивайте область действия ключа.
Кластер и сервис указываются при отправке данных, а не в настройках ключа. На автоматическое создание шардов и запись данных распространяются общие квоты и лимиты.
Ключи приложений можно использовать в клиентском коде веб-приложений и мобильных приложений. Храните ключи в хранилище секретов, например Yandex Lockbox, или в переменных сборки и регулярно ротируйте.
Создать ключ
Для создания и удаления ключей нужны права администратора проекта.
-
На главной странице Monium
слева выберите Настройки → Ключи приложений. -
Слева вверху выберите нужный проект.
-
Нажмите Создать ключ.
-
В открывшемся окне задайте параметры:
- Название — произвольное имя ключа.
- Область действия — типы телеметрии, которые приложение будет записывать: Метрики, Логи, Трейсы.
-
Нажмите Создать.
-
В окне с созданным ключом нажмите Скопировать и сохраните ключ. Пример значения:
MONIUM_Fc6m****.
Полное значение ключа показывается только один раз. После закрытия окна посмотреть его нельзя: Monium хранит только хеш ключа.
В списке ключей отображаются название, идентификатор вида MONIUM**xxxxxxxx, область действия и дата создания. По умолчанию в проекте может быть до 1 000 активных ключей. Удаленные ключи не учитываются.
Отправить телеметрию
Передавайте ключ в заголовке Authorization с каждым запросом HTTP или gRPC:
Authorization: Application-Key MONIUM_Fc6m****
В запросе укажите идентификатор проекта, в котором создан ключ. Для проектов каталогов и облаков используйте folder__<идентификатор_каталога> и cloud__<идентификатор_облака>, для самостоятельно созданных проектов — их собственные идентификаторы.
Для отправки по протоколу OTLP используйте эндпоинты Monium. Передайте идентификатор проекта в заголовке x-monium-project. Чтобы явно выбрать кластер и сервис, задайте заголовки x-monium-cluster и x-monium-service.
Чтобы отправить тестовую метрику по HTTP в формате Push JSON, используйте ключ с областью действия Метрики и выполните запрос:
MONIUM_APPLICATION_KEY="<ключ_приложения>"
MONIUM_PROJECT_ID="<идентификатор_проекта>"
curl -sS -i -X POST \
"https://ingest.monium.yandex.cloud/api/v2/metrics?project=${MONIUM_PROJECT_ID}&cluster=test&service=test" \
-H "Authorization: Application-Key ${MONIUM_APPLICATION_KEY}" \
-H 'Content-Type: application/json' \
-d '{"sensors":[{"labels":{"sensor":"app_key_smoke_test"},"value":1}]}'
В примере метрика app_key_smoke_test отправляется в кластер test и сервис test указанного проекта.
Ротировать ключ
Для разных приложений можно создать отдельные ключи, чтобы ротировать их независимо.
Для ротации или изменения области действия замените ключ новым:
- Создайте новый ключ с нужной областью действия.
- Замените ключ в настройках приложения и убедитесь, что телеметрия поступает в Monium.
- На главной странице Monium
слева выберите Настройки → Ключи приложений. - Слева вверху выберите нужный проект.
- Чтобы удалить старый ключ, в его строке нажмите
.
Проверить использование ключа
Статистика проверок авторизации доступна в метриках сервиса __monitoring__ в проекте, в котором создан ключ:
auth.authorize.completed_ok— успешные проверки;auth.authorize.completed_error— проверки, завершившиеся ошибкой.
Для отбора метрик ключей приложений задайте метку type=application_key. Чтобы выбрать конкретный ключ и область действия, используйте метки visible_id и scope. В значении visible_id символы * из идентификатора в списке ключей заменены на _.
Типовые ошибки
|
HTTP-код |
Причина |
Что делать |
|
|
Ключ недействителен или удален. |
Проверьте значение заголовка |
|
|
Тип телеметрии не входит в область действия ключа, проект в запросе не совпадает с проектом ключа или ключ отозван. |
Проверьте область действия ключа и идентификатор проекта. Если ключ отозван, используйте новый. |
|
|
Сработало ограничение сервиса. |
Уточните причину в сообщении об ошибке и проверьте квоты и лимиты. |