Введение
Что такое 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 — сервис позволяет хранить любые файлы в неисполняемом виде |
Ограничения
- Управление пользователями — создавать и редактировать пользователей могут только владелец аккаунта и пользователи с выданными правами.
- Количество пользователей — 100 пользователей на один аккаунт.
- На данный момент, с помощью IAM в отношении S3 можно только дать или запретить доступ к пространству. Для более точной настройки доступа используйте Bucket Policies.
Пользователи, группы и роли
Пользователи
Пользователь является сущностью, относящейся к аккаунту и имеющей свои собственные логин, пароль и 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 |
Эти политики нельзя редактировать или изменять, но можно назначать их пользователям, ролям или группам.
Начало работы
- Перейдите в личный кабинет, затем авторизируйтесь.
- Для начала работы с сервисом перейдите в раздел Настройки ——> IAM
- На экране появится информация о пользователях, ролях, группах, и политиках доступа аккаунта. Нажатие на количество определённой сущности выдаст вам более подробную информацию о ней.

Создание пользователя
Перейдя на список пользователей аккаунта вы можете создать нового, нажав на кнопку слева Добавить пользователя в панели ВОЗМОЖНЫЕ ДЕЙСТВИЯ.
Вы попадёте в меню создания, где можно указать информацию о пользователе, а так же настроить для него доступ к сервисам. Для создания обязательно наличие двух параметров — Логин и Пароль, но мы так же рекомендуем добавить почту (Email), для того чтобы пользователь мог самостоятельно сбросить пароль в случае его утери. Остальные контактные данные заполняются по желанию.

После настройки всех параметров, нужно нажать на кнопку Сохранить, и пользователь будет создан. После создания, снизу можно будет увидеть, какие политики доступа на него назначены, и к каким группам он относится.
Так же вы можете разрешить конкретные ресурсы для определенного сервиса, нажав на иконку справа от названия сервиса. Формат ресурсов можно посмотреть при создании политики доступа, выбрав добавление правила в панели ВОЗМОЖНЫЕ ДЕЙСТВИЯ и нужный сервис.
Панель "Настройки доступа"
В панели Настройки доступа вы можете дать пользователю доступ к сервисам, 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 |
Создание групп и ролей
Для того чтобы создать группу/роль:
- Перейдите на список групп/ролей аккаунта, нажав на их количество в разделе IAM
- Нажмите на кнопку слева Добавить группу/роль в панели ВОЗМОЖНЫЕ ДЕЙСТВИЯ
- Задайте имя группе/роли. Нажмите "Ok" и в список добавится новая группа/роль, которую можно настроить.
Можно так же создать обе сущности при создании или редактировании пользователя, нажав на Добавить группу или Добавить роль соответственно.
Чтобы настроить группу/роль нажмите на её имя в списке, и вы попадёте в меню редактирования. Здесь можно:
- Задать имя группе/роли
- Добавить пользователей в группу/выдать пользователям роль на панели "Пользователи"
- Привязать группу к роли на панели "Роли/Группы"
Создание и настройка политики доступа
Для того чтобы создать политику:
- Перейдите на список политик аккаунта, затем нажмите на кнопку слева Добавить политику доступа в панели ВОЗМОЖНЫЕ ДЕЙСТВИЯ.
- Задайте имя политики. Нажмите "Ok" и в списке появится новая политика.
- Нажмите на имя политики, чтобы попасть в её меню редактирования.
Настройка политик осуществляется добавлением в них правил и назначением на пользователя, группу или роль. Назначить политику можно в соответствующих полях в меню редактирования политики в панели "Назначение". В панели ВОЗМОЖНЫЕ ДЕЙСТВИЯ нажмите на кнопку Добавить правило, и вам будет предложено настроить параметры этого правила, а именно:
- Сервис, на который будет распространяться правило
- Действия, которые будет регулировать правило
- Тип правила — запрет или разрешение
- Ресурсы, на которые будет распространяться правило
Подробный список действий для каждого сервиса можно увидеть при создании правила. Ниже указан пример правила, запрещающего любые действия в сервисе Filespot с папкой directory1:

Доступ в S3 (Bucket Policies)
Политики бакетов
Для работы пользователя в S3 у него должен быть указан доступ к S3 в настройках.
Дальнейшая настройка производится с помощью Bucket Policies. Эти политики предоставляют возможность гибкой настройки доступа к ресурсам S3 для пользователей аккаунта.
Наложение политики на бакет
Примечание: при работе через API обратите внимание на то, что на один бакет можно наложить только одну политику. При повторном вызове наложения новая политика заменит старую.
Применить политику к бакету можно либо по API c помощью вызова put-bucket-policy, либо через наш веб-интерфейс.
Чтобы применить политику через веб-интерфейс выберите нужный бакет, во вкладке Policies добавьте новое правило, укажите его параметры и нажмите Сохранить.
Statement ID— наименование правилаActions— действия, регулируемые политикойEffect— эффект политики, запрет или разрешениеResources— ресурсы на которые будет наложен эффектPrincipal— user id пользователя
Пример наложения политики:

В данном примере я разрешил (Allow) все действия (S3:*) пользователю с id: 6800f57b59ce1a00015fd5d8, в бакете bucketname.
Доступ в Filespot (Права доступа)
Права доступа
Для того, чтобы пользователь мог работать с файлами, у него должен быть указан доступ в Filespot в настройках.
Дальнейшую настройку можно произвести с помощью системы Прав доступа. В этой системе каждой директории соответствует свой набор прав доступа, который определяет какие пользователи могут читать директорию и записывать в неё данные.
Группа root
При создании пользователя, если не менять эту настройку, пользователь будет добавлен в группу root. Пользователи состоящие в этой группе, имеют полный доступ к Filespot, (при условии, что у них указан доступ в Filespot в настройках, и отсутствуют запрещающие политики) даже если у директории будут указаны разрешения для другой группы, а всем остальным пользователям доступ будет запрещен.
Настройка прав доступа
По умолчанию у всех директорий в Filespot выставлены разрешения на запись и чтение для пользователя root (владельца аккаунта), а также для группы root. Для всех остальных пользователей доступ будет запрещён, поэтому если убрать пользователя из группы root, он не сможет попасть ни в одну директорию Filespot до тех пор, пока вы не дадите ему разрешения в настройках прав доступа директорий.

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