Политики доверия и те, кто может принять роль
Определите, каким субъектам разрешено принять на себя роль.
«Политики доверия и те, кто может принять роль» — бесплатный урок Cloud & IT Cert Prep на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cloud & IT Cert Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Политика-страж
Политика доверия — это документ, прикреплённый к роли и точно определяющий, каким субъектам разрешено её принять. Это страж: даже если политика разрешений предоставляет широкие полномочия, никто не сможет использовать роль, если политика доверия не указывает этого субъекта. На экзамене ошибки в политиках доверия часто становятся причиной как неработающего доступа, так и опасного предоставления избыточных разрешений.
Типы субъектов
Элемент Principal в политике доверия может ссылаться на:
- AWS — аккаунт, пользователя или ARN роли (Amazon Resource Name);
- Service — сервис AWS, например lambda.amazonaws.com;
- Federated — поставщика SAML или поставщика веб-идентичностей.
Чтобы не предоставить больше доверия, чем предполагалось, крайне важно выбрать правильный тип субъекта и указать его как можно точнее.
Двустороннее рукопожатие
Для принятия роли между аккаунтами требуется согласие обеих сторон. Политика доверия роли в целевом аккаунте должна разрешать доступ вызывающему субъекту, а этот субъект должен иметь политику идентичности, разрешающую действие sts:AssumeRole над ARN роли. Отсутствие любой из этих частей блокирует запрос. Такое двустороннее рукопожатие — классическая ловушка на экзамене.
Пример политики доверия
Эта политика доверия позволяет определённой роли в аккаунте 111122223333 принять данную роль. Указание точного ARN вместо всего аккаунта обеспечивает более строгую и безопасную настройку.
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:role/AppRole"
},
"Action": "sts:AssumeRole"
}Корневой пользователь аккаунта и конкретный субъект
Указание субъекта как arn:aws:iam::ACCOUNT:root означает доверие всему аккаунту: любой субъект в нём, у которого также есть разрешение sts:AssumeRole, сможет принять роль. Это слишком широкое разрешение. По возможности указывайте точный ARN пользователя или роли, следуя принципу наименьших привилегий и уменьшая поверхность доверия.
Условия в политике доверия
Политики доверия поддерживают блоки Condition, которые уточняют, кто и при каких обстоятельствах может принять роль. К распространённым ключам относятся sts:ExternalId (для предотвращения проблемы запутавшегося заместителя), aws:MultiFactorAuthPresent (требование MFA) и aws:SourceIp. Условия позволяют разрешить принятие роли только при определённых проверяемых обстоятельствах.
Требование MFA для принятия роли
Мощный подход — требовать MFA перед принятием роли с критически важными полномочиями. Условие политики доверия проверяет, что вызывающий сеанс прошёл аутентификацию с MFA. Поэтому даже с помощью украденных долгосрочных учётных данных нельзя принять привилегированную роль без второго фактора, что значительно повышает сложность атаки.
"Condition": {
"Bool": { "aws:MultiFactorAuthPresent": "true" }
}Доверие, связанное с сервисом
Некоторые роли являются ролями, связанными с сервисами: они заранее определены AWS и имеют политику доверия, которую нельзя редактировать. Такие роли позволяют сервису управлять ресурсами от Вашего имени, используя ровно тот уровень доверия, который требуется AWS. Важно распознавать их, поскольку их разрешения и доверие жёстко контролируются и связаны с жизненным циклом сервиса.
Внешнее и внутреннее доверие
Доверие внутреннему субъекту (в том же аккаунте) обычно сопряжено с меньшим риском, чем доверие внешнему аккаунту или стороннему поставщику SaaS. Для внешнего доверия всегда сочетайте конкретного субъекта с условиями, например ExternalId. Рассматривайте каждую запись о внешнем доверии как точку входа, которой с радостью воспользуется злоумышленник.
Аудит политик доверия
IAM Access Analyzer автоматически проверяет политики доверия и политики ресурсов, чтобы находить роли, которые могут быть приняты внешними аккаунтами или общедоступными субъектами. Он отмечает непреднамеренное межаккаунтное или публичное доверие, чтобы Вы могли его ограничить. Проверка результатов Access Analyzer — рекомендуемая и важная для экзамена мера контроля, позволяющая выявлять слишком широкое доверие.
Проектирование безопасного доверия
Чтобы безопасно настроить доверие, указывайте максимально конкретного субъекта, добавляйте подходящие условия, например ExternalId и MFA, отдавайте предпочтение ролям вместо доверия корневому пользователю аккаунта и выполняйте проверку с помощью Access Analyzer. Помните: политика доверия отвечает на вопрос «кто», а политики разрешений — на вопрос «что»; обе части должны согласовываться, чтобы доступ работал и соответствовал принципу наименьших привилегий.
Быстрая проверка
Проверьте свои знания о политиках доверия.
Итоги
Политика доверия определяет, какие субъекты могут принять роль, и выполняет функцию стража независимо от политик разрешений. Для принятия роли между аккаунтами требуется двустороннее рукопожатие: политика доверия плюс разрешение вызывающего субъекта на выполнение sts:AssumeRole. Предпочитайте точные ARN субъектов корневому пользователю аккаунта, добавляйте условия, такие как ExternalId и MFA, и проводите аудит с помощью IAM Access Analyzer.
Часто задаваемые вопросы
Урок «Политики доверия и те, кто может принять роль» бесплатный?
Да — полный текст урока «Политики доверия и те, кто может принять роль» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cloud & IT Cert Prep, подпишись на CoddyKit PRO. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Чему я научусь в уроке «Политики доверия и те, кто может принять роль»?
Определите, каким субъектам разрешено принять на себя роль. Ты практикуешь Cloud & IT Cert Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cloud & IT Cert Prep?
Предыдущий опыт не требуется. Cloud & IT Cert Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Политики доверия и те, кто может принять роль»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cloud & IT Cert Prep?
Да. Каждый урок Cloud & IT Cert Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Сравнение пользователей и групп IAM
- Что на самом деле представляет собой роль IAM
- Политики доверия и те, кто может принять роль
- Профили экземпляров для рабочих нагрузок EC2