|
|
| Строка 1: |
Строка 1: |
| '''<u>Не актуально</u>'''
| |
|
| |
|
| -
| |
|
| |
| Ключ-АСТРОМ использует модель разрешений для '''Grail'''. Это относится ко всем телеметрическим данным, таким как метрики, события, диапазоны и логи.
| |
|
| |
| Мы рекомендуем настраивать права доступа в соответствии с организационными рамками и областями развертывания. Подходящие концепции включают группы хостов, кластеры '''Kubernetes''' и пространства имен '''Kubernetes'''. Эти атрибуты обычно доступны для всех телеметрических данных, получаемых с помощью методов сбора данных Ключ-АСТРОМ, таких как ЕдиныйАгент, '''OpenTelemetry''' или '''Kubernetes''' '''Operator'''. Следовательно, вы можете использовать эти атрибуты для включения прав доступа на уровне записей .
| |
|
| |
| Для развертываний на основе '''Kubernetes''' убедитесь, что в Ключ-АСТРОМ '''Operator''' включено [[Настройка директории расширений|обогащение метаданных]].
| |
|
| |
| Если вам требуется лишь базовая концепция разрешений, лучшим вариантом будет настройка разрешений на уровне сегмента ('''bucket'''). Затем вы сможете направлять свои данные в нужный сегмент в '''OpenPipeline''', сопоставляя их с одним из упомянутых основных полей '''Grail''', имеющих отношение к развертыванию.
| |
|
| |
| Для более точного управления в Ключ-АСТРОМ можно настроить границы политик с более детальными ограничениями на уровне данных. По умолчанию можно использовать следующие атрибуты:
| |
|
| |
| * <code>dt.host_group.id</code>
| |
| * <code>k8s.cluster.name</code>
| |
| * <code>k8s.namespace.name</code>
| |
| * Любой другой атрибут, указанный в модели разрешений.
| |
|
| |
| Ключ-АСТРОМ предоставляет комплексную модель разрешений для '''Grail''', которая применяется ко всем телеметрическим данным, включая метрики, логи, диапазоны и события.
| |
|
| |
| == Настройте контекст безопасности ==
| |
| Если прав доступа к атрибутам уровня развертывания или уровня корзины недостаточно, Ключ-АСТРОМ позволяет настроить более детальные права доступа, добавив атрибут <code>dt.security_context</code> к вашим данным. Этот контекст может представлять вашу архитектуру безопасности и даже быть иерархическим, если закодировать его в строку, например: <code>department-A/department-AB/team-C</code>.
| |
|
| |
| === Используйте существующие теги в источнике ===
| |
| Контекст безопасности можно определить на уровне источника с помощью меток или аннотаций ЕдиногоАгента, '''OpenTelemetry''' или '''Kubernetes'''. Это позволяет использовать существующие метки и теги для управления правами доступа в Ключ-АСТРОМ.
| |
|
| |
| == Настройте контекст безопасности в OpenPipeline ==
| |
| В качестве альтернативы вы можете определить контекст безопасности на основе существующих атрибутов ресурсов для ваших данных [[Обработка OpenPipeline|трассировки в OpenPipeline]]:
| |
|
| |
| 1. Отфильтруйте записи, которым следует добавить атрибут <code>dt.security_context</code>. Для этого откройте новый блокнот и создайте фильтрующий '''DQL'''-запрос, например:
| |
| {| class="wikitable"
| |
| |fetch spans
| |
|
| |
| <nowiki>|</nowiki> filter matchesPhrase(deployment.release_stage, "prod-")
| |
| |}
| |
| Этот запрос позволяет отфильтровать записи с атрибутом '''span''', к которым вы хотите добавить атрибут <code>dt.security_context</code>. После того, как вы будете удовлетворены результатом запроса, скопируйте функцию обработки '''span''' из '''DQL'''-запроса, в данном случае: <code>matchesPhrase(deployment.release_stage, "prod-")</code>.
| |
|
| |
| 2. Определите правило контекста безопасности '''spans''', используя полученную функцию, и укажите значение атрибута <code>dt.security_context</code>. Значение атрибута <code>dt.security_context</code> может быть предоставленным вами литеральным значением или именем другого атрибута; это значение будет использоваться в качестве значения <code>dt.security_context</code>.
| |
|
| |
| == Рекомендации по разрешениям для распределенных трассировок ==
| |
| Как правило, для распределенной трассировки настраиваются права доступа, позволяющие пользователям видеть полную сквозную трассировку. Трассировки часто охватывают несколько сервисов, хостов или кластеров, и пересечение трассировок с ограничениями по правам доступа может привести к неполным или фрагментированным данным. Хотя аналитика трассировки на уровне сервисов пострадает меньше, и приложение распределенной трассировки будет работать нормально, потенциальная нехватка видимости повлияет на аналитику и устранение неполадок.
| |
|
| |
| При настройке прав доступа для распределенной трассировки учитывайте следующие рекомендации:
| |
|
| |
| # Избегайте «разрыва» трассировок — обеспечьте пользователям доступ ко всем спанам в рамках трассировки, которые релевантны их роли или этапу развёртывания, одновременно ограничив доступ к чувствительным сервисам. Поэтому настраивайте гибкие права доступа и избегайте границ, полностью ограничивающих доступ к спанам внутри трассировки: это может помешать всестороннему анализу. Например:
| |
| #* предоставляйте доступ ко всем спанам на соответствующем этапе развёртывания (например, в среде тестирования или продуктивной среде);
| |
| #* либо в пределах организационных единиц (например, отдела или географического региона);
| |
| #* при этом ограничивайте доступ только к чувствительным сервисам (например, к системе единого входа — SSO).
| |
| # Используйте защиту на уровне полей для конфиденциальных данных — вместо ограничения доступа ко всем участкам трассировки или трассировкам, используйте защиту на уровне полей для защиты конфиденциальной информации.
| |
| #* Ключ-АСТРОМ автоматически определяет выбранные атрибуты трассировки, заданные в глобальном справочнике полей, и запрашивает атрибуты, помеченные как конфиденциальные.
| |
| #* Доступ к конфиденциальным полям <code>builtin-sensitive-spans</code> и <code>builtin-request-attributes-spans</code> имеют только пользователи, обладающие соответствующими правами доступа .
| |
| #* Также можно определить пользовательские наборы полей для указания конфиденциальных атрибутов и области их применения.
| |
| # Используйте контекст безопасности для определения разрешений для отдельных записей трассировки — Ключ-АСТРОМ позволяет настраивать поступающие данные трассировки, добавляя атрибут <code>dt.security_context</code> к конкретным записям. Это позволяет устанавливать дополнительные параметры, такие как разрешения для отдельных записей. Для создания контекста безопасности для поступающих данных трассировки необходимо создать правило пайплайна.
| |
|
| |
| == Права доступа пользователей к распределенной трассировке ==
| |
| При работе с распределенной трассировкой убедитесь, что вы прочитали и установили все необходимые права доступа:
| |
| {| class="wikitable"
| |
| !Область действия политики
| |
| !Права доступа
| |
| |-
| |
| |Чтение данных сегментов
| |
| |<code>storage:buckets:read</code>
| |
| |-
| |
| |Чтение данных спанов
| |
| |<code>storage:spans:read</code>
| |
| |-
| |
| |Чтение данных сущностей
| |
| |<code>storage:entities:read</code>
| |
| |-
| |
| |Чтение данных логов
| |
| |<code>storage:logs:read</code>
| |
| |-
| |
| |Чтение данных сегментов фильтра
| |
| |<code>storage:filter-segments:read</code>
| |
| |-
| |
| |Просмотр конфиденциальных полей, данные трассировки <sup>1 2</sup>
| |
| |<code>storage:fieldsets:read WHERE storage:fieldset-name="builtin-sensitive-spans</code>
| |
|
| |
|
| |
| <code>storage:fieldsets:read WHERE storage:fieldset-name="builtin-request-attributes-spans</code>
| |
| |-
| |
| |Чтение состояний приложения пользователя
| |
| |<code>state:user-app-states:read</code>
| |
| |-
| |
| |Запись состояний пользовательского приложения
| |
| |<code>state:user-app-states:write</code>
| |
| |-
| |
| |Удаление состояний приложения пользователя
| |
| |<code>state:user-app-states:delete</code>
| |
| |}
| |
| <sup>1</sup> Конфиденциальные атрибуты для спанов помечаются в соответствии с глобальной ссылкой на поле <code>sensitive-spans</code>.
| |
|
| |
| <sup>2</sup> Чтобы узнать больше об ограниченном доступе к персональным данным и атрибутам конфиденциальных запросов, см. раздел «[[Настройка параметров конфиденциальности данных для веб-приложения|Маскирование при отображении]]».
| |