Получение информации о субъектах в системе управления доступом Yandex Cloud
Yandex Identity and Access Management предоставляет инструмент получения информации о субъектах для одновременного поиска и получения атрибутов различных типов субъектов системы управления доступом Yandex Cloud.
Дополнительную гибкость при поиске и получении атрибутов субъектов дает использование фильтров на основе языка Common Expression Language (CEL)
Функциональность получения информации о субъектах доступна в интерфейсах Yandex Cloud CLI и API.
Типы субъектов
Функциональность получения информации о субъектах позволяет выполнять поиск одновременно по разным типам субъектов в организации:
| Тип субъекта | Описание | Минимальная роль, необходимая для получения информации |
|---|---|---|
USER_ACCOUNT |
Пользователи с аккаунтом на Яндексе, локальные и федеративные пользователи | organization-manager.users.viewer или выше на организацию |
SERVICE_ACCOUNT |
Сервисные аккаунты | iam.auditor или выше на организацию |
GROUP |
Группы пользователей, системные и публичные группы | organization-manager.groups.viewer или выше на организацию |
INVITEE |
Пользователи с аккаунтом на Яндексе, которые были приглашены в организацию, но еще не приняли приглашение | organization-manager.users.viewer или выше на организацию |
Доступные методы
В Identity and Access Management доступны два метода для получения информации о субъектах: List и BatchGet.
При вызове обоих методов вы можете передать маску субъектов (field-mask), которая определяет, какие атрибуты субъектов необходимо получить. Если не указать маску субъектов, по умолчанию возвращаются только атрибуты sub и type. Доступные атрибуты зависят от типа субъекта. Подробнее читайте в разделе Атрибуты субъектов.
Также при вызове обоих методов вы можете использовать гибкий CEL-фильтр, чтобы максимально конкретизировать список субъектов, информацию по которым вы хотите получить.
Подробнее об использовании методов получения информации о субъектах читайте в разделе Получение информации о субъектах в системе управления доступом Yandex Cloud.
List
Метод List предоставляет список и информацию о субъектах организации по ее идентификатору. Вызвать метод List можно с помощью REST API, gRPC API или команды CLI yc iam subject-details list.
При вызове метода List обязательно передавайте идентификатор организации, в которой будет выполняться поиск субъектов.
BatchGet
Метод BatchGet предоставляет информацию о заданных субъектах организации по их идентификаторам. Вызвать метод BatchGet можно с помощью REST API, gRPC API или команды CLI yc iam subject-details get.
Вызов метода BatchGet должен обязательно содержать один или более идентификаторов субъектов, информацию о которых необходимо получить.
Чтобы получить список групп, участником которых является пользователь с аккаунтом на Яндексе, обязательно передавайте в метод BatchGet идентификатор организации.
Атрибуты субъектов
С помощью методов List и BatchGet вы можете получить значения следующих атрибутов субъектов:
Примечание
Маска субъектов (field-mask), передаваемая в методах List и BatchGet, должна содержать имена полей без указания имени основного контейнера subject. Например: sub, user_account или service_account.service_agent.microservice_id.
|
Поле |
Тип данных |
Атрибут |
|
subject — основной контейнер, содержащий все атрибуты субъекта. |
||
|
|
|
Идентификатор субъекта. |
|
|
|
Тип субъекта в системе управления доступом:
|
|
|
Дата и время создания субъекта. |
|
|
|
|
Статус субъекта (только для федеративных и локальных пользователей):
|
|
|
|
Имя субъекта. |
|
|
Дата и время последней аутентификации. |
|
|
|
|
Идентификатор субъекта во внешней системе. |
|
subject.groups — набор полей с атрибутами групп, участником которых является пользователь или сервисный аккаунт. 2 |
||
|
|
|
Тип группы:
|
|
|
|
Идентификатор группы пользователей, системной или публичной группы. |
|
|
|
Имя группы пользователей, системной или публичной группы. |
|
subject.user_account — набор полей с атрибутами, специфичными для субъектов-пользователей. |
||
|
|
|
Имя. |
|
|
|
Фамилия. |
|
|
|
Логин пользователя. |
|
|
|
Адрес электронной почты пользователя. |
|
|
|
Номер телефона. |
|
|
Дата и время плановой деактивации пользователя (если установлена). Только для федеративных и локальных пользователей. |
|
|
|
Дата и время последнего изменения атрибутов пользователя. |
|
|
|
Дата и время последней верификации пользователя. |
|
|
|
|
Причина деактивации (только для федеративных и локальных пользователей). |
|
subject.user_account.subject_container — набор полей с атрибутами, специфичными для различных типов субъектов-пользователей. |
||
|
|
|
В зависимости от типа пользователя:
|
|
|
|
В зависимости от типа пользователя:
|
|
|
|
В зависимости от типа пользователя:
|
|
subject.user_account.job_info — набор полей с атрибутами, которые содержат информацию о компании и должности пользователя. |
||
|
|
|
Название компании. |
|
|
|
Подразделение. |
|
|
|
Должность. |
|
|
|
Табельный номер сотрудника. |
|
subject.invitee — набор полей с атрибутами, специфичными для пользователей с аккаунтом на Яндексе, которые были приглашены в организацию, но еще не приняли приглашение. |
||
|
|
|
Адрес электронной почты пользователя. |
|
|
|
Логин пользователя. |
|
subject.service_account — набор полей с атрибутами, специфичными для сервисных аккаунтов. |
||
|
subject.service_account.cloud — набор полей с атрибутами, содержащими информацию об облаке, к которому относится сервисный аккаунт. |
||
|
|
|
Идентификатор облака. |
|
|
|
Имя облака. |
|
subject.service_account.folder — набор полей с атрибутами, содержащими информацию о каталоге, к которому относится сервисный аккаунт. |
||
|
|
|
Идентификатор каталога. |
|
|
|
Имя каталога. |
|
subject.service_account.service_agent — набор полей с атрибутами, специфичными для сервисных аккаунтов, которые являются сервисными агентами. |
||
|
|
|
Идентификатор сервиса, от имени которого действует сервисный агент. |
|
|
|
Идентификатор микросервиса, от имени которого действует сервисный агент. |
|
subject.group — набор полей с атрибутами, специфичными для групп пользователей, системных и публичных групп. |
||
|
|
|
Тип группы:
|
|
|
|
Идентификатор группы пользователей, системной или публичной группы. |
|
|
|
Имя группы пользователей, системной или публичной группы. |
1 Значения полей с типом данных enum, передаваемые в фильтре (filter) запроса, должны указываться в числовом формате.
2 Чтобы с помощью метода BatchGet получить список групп, участником которых является пользователь с аккаунтом на Яндексе, обязательно передавайте в запросе идентификатор организации.
Фильтр субъектов
При получении списка и информации о субъектах вы можете применять фильтр, который позволяет максимально гибко управлять результатами поиска и выводить только необходимые релевантные результаты.
Фильтр задается в поле filter и основан на языке Common Expression Language (CEL)
Подробнее о доступных функциях CEL читайте в официальной документации
В дополнение к стандартным функциям CEL в Identity and Access Management реализована функция icontains, позволяющая выполнять регистронезависимую проверку вхождения подстроки в строку. Например:
"ABcdEf".icontains("abc") // true
Подробнее об использовании фильтров при получении информации о субъектах читайте в разделе Получение информации о субъектах в системе управления доступом Yandex Cloud.
Полезные ссылки
Организация — это высший ресурс в иерархии ресурсной модели Yandex Cloud, который объединяет ресурсы всех остальных сервисов, а также используется для управления пользователями и параметрами их аутентификации и авторизации. Подробнее читайте в разделе Организация.