Настройка прав доступа Grail для распределенных трассировок: различия между версиями

Материал из Документация Ключ-АСТРОМ
(Новая страница: «Ключ-АСТРОМ использует модель разрешений для '''Grail'''. Это относится ко всем телеметричес...»)
 
 
Строка 1: Строка 1:
'''<u>Не актуально</u>'''
-
Ключ-АСТРОМ использует модель разрешений для '''Grail'''. Это относится ко всем телеметрическим данным, таким как метрики, события, диапазоны и логи.
Ключ-АСТРОМ использует модель разрешений для '''Grail'''. Это относится ко всем телеметрическим данным, таким как метрики, события, диапазоны и логи.



Текущая версия на 08:37, 6 февраля 2026

Не актуально

-

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

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

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

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

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

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

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

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

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

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

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

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

В качестве альтернативы вы можете определить контекст безопасности на основе существующих атрибутов ресурсов для ваших данных трассировки в OpenPipeline:

1. Отфильтруйте записи, которым следует добавить атрибут dt.security_context. Для этого откройте новый блокнот и создайте фильтрующий DQL-запрос, например:

fetch spans

| filter matchesPhrase(deployment.release_stage, "prod-")

Этот запрос позволяет отфильтровать записи с атрибутом span, к которым вы хотите добавить атрибут dt.security_context. После того, как вы будете удовлетворены результатом запроса, скопируйте функцию обработки span из DQL-запроса, в данном случае: matchesPhrase(deployment.release_stage, "prod-").

2. Определите правило контекста безопасности spans, используя полученную функцию, и укажите значение атрибута dt.security_context. Значение атрибута dt.security_context может быть предоставленным вами литеральным значением или именем другого атрибута; это значение будет использоваться в качестве значения dt.security_context.

Рекомендации по разрешениям для распределенных трассировок

Как правило, для распределенной трассировки настраиваются права доступа, позволяющие пользователям видеть полную сквозную трассировку. Трассировки часто охватывают несколько сервисов, хостов или кластеров, и пересечение трассировок с ограничениями по правам доступа может привести к неполным или фрагментированным данным. Хотя аналитика трассировки на уровне сервисов пострадает меньше, и приложение распределенной трассировки будет работать нормально, потенциальная нехватка видимости повлияет на аналитику и устранение неполадок.

При настройке прав доступа для распределенной трассировки учитывайте следующие рекомендации:

  1. Избегайте «разрыва» трассировок — обеспечьте пользователям доступ ко всем спанам в рамках трассировки, которые релевантны их роли или этапу развёртывания, одновременно ограничив доступ к чувствительным сервисам. Поэтому настраивайте гибкие права доступа и избегайте границ, полностью ограничивающих доступ к спанам внутри трассировки: это может помешать всестороннему анализу. Например:
    • предоставляйте доступ ко всем спанам на соответствующем этапе развёртывания (например, в среде тестирования или продуктивной среде);
    • либо в пределах организационных единиц (например, отдела или географического региона);
    • при этом ограничивайте доступ только к чувствительным сервисам (например, к системе единого входа — SSO).
  2. Используйте защиту на уровне полей для конфиденциальных данных — вместо ограничения доступа ко всем участкам трассировки или трассировкам, используйте защиту на уровне полей для защиты конфиденциальной информации.
    • Ключ-АСТРОМ автоматически определяет выбранные атрибуты трассировки, заданные в глобальном справочнике полей, и запрашивает атрибуты, помеченные как конфиденциальные.
    • Доступ к конфиденциальным полям builtin-sensitive-spans и builtin-request-attributes-spans имеют только пользователи, обладающие соответствующими правами доступа .
    • Также можно определить пользовательские наборы полей для указания конфиденциальных атрибутов и области их применения.
  3. Используйте контекст безопасности для определения разрешений для отдельных записей трассировки — Ключ-АСТРОМ позволяет настраивать поступающие данные трассировки, добавляя атрибут dt.security_context к конкретным записям. Это позволяет устанавливать дополнительные параметры, такие как разрешения для отдельных записей. Для создания контекста безопасности для поступающих данных трассировки необходимо создать правило пайплайна.

Права доступа пользователей к распределенной трассировке

При работе с распределенной трассировкой убедитесь, что вы прочитали и установили все необходимые права доступа:

Область действия политики Права доступа
Чтение данных сегментов storage:buckets:read
Чтение данных спанов storage:spans:read
Чтение данных сущностей storage:entities:read
Чтение данных логов storage:logs:read
Чтение данных сегментов фильтра storage:filter-segments:read
Просмотр конфиденциальных полей, данные трассировки 1 2 storage:fieldsets:read WHERE storage:fieldset-name="builtin-sensitive-spans


storage:fieldsets:read WHERE storage:fieldset-name="builtin-request-attributes-spans

Чтение состояний приложения пользователя state:user-app-states:read
Запись состояний пользовательского приложения state:user-app-states:write
Удаление состояний приложения пользователя state:user-app-states:delete

1 Конфиденциальные атрибуты для спанов помечаются в соответствии с глобальной ссылкой на поле sensitive-spans.

2 Чтобы узнать больше об ограниченном доступе к персональным данным и атрибутам конфиденциальных запросов, см. раздел «Маскирование при отображении».