Что именно «принимает» роль в AWS? - PullRequest
0 голосов
/ 29 апреля 2018

Вопрос

Что именно означает «Принимать» роль в AWS и где дано окончательное определение?

Фон

Предполагая, что роль часто используется и пытаясь понять определение и то, что оно на самом деле означает.

Я полагаю, когда субъект (пользователь IAM, приложение, работающее в экземпляре EC2 и т. Д., Который вызывает действие для доступа к ресурсам AWS) должен вызвать действие для доступа к ресурсу AWS:

  1. AWS (API? Или некоторое время выполнения авторизации в AWS?) Определяет роли, которые может быть предоставлен принципалу.

    например. если указан пользователь EC2 для выполнения вызова API предположительной роли и запуска приложения, которое обращается к ресурсам AWS в экземпляре EC2, к которому присоединен профиль IAM, то:

    • Все роли IAM из профиля IAM EC2
    • Роли и политики IAM, запрошенные в вызове предположительной роли
    • роли IAM, которые предоставляются пользователю EC2

  2. AWS находит роль из ролей, у которых есть политика (действие, ресурс), которая позволяет принципу выполнять действие над ресурсом.

  3. AWS переключает роль принципа на указанную роль.

Когда шаг 3 выполнен, говорится, что «директор принял на себя роль». Это правильно?

Исследования

Использование ролей IAM

Прежде чем пользователь, приложение или служба IAM смогут использовать созданную вами роль, вы должны предоставить разрешения для переключения на эту роль. Вы можете использовать любую политику, присоединенную к одной из групп пользователей IAM или к самому пользователю, чтобы предоставить необходимые разрешения.

Ответы [ 2 ]

0 голосов
/ 29 апреля 2018

Предполагается, что роль означает запрос к службе маркеров безопасности (STS) предоставить вам набор временных учетных данных - учетных данных роли, которые относятся к роли, которую вы хотите занять. (В частности, новый «сеанс» с этой ролью.)

Вы можете дополнительно включить в этот запрос политику, которая будет ограничивать разрешения временных учетных данных только подмножеством разрешенных политиками роли.

Затем вы используете эти учетные данные для дальнейших запросов. Эти учетные данные похожи на учетные данные пользователя IAM с идентификатором-ключом доступа и секретом, но ключ доступа начинается с ASIA вместо AKIA, и есть третий элемент, называемый маркером безопасности, который должен быть включен в подписанные запросы с временными полномочиями.

Когда вы отправляете запросы с этими временными учетными данными, у вас есть разрешения, связанные с ролью, а не ваши собственные (если у вас есть), потому что вы приобрели новую личность. CloudTrail можно использовать для отслеживания учетных данных роли обратно пользователю, который принял роль, но в противном случае служба не знает, кто использует учетные данные.

tl; dr: Принятие роли означает получение набора временных учетных данных, связанных с ролью, а не с объектом, который принял роль.

AWS (API? Или некоторое время выполнения авторизации в AWS?) Определяет роли, которые может быть предоставлен принципалу.

Нет. Вы указываете роль, которую хотите занять.

Когда «вы» - это код, выполняющийся на экземпляре EC2, и экземпляр имеет роль экземпляра, инфраструктура EC2 фактически вызывает accept-роль от имени экземпляра, и вы можете получить временные учетные данные из экземпляра служба метаданных . Эти учетные данные доступны только из экземпляра, но они не хранятся в экземпляре.

При запуске функции Lambda инфраструктура Lambda связывается с STS и помещает ваши временные учетные данные в переменные среды . Опять же, эти учетные данные доступны для функции без сохранения внутри функции.

В любом случае вы могли бы вызвать взять на себя роль с этими учетными данными и принять другую роль, но это не должно быть необходимо в большинстве сред.

например. если указан пользователь EC2 для выполнения вызова API предположительной роли и запуска приложения, которое обращается к ресурсам AWS в экземпляре EC2, к которому присоединен профиль IAM, то:

AWS не знает пользователей EC2 . Роли экземпляра доступны всем, кто работает в экземпляре.

Все роли IAM из профиля IAM EC2

Профиль экземпляра может включать только одну роль .

Роли и политики IAM, запрошенные в вызове предположительной роли

Вы просите взять на себя ровно одну роль. Вам не нужно запрашивать политику - вы указываете политику только в том случае, если хотите, чтобы временные учетные данные имели меньше привилегий, чем позволяют учетные данные роли. Это может быть чем-то, что вам нужно сделать, если вам нужен код, работающий в ненадежном месте, например код в браузере или приложении, чтобы иметь возможность подписывать запросы с учетными данными.

AWS находит роль из ролей, у которых есть политика (действие, ресурс), которая позволяет принципу выполнять действие над ресурсом.

Нет. Как отмечалось выше, вы запрашиваете определенную роль при вызове accept-role.

AWS переключает роль принципа на указанную роль.

Нет. Вы выполняете переключение, используя предоставленные временные учетные данные.

0 голосов
/ 29 апреля 2018

Когда происходит шаг 3, говорится: «директор принял роль ". Это правильно?

Шаги, которые вы упомянули при назначении роли: правильно .

Здесь важным моментом является конфигурация доверительных отношений роли IAM, в которой вы предоставляете каждому пользователю, приложению или службе IAM роль. Именно здесь вы даете разрешение принять конкретную роль.

Это важно во многих аспектах, когда он контролирует, кто может взять на себя роль, и важно обеспечить не только минимальный доступ к роли, но и предоставить наименьшее количество организаций, которые могут взять на себя роль.

...