Введение

Что такое IAM?

Сервис IAM (Identity Access Managment) — сервис идентификации и контроля доступа к ресурсам и сервисам PlatformСraft, который предназначен для создания пользователей внутри одной учётной записи и управления правами доступа для них.

Зачем использовать IAM?

С помощью IAM вы сможете предоставить доступ нескольким пользователям к ресурсам вашего аккаунта. Они получат отдельные логины и пароли для входа, и при попытке выполнения того или иного действия в сервисе, IAM проверит, имеет ли пользователь права на это.

Терминология

Определение Пояснение
Аккаунт Учётная запись PlatformСraft, владелец аккаунта имеет полный доступ ко всем сервисам
Пользователь Учётная запись внутри аккаунта, сущность IAM, которой при создании выделяются отдельные ключи доступа (логин и пароль) для работы в рамках аккаунта
Роли Сущность IAM, выдаваемая пользователям, с возможностью управления доступом для всех пользователей одной роли
Группы Несколько пользователей, объединённых в одну сущность IAM, с возможностью управления доступом для всей группы и привязкой к роли
Политика доступа Совокупность правил, разрешающих или запрещающих действия с определёнными ресурсами, после настройки, политики назначаются пользователю, роли или группе
Bucket Policies Политики бакетов, собственная система управления доступом сервиса S3
Права доступа Собственная система управления доступом сервиса Filespot

Сервисы

Сервисы Пояснение
Account Сервис Аккаунт — основа IAM, позволяет получать токены для работы, а также работать с пользователями, группами и ролями
Filespot Медиахранилище — сервис позволяет хранить и редактировать видео, аудио, изображения и записи трансляций, а также создавать плейлисты из видеофайлов, которые затем размещаются на вашем ресурсе
Recorder Запись потоков — сервис позволяет вести записи ваших трансляций, которые затем помещаются в Filespot, где их можно обрабатывать
Streamer Вещание — сервис позволяет создавать и редактировать медиаблоки из заранее подготовленных файлов, составляя из них стриминговые трансляции
Transcoder Транскодирование — сервис позволяет изменять формат, разрешение, битрейт и другие параметры видеофайлов путём конвертации в различные форматы
S3 Объектное хранилище S3 — сервис позволяет хранить любые файлы в неисполняемом виде

Ограничения

Пользователи, группы и роли

Пользователи

Пользователь является сущностью, относящейся к аккаунту и имеющей свои собственные логин, пароль и id, который можно узнать в личном кабинете. Каждый созданный вами пользователь, чтобы работать с сервисами должен будет зайти в личный кабинет с теми логином и паролем, которые были указаны при его создании.

Если пользователь работает через API, он должен отправить запрос на авторизацию, указав свой логин и пароль в параметрах. В ответе можно будет узнать id из параметра "user_id:".

Если пользователь будет работать с сервисом S3, ему будет необходимо сгенерировать свою собственную пару ключей S3 id и S3 key в настройках в личном кабинете, через которую пользователь будет авторизовываться в сервисе.

Группы и роли

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

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

В обратную сторону это не работает, нельзя выдать роль группе. Политика, назначенная на группу, будет действовать на пользователя только в том случае, если пользователь состоит в этой группе, то есть он указан в её настройках. На примере:

Пользователю выдана роль X. Пользователь не состоит в группе Y. Группа Y привязана к роли X.

В данном случае политика, назначенная на роль X будет работать на пользователя.

Политика назначенная на группу Y не будет работать на пользователя.

Политики доступа

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

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

Политика пользователя

По умолчанию при создании пользователя на аккаунт добавляется новая политика, назначенная только на него и названная его именем, которая выдаёт ему разрешение на получение токенов для работы с сервисами, самостоятельное изменение данных профиля пользователя, и генерацию s3 id и key. Также, правила в этой политике будут соответствовать настройкам пользователя и автоматически меняться при его редактировании.

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

