Настройка разрешений для метрик

Материал из Документация Ключ-АСТРОМ

Настройка разрешений для метрик

Ключ-АСТРОМ использует модель разрешений для хранилища данных. Она применяется ко всем данным телеметрии, таким как метрики, события, спаны и логи. Рекомендуется настраивать разрешения в соответствии с организационной структурой и областями развёртывания. Подходящие концепции включают группы хостов, кластеры Kubernetes и пространства имён Kubernetes. Эти атрибуты обычно доступны для всех данных телеметрии, загружаемых через методы сбора Ключ-АСТРОМ, такие как ЕдиныйАгент, OpenTelemetry или Оператор. Следовательно, эти атрибуты можно использовать для включения разрешений на уровне записей. Для развёртываний на основе Kubernetes убедитесь, что Оператор Ключ-АСТРОМ имеет включённое обогащение метаданными.

Если вам нужна только базовая концепция разрешений, лучше всего настроить разрешения на уровне бакетов. Затем можно направить данные в правильный бакет в OpenPipeline, сопоставив одно из упомянутых полей, релевантных развёртыванию. Для большего контроля можно настроить границы политик с более детальными ограничениями на уровне данных. По умолчанию можно использовать следующие атрибуты:

  • dt.host_group.id
  • k8s.cluster.name
  • k8s.namespace.name
  • Любой другой атрибут, перечисленный в модели разрешений.

Ключ-АСТРОМ предоставляет комплексную модель разрешений для хранилища данных, которая применяется ко всем данным телеметрии, включая метрики, логи, спаны и события.

Настройка контекста безопасности

Если разрешений на атрибуты уровня развёртывания или на уровне бакета недостаточно, Ключ-АСТРОМ позволяет настроить детализированные разрешения, добавив атрибут dt.security_context к вашим данным. Этот контекст может представлять вашу архитектуру безопасности и может быть даже иерархическим, если закодировать его в строку вида: department-A/department-AB/team-C. Чтобы использовать dt.security_context и другие атрибуты для разрешений, убедитесь, что эти атрибуты присутствуют в ваших данных телеметрии.

Использование существующих тегов в источнике

Вы можете определить контекст безопасности в источнике через ЕдиныйАгент, OpenTelemetry или метки и аннотации Kubernetes. Это позволяет использовать существующие метки и теги для упрощения настройки разрешений в Ключ-АСТРОМ.

Настройка контекста безопасности в OpenPipeline

Вы можете определить контекст безопасности на основе существующих атрибутов ресурсов для ваших данных в OpenPipeline. Перейдите в Настройки > Обработка и контекстуализация > OpenPipeline > Метрики > Пайплайны, и после настройки пайплайна на вкладке Разрешения используйте опцию процессоров Set Security Context.

Чтобы определить атрибут dt.security_context:

  • Определите условие сопоставления для фильтрации записей метрик, которым нужно назначить контекст безопасности, например:
matchesValue(metric.key, "http.server.request.duration_bucket") and matchesValue(http.route, "/basket")
  • Добавьте dt.security_context для этих записей метрик. Значением этого атрибута может быть литеральное значение, например TeamA, или значение, скопированное из другого поля, присутствующего в записи метрики.
  • Убедитесь, что ваш контекст безопасности задан правильно. Когда поступят новые данные метрик, процессоры контекста безопасности OpenPipeline добавят атрибут dt.security_context со значением TeamA к соответствующим записям метрик.
  • Чтобы подтвердить, что ваши процессоры контекста безопасности обработали записи метрик, откройте Блокноты и выполните запрос DQL, например:
timeseries median(http.server.request.duration_bucket), by:{http.route, dt.security_context}
| filter matchesValue(dt.security_context, "TeamA")

На основе созданного атрибута можно применять политики безопасности для пользователей и групп.