Что на самом деле представляет собой роль IAM
Узнайте, как роли предоставляют временные разрешения без постоянных ключей.
«Что на самом деле представляет собой роль IAM» — бесплатный урок AWS Security Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AWS Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AWS Security Academy содержит 4 уроков всего.
Роли и пользователи
Роль IAM — это идентифицированная сущность, которую можно принять, чтобы получить набор разрешений. В отличие от пользователя, у неё нет постоянных учётных данных. Вместо этого при принятии роли AWS выдаёт временные учётные данные безопасности, срок действия которых истекает через заданное время. Роли — это безопасный современный способ предоставлять доступ в AWS; они часто встречаются на экзамене SCS-C02.
Из чего состоит роль
У каждой роли есть две части политики:
- политика доверия (также называемая политикой принятия роли), определяющая, кто может принять роль;
- одна или несколько политик разрешений, определяющих, что роль может делать после принятия.
Такое разделение лежит в основе безопасного делегирования с помощью ролей: отдельно определяется, кто может временно использовать эту идентичность, и отдельно — какие действия ей разрешены.
Временные учётные данные
При принятии роли Security Token Service (STS) выдаёт набор учётных данных, содержащий идентификатор ключа доступа, секретный ключ и токен сеанса. Все они действуют ограниченное время — от 15 минут до 12 часов. Поскольку срок их действия истекает автоматически, утёкшие временные учётные данные быстро становятся бесполезными, что значительно снижает риск по сравнению с долгосрочными ключами доступа.
Кто может принять роль
В политике доверия перечислены субъекты, которым разрешено принять роль. Это могут быть:
- сервис AWS (например, EC2 или Lambda), которому предоставляется идентичность для рабочей нагрузки;
- пользователь или роль IAM в том же или другом аккаунте для межаккаунтного доступа;
- федеративная идентичность от поставщика SAML или OIDC.
Если субъект не указан в политике доверия, он никогда не сможет принять роль — независимо от того, что разрешают политики разрешений.
Роли для сервисов AWS
Наиболее распространённый вариант использования — разрешить сервису AWS действовать от Вашего имени. Например, экземпляр EC2 с прикреплённой ролью может обращаться к S3 без встроенных ключей; AWS автоматически обновляет учётные данные в фоновом режиме. На экзамене важно распознавать, что роли сервисов устраняют статические секреты из приложений.
Пример политики доверия
Ниже приведён фрагмент политики доверия, разрешающий сервису EC2 принять роль. Элемент Principal указывает, кто может её принять, а действие всегда имеет значение sts:AssumeRole.
{
"Effect": "Allow",
"Principal": { "Service": "ec2.amazonaws.com" },
"Action": "sts:AssumeRole"
}Межаккаунтные роли
Роли особенно полезны для межаккаунтного доступа. Аккаунт A создаёт роль, доверяющую аккаунту B; субъект из B принимает её и получает временные учётные данные для действий в A. Ключами не нужно обмениваться, доступ ограничивается политикой разрешений, а доверие можно отозвать в любой момент с любой стороны. Это рекомендуемая альтернатива передаче долгосрочных ключей между аккаунтами.
Роли для федерации
Внешние идентичности, например корпоративные пользователи, прошедшие проверку через SAML, или пользователи приложения, использующие федерацию веб-идентичностей, также принимают роли. Поставщик идентичности проверяет пользователя, после чего AWS выдаёт временные учётные данные, связанные с ролью. Поэтому людям вообще не нужны пользователи IAM — достаточно проверенной идентичности, сопоставленной с ролью.
Нет учётных данных, которые могут утечь
Главное преимущество ролей с точки зрения безопасности — отсутствие постоянных учётных данных, которые можно украсть, отозвать и заменить или случайно добавить в репозиторий кода. Разрешения существуют только в рамках временного сеанса. Это соответствует принципу наименьших привилегий во времени: доступ предоставляется только при необходимости и автоматически прекращается.
Разрешения не предоставляются автоматически
Есть важный нюанс: разрешение принять роль даёт Вам только разрешения этой роли, а не объединение Ваших разрешений с разрешениями роли. При принятии роли Вы получаете новую идентичность. Исходные разрешения на время этого сеанса не учитываются, поэтому при проектировании роли необходимо включить в неё всё, что требуется для задачи.
Когда использовать роли
Используйте роль всякий раз, когда рабочей нагрузке нужен доступ к AWS, одному аккаунту необходимо действовать в другом или люди проходят аутентификацию через внешнего поставщика. На экзамене роли являются ответом почти на любой вопрос «как предоставить доступ без долгосрочных ключей». Они объединяют политику доверия (кто) с политиками разрешений (что), обеспечивая безопасный, временный и контролируемый доступ.
Быстрая проверка
Проверьте, насколько хорошо Вы понимаете принцип работы ролей.
Итоги
Роль IAM — это сущность без собственных учётных данных, которую принимают для получения временных разрешений от STS. Она объединяет политику доверия (кто может её принять) с политиками разрешений (что она может делать). Роли обеспечивают доступ сервисов, делегирование между аккаунтами и федерацию, устраняя долгосрочные секреты. При принятии роли Ваша идентичность на время сеанса заменяется идентичностью роли.
Часто задаваемые вопросы
Урок «Что на самом деле представляет собой роль IAM» бесплатный?
Да — полный текст урока «Что на самом деле представляет собой роль IAM» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AWS Security Academy, подпишись на CoddyKit PRO. Курс AWS Security Academy содержит 4 уроков всего.
Чему я научусь в уроке «Что на самом деле представляет собой роль IAM»?
Узнайте, как роли предоставляют временные разрешения без постоянных ключей. Ты практикуешь AWS Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AWS Security Academy?
Предыдущий опыт не требуется. AWS Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Что на самом деле представляет собой роль IAM»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AWS Security Academy?
Да. Каждый урок AWS Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Сравнение пользователей и групп IAM
- Что на самом деле представляет собой роль IAM
- Политики доверия и те, кто может принять роль
- Профили экземпляров для рабочих нагрузок EC2