0Pricing
Cloud & IT Cert Prep · Урок

Политики доверия и те, кто может принять роль

Определите, каким субъектам разрешено принять на себя роль.

«Политики доверия и те, кто может принять роль» — бесплатный урок 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 — локальная установка не требуется.

Все уроки этого курса

  1. Сравнение пользователей и групп IAM
  2. Что на самом деле представляет собой роль IAM
  3. Политики доверия и те, кто может принять роль
  4. Профили экземпляров для рабочих нагрузок EC2
← Назад к Cloud & IT Cert Prep