Политики аккаунта

По умолчанию на каждом аккаунте изначально есть 5 политик доступа:

Политика Пояснение
ПОЛИТИКА ДОСТУПА АККАУНТА Системная политика, распространяющаяся на всех пользователей аккаунта
АДМИНИСТРАТОР Политика, разрешающая доступ к сервису Account и Filespot, соответствует свитчу Администратор в меню редактирования пользователя
FULL ACCESS Политика, дающая полный доступ ко всем сервисам (за исключением доступа непосредственно в бакеты S3), соответствует свитчу Полный доступ в меню редактирования пользователя
READ ONLY Политика запрещающая возможность изменять ресурсы Account, Filespot, Streamer и Recorder, соответствует свитчу Только для чтения в меню редактирования пользователя
SERVICE ACCESS Политика, разрешающая доступ ко всем сервисам, за исключением сервиса Account

Эти политики нельзя редактировать или изменять, но можно назначать их пользователям, ролям или группам.

Начало работы

  1. Перейдите в личный кабинет, затем авторизируйтесь.
  2. Для начала работы с сервисом перейдите в раздел Настройки ——> IAM
  3. На экране появится информация о пользователях, ролях, группах, и политиках доступа аккаунта. Нажатие на количество определённой сущности выдаст вам более подробную информацию о ней.
    IAM_menu_example.png

Создание пользователя

Перейдя на список пользователей аккаунта вы можете создать нового, нажав на кнопку слева Добавить пользователя в панели ВОЗМОЖНЫЕ ДЕЙСТВИЯ.

Вы попадёте в меню создания, где можно указать информацию о пользователе, а так же настроить для него доступ к сервисам. Для создания обязательно наличие двух параметров — Логин и Пароль, но мы так же рекомендуем добавить почту (Email), для того чтобы пользователь мог самостоятельно сбросить пароль в случае его утери. Остальные контактные данные заполняются по желанию.
subuser_create_example.png

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

Так же вы можете разрешить конкретные ресурсы для определенного сервиса, нажав на иконку справа от названия сервиса. Формат ресурсов можно посмотреть при создании политики доступа, выбрав добавление правила в панели ВОЗМОЖНЫЕ ДЕЙСТВИЯ и нужный сервис.

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

В панели Настройки доступа вы можете дать пользователю доступ к сервисам, API v1.0 и просмотру приватных файлов. При указании сервиса здесь, при условии отсутствия запрещающих политик, пользователь получит возможность выполнять в нём любые действия с любыми ресурсами (за исключением S3). Пояснения:

Чекбокс Пояснение
APIv1 Доступ к нашему legacy API v1.0, в данный момент обязателен, если нужно дать доступ к сервису Transcoder
Filespot Медиахранилище — доступ к сервису Filespot
Recorder Запись потоков — доступ к сервису Recorder
Streamer Вещание — доступ к сервису Streamer
Transcoder Транскодирование — доступ к сервису Transcoder (только при подключённом APIv1)
CDN Video Статистика CDNvideo, в данный момент недоступна пользователям
S3 Объектное хранилище S3 — даёт доступ к S3, дальнейшая настройка производится с помощью Bucket Policies
Приватные файлы Даёт доступ к просмотру приватных файлов

При необходимости, можно указать параметр Полный доступ тогда пользователю будут полностью доступны все сервисы аккаунта (в том числе и сервис Account — возможность создания и редактирования других пользователей).

Панель "Дополнительные настройки"

