Yandex DataLens отличный инструмент для прототипирования дашбордов BI или разработки дашбордов небольшой сложности, направленный на быстрое и удобное взаимодействие. Тем не менее, при работе с ним у многих возникает вопрос: как разграничить права доступа в DataLens для предоставления дашборда заказчику. В данной статье мы рассмотрим несколько вариант как можно предоставить дашборд.

Yandex DataLens предполагает два варианта возможности предоставления дашборда:

1. Открытый доступ для просмотра всем, у кого есть ссылка на дашборд.

  • Этот вариант хорошо подходит в тех случаях, когда необходимо предоставить заказчику пример своих демо-работ для ознакомления с возможностями с системой. Но совершенно не подходит для предоставления результатов, проделанных работ по клиенту. Так как в таком случае мы не можем контролировать кто и с кем будет делиться этой ссылкой, тем самым создавая ситуацию по возможной утечке конфиденциальных данных, отображаемых в дашброде. 
    Для реализации такого варианта необходимо:
    перейти на страницу дашборда, затем: в верхнем меню найти кнопку «» (1 на скриншоте — в открывшемся дропдауне нужно выбрать последний пункт «Публичный доступ» (2 на скриншоте)
Enable Public access

В открывшемся модальном окне можно выбрать видимость самого дашборда – перевести ползунок в активное состояние, чтобы он стал публичным и был доступен по ссылке (3 на скриншоте). Cправа появится ссылка, которую нужно сохранить, именно по ней и будет доступен дашборд для публичного просмотра (4 на скриншоте). Ниже, в этом же модальном окне в категориях «Связанные чарты», «Связанные датасеты» и «Связанные подключения» можно настроить доступ к каждой части дашборда, как правило в публичном дашборде нет необходимости что-то скрывать, поэтому мы кликнем на кнопку «Включить все» (5 на скриншоте) напротив заголовка каждой категории, чтобы они подключились, в том случае если система не сделала это за нас в автоматическом режиме. В конце нажимаем «Применить» (6 на скриншоте), чтобы сохранить изменения.

Config Public access

Готово, мы сделали дашборд публичным. Теперь откроем его по заранее сохраненной ссылке и посмотрим на него.  В таком варианте, как уже было сказано выше, те, у кого есть ссылка, могут просматривать его, но ничего менять не могут.

2. Приватный доступ

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

Здесь стоит прояснить какое положение сервис Yandex DataLens имеет в экосистеме Yandex Cloud. Yandex DataLens вынесен в отдельную когорту, он не закреплен за стандартными ресурсами вроде облаков или вложенных в облака каталогов, в которых находятся ВМ, БД и прочее. Так что для оформления прав в DataLens сначала придется добавить пользователя в организацию и предоставить права для входа в DataLens, а уже затем предоставить права внутри самого сервиса DataLens. Разберемся сначала с первым пунктом.

Оформление доступа к DataLens

Для оформления доступа пользователю к DataLens необходимо перейти на страницу организации (1 на скриншоте, прим. такой интерфейс будет только в старом дизайне, если вы перешли на новой дизайн, то воспользуйтесь ссылкой выше), если при клике появится окно выбора организации, выберите ту, в которой необходимо добавить пользователя.

Go to new page

Попав в организацию, перейдите во вкладку «Пользователи», если вас на нее не перебросило автоматически (2 на скриншоте). Убедившись, что вы находитесь на вкладке «Пользователи» нажмите на кнопку «Добавить пользователя».

В появившемся модальном окне в поле ввода добавьте почту(ы) пользователя(ей) (4 на скриншоте), которому нужно предоставить доступ и нажмите кнопку «Добавить» (5 на скриншоте).

Важная ремарка, почта должна ассоциироваться с аккаунтом Яндекса, так что если у вашего заказчика используются своя доменная почта, то ему необходимо зарегистрировать свой домен в Яндекс для бизнеса. Там заказчику необходимо добавить своих сотрудников в свою организацию, чтобы их рабочие почты ассоциировались с учетной записью Яндекса. Если он этого не сделает, то при добавлении пользователя появится ошибка в правом нижнем углу. Если же заказчик уже добавил рабочие почты в свою организацию или вы имеете дело с персональными аккаунтами Яндекса, то можете спокойно добавлять их, об успешном добавлении справа снизу вам просигнализируем уведомление.

Enter user email

Найдите нужного пользователя в списке сотрудников организации и нажмите кнопку «» (6 на скриншоте), в открывшемся дропдауне нужно выбрать последний пункт «Настроить доступ» (7 на скриншоте).

Go to user pref

В открывшемся модальном окне нажмите на кнопку «Добавить роль» (8 на скриншоте), появится список с возможными ролями, найдите роль «datalens.instances.user» (9 на скриншоте). Роль datalens.instances.user – не позволяет просматривать ваши ресурсы из облаков и прочее, предоставляя лишь доступ ко входу в сервис DataLens, подробнее про роли. Нажимаем на кнопку «Сохранить» (10 на скриншоте). Если в будущем мы захотим отключить пользователя от DataLens (запретить вход на сервис), то нам достаточно будет снять с него роль datalens.instances.user.

Готово, теперь пользователь может входить в сервис DataLens. Но это лишь часть решения, теперь нам необходимо выдать ему права внутри самого DataLens.

Оформление доступа внутри DataLens

Как мы уже писали выше, роли внутри самого DataLens никак не зависят от ролей, выданных во вкладке организации Yandex Cloud. Роли внутри DataLens выставляются на уровне папок. Доходит до того, что даже владелец организации (самая высшая роль), в которой базируется DataLens, должен запрашивать доступ у создателя папки (создатель папки имеет роль – администратор, установленной на папке), чтобы можно было заглянуть внутрь.

Принцип папочного доступа

Как мы уже упомянули выше, доступы в DataLens лучше всего осуществлять с помощью папок. Это работает так: в корне проектов создадим папку «Заказчики», доступ к ней будет у всех пользователей, которые имеют доступ к DataLens. Уже в папке «Заказчики» будут лежать уже приватные папки для каждого заказчика. Доступ к которой будут выдаваться только сотрудникам одноименного заказчика. Таким образом сотрудники одного заказчика не смогут зайти в папки других заказчиков, имея доступ лишь к одной папке. А вот уже в папке заказчика будут располагаться все материалы по создаваемого дашборду, иерархию вы вольны выбирать сами.

Root ierarchy

Первая важная ремарка, права лучше выдавать именно на папку, содержащую дашборды, чарты и подключения, а не просто на дашборд и потом подхватывать там связанные с ним чарты и подключения. Потому что, если вы потом захотите добавить новый чарт или новые подключения, то права на них придется выставлять вручную, система автоматически не подхватит их. Дело в том, что в DataLens мы можем выдать права на само содержимое, даже если не предоставлен доступ на саму папку, то есть в папку мы зайти не можем, но вот содержимое по прямой ссылке будет доступно. Из-за такой схемы, когда мы добавим новые чарты, эти чарты наследуют права папки, а она приватна, поэтому в основном дашборде они и не будут доступны. Именно поэтому и важно выдавать права именно на папку, чтобы новосозданные ресурсы наследовали права.

Вторая важная ремарка, права на подпапки и содержимое автоматически наследуются только в момент их создания, далее права придется каждый раз выставлять вручную. Допустим вы сделали главную папку заказчика приватной, добавили права на доступ сотрудникам заказчика, потом добавили подпапки, они унаследовали права от родительской папки, сотрудники имеют права и к подпапкам, начали делать дашборд. Но потом заказчик попросил добавить еще несколько сотрудников, вы добавляете их в главную приватную папку, но вот подпапки и содержимое уже не унаследуют права для новых сотрудников. Для каждого уже созданного чарта, дашборда и подпапки придется в ручном режиме выставлять права новым сотрудникам.

Организация папочного доступа

Перейдем на главную страницу сервиса DataLens. В левом сайд-меню найдем иконку папки «Все объекты» (1 на скриншоте) и кликнем по ней, чтобы открыть корневую директорию и затем, в открывшемся сайд-баре нажмем на кнопку «Создать» (2 на скриншоте), в открывшемся дропдаун-меню выберем «Папку».

Create new folder

В открывшемся модальном окне «Создать папку» вам предложат ввести название папки, а также место ее расположения. По дефолту, локацией папки будет ваша персональная папка, так что нам нужно кликнуть по личной папке (4 на скриншоте), затем в новом модальном окне заменить личную папку на «Все объекты» (5 на скриншоте), затем нажать кнопку «Готово» (6 на скриншоте)

Вернувшись в модальное окно «Создать папку» (7 на скриншоте), введем название «Заказчики» и нажмём кнопку «Готово» (8 на скриншоте).

Теперь нам необходимо поменять права доступа этой папки, сейчас она доступна только создателю. Для этого наведем на папку и кликнем по кнопке справа «» (9 на скриншоте), в дропдаун-меню кликнем по кнопке «Права доступа» (10 на скриншоте).

Change access controll

В модальном окне «Права доступа» будет список пользователей, у которых есть доступ к этой папке, пока он есть только у нас — у создателей. Теперь сделаем эту папку видимой для всех. Для этого нажмем на кнопку «Добавить» (11 на скриншоте), в новом модальном окне «Добавить участника» введем в поле ввода «Все» и кликнем по нему для подтверждения выбора (12 на скриншоте). Теперь кликнем напротив текущего объекта (Заказчики) по селекту с выбором права доступа, и установим его в «Просмотр» (13 на скриншоте), если система не сделала это автоматически. После этого нажмем на кнопку «Добавить» (14 на скриншоте), тем самым закрепив роль просмотр за Всеми и сделав папку общедоступной для просмотра.

Add new roles and access

Теперь перейдем в папку «Заказчики» и там создадим новую папку, которая будет ассоциироваться с конкретным заказчиком, в примерах выше мы называли ее «Заказчик 1», но вы называйте ее по названию компании заказчика. Создав эту папку, нужно сделать ее приватной, для этого повторите пункты 9 и 10, чтобы попасть в модальное окно «Права доступа». Только теперь нам нужно снять с этой папки права видимости для всех, а точнее отозвать с нее роль «Все», которая была унаследована от родительской папки «Заказчики», для этого кликнем по роле «Все» (15 на скриншоте).

Config rules on added users

В открывшемся модальном окне «Выданные права» нажимаем на кнопку «Отозвать права» (16 на скриншоте). Готово теперь права снова есть только у нас – создателей. И вот теперь следуя пунктам 11–14, мы можем добавить сотрудников этой конкретной организации, выдав им нужные права (искать их можно как по имени, так и по почте, не забывайте, что они должны быть добавлены в нашу организацию Yandex Cloud, чтобы их можно было найти). Как правило прав на просмотр будет достаточно, если они не собираются ничего менять.

Revoke access

Готово, теперь мы добились того, что только сотрудники конкретной организации будут иметь доступ только к папке их организации внутри нашей основной рабочей директории «Заказчики». Придерживаясь такой структуры, вы с легкостью сможете работать с несколькими заказчиками и не бояться утечки прав.

Решили внедрить Visiology или есть вопросы для обсуждения?

Cвяжитесь напрямую с руководителем компании Люди и Технологии в Телеграме.

Контакты:

Кашеваров Илья

Telegram: https://t.me/Ilyakashevarov

Email:  Написать Илье

Контакты руководителя
Считайте QR код чтобы оперативно связаться в Телеграме

Насколько интересной была статья?

Кликните на звезду, чтобы оценить статью

Средний рейтинг: 3 / 5. Оценок: 3

Оценок еще нет. Оцените, чтобы быть первым

Эксперт Павел Лебедев

Проснувшись однажды утром после беспокойного сна, Грегор Замза обнаружил, что он у себя в постели превратился в страшное насекомое.

Проснувшись однажды утром после беспокойного сна, Грегор Замза обнаружил, что он у себя в постели превратился в страшное насекомое.

Проснувшись однажды утром после беспокойного сна, Грегор Замза обнаружил, что он у себя в постели превратился в страшное насекомое.