Обзор
Сервис IAM (Identity and Access Management) позволяет организовать доступ к ресурсам таким образом, что операции над ресурсами могут выполнять только пользователи с необходимыми правами доступа.
Общая информация
При любой операции, подразумевающей доступ к ресурсу, есть субъект и объект доступа.
- Субъект доступа – это тот, кто запрашивает доступ. Субъектом в IAM выступает пользовательский или сервисный аккаунт.
- Объект доступа – это то, к чему запрашивается доступ. Объектом в IAM выступает ресурс, проект или организация. Ресурс может находиться как в рамках проекта, так и в рамках организации: например, биллинг-аккаунт – это ресурс организации.
Для управления доступом IAM использует политику Role-Based Access Management (RBAC): возможность доступа к объекту определяется ролью, которая назначена субъекту.
Роль – это фиксированный набор разрешений. В IAM предусмотрены базовые роли viewer, editor, admin, а также сервисные роли. Роль назначается аккаунту в рамках определенной области видимости: то есть, действие роли ограничивается данной областью видимости.
Область видимости (scope) – это ограниченная область, в пределах которой применяются разрешения, предусмотренные ролью. В ролевой модели IAM предусмотрены следующие области видимости:
- организация,
- проект,
- ресурс.
Пример:
Если аккаунту назначена роль admin:
- на ресурс – аккаунт может управлять только этим ресурсом;
- на проект – аккаунт может управлять проектом и всеми ресурсами в его рамках,
- на организацию – аккаунт может управлять всеми проектами и ресурсами в организации.
Чтобы предоставить доступ к ресурсу (или к проекту, или к организации), назначьте аккаунту роль на этот ресурс/проект/организацию.
Если вы хотите запретить аккаунту доступ к ресурсу, отзовите у него соответствующие роли на этот ресурс и на те области видимости, от которых наследуются права доступа.
Наследование прав доступа
В IAM существует наследование прав доступа от родительской области видимости к дочерней – от организации к проектам, от проектов к ресурсам.
Пример:
У аккаунта отсутствуют роли editor или admin на проекте. Если аккаунту назначить роль storage.bucket.admin, то:
- аккаунт сможет управлять всеми ресурсами Object Storage в проекте;
- не сможет управлять другими ресурсами проекта.
Пример:
У аккаунта есть назначенные роли editor на проект и admin на ресурс. Если отозвать роль admin на ресурс, то аккаунт все равно сможет редактировать этот ресурс, так как все ресурсы наследуют роль editor от проекта.
Как работает IAM
- Перед выполнением любой операции с ресурсом сервис IAM проверяет, разрешена ли эта операция для пользователя.
- Если роль, назначенная пользователю, предусматривает разрешение на выполнение этой операции, то IAM не блокирует выполнение операции; в противном случае выводится ошибка.
Типы аккаунтов
В MWS предусмотрены следующие типы аккаунтов:
- Пользовательский аккаунт – учетная запись реального пользователя, зарегистрировавшегося в MWS.
- Сервисный аккаунт – учетная запись, создаваемая пользователем для программного взаимодействия. Используется приложениями, скриптами (например, AWS CLI, SDK и т.п.), а также сервисами для выполнения операций от их имени. Как правило, имеет ограниченный набор разрешений. Подробнее...
Активация
Сервис IAM доступен в проекте по умолчанию. Дополнительных действий по его активации не требуется.