Настройка Пояснение
Администратор Доступ к сервису Account, позволяет пользователю создавать других пользователей, и настраивать права для них. Так же даёт доступ в Filespot
Только для чтения Политика доступа, запрещающая изменение ресурсов, но оставляющая возможность их просмотра
Роли При заранее созданных ролях можно назначить одну или более пользователю. Так же можно добавить роль прямо тут, нажав на Добавить роль
Группы При заранее созданных группах можно определить пользователя в одну или несколько групп. Так же можно добавить группу прямо тут, нажав на Добавить группу. Убирайте пользователей из группы "root" с осторожностью, это повлияет на доступ пользователя в Filespot
Основная группа Группа, которая будет учитываться при настройке доступа с помощью системы прав доступа, менять основную группу "root" на другую следует с осторожностью, это повлияет на доступ пользователя в Filespot
Рабочая директория Выбор директории Filespot, в которую будет попадать пользователь при заходе в Filespot, формат указания — /path/to/your/directory

Создание групп и ролей

Для того чтобы создать группу/роль:

  1. Перейдите на список групп/ролей аккаунта, нажав на их количество в разделе IAM
  2. Нажмите на кнопку слева Добавить группу/роль в панели ВОЗМОЖНЫЕ ДЕЙСТВИЯ
  3. Задайте имя группе/роли. Нажмите "Ok" и в список добавится новая группа/роль, которую можно настроить.

Можно так же создать обе сущности при создании или редактировании пользователя, нажав на Добавить группу или Добавить роль соответственно.

Чтобы настроить группу/роль нажмите на её имя в списке, и вы попадёте в меню редактирования. Здесь можно:

Создание и настройка политики доступа

Для того чтобы создать политику:

  1. Перейдите на список политик аккаунта, затем нажмите на кнопку слева Добавить политику доступа в панели ВОЗМОЖНЫЕ ДЕЙСТВИЯ.
  2. Задайте имя политики. Нажмите "Ok" и в списке появится новая политика.
  3. Нажмите на имя политики, чтобы попасть в её меню редактирования.

Настройка политик осуществляется добавлением в них правил и назначением на пользователя, группу или роль. Назначить политику можно в соответствующих полях в меню редактирования политики в панели "Назначение". В панели ВОЗМОЖНЫЕ ДЕЙСТВИЯ нажмите на кнопку Добавить правило, и вам будет предложено настроить параметры этого правила, а именно:

Подробный список действий для каждого сервиса можно увидеть при создании правила. Ниже указан пример правила, запрещающего любые действия в сервисе Filespot с папкой directory1:
rule_example.png

Доступ в S3 (Bucket Policies)

Политики бакетов

Для работы пользователя в S3 у него должен быть указан доступ к S3 в настройках.

Дальнейшая настройка производится с помощью Bucket Policies. Эти политики предоставляют возможность гибкой настройки доступа к ресурсам S3 для пользователей аккаунта.

Наложение политики на бакет

Примечание: при работе через API обратите внимание на то, что на один бакет можно наложить только одну политику. При повторном вызове наложения новая политика заменит старую.

Применить политику к бакету можно либо по API c помощью вызова put-bucket-policy, либо через наш веб-интерфейс.

Чтобы применить политику через веб-интерфейс выберите нужный бакет, во вкладке Policies добавьте новое правило, укажите его параметры и нажмите Сохранить.

  1. Statement ID — наименование правила
  2. Actions — действия, регулируемые политикой
  3. Effect — эффект политики, запрет или разрешение
  4. Resources — ресурсы на которые будет наложен эффект
  5. Principal — user id пользователя

Пример наложения политики:
bucket_policy_example.png

В данном примере я разрешил (Allow) все действия (S3:*) пользователю с id: 6800f57b59ce1a00015fd5d8, в бакете bucketname.

Доступ в Filespot (Права доступа)

Права доступа

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

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

Группа root

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

Настройка прав доступа

По умолчанию у всех директорий в Filespot выставлены разрешения на запись и чтение для пользователя root (владельца аккаунта), а также для группы root. Для всех остальных пользователей доступ будет запрещён, поэтому если убрать пользователя из группы root, он не сможет попасть ни в одну директорию Filespot до тех пор, пока вы не дадите ему разрешения в настройках прав доступа директорий. access_rights_example.png

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

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