Разница между ролью IAM и пользователем IAM в AWS

в чем разница между ролью IAM и пользователем IAM? The IAM FAQ есть запись, объясняющая это, но она была расплывчатой и не очень ясной:

пользователь IAM имеет постоянные долгосрочные учетные данные и используется для непосредственного взаимодействия с сервисами AWS. Роль IAM не имеет учетных данных и не может выполнять прямые запросы к сервисам AWS. Роли IAM предназначены для использования авторизованными организациями, такими как пользователи IAM, приложения или сервис AWS как EC2.

Я думаю, что роль IAM используется для федеративных Логинов (например, используя IdP с токенами SAML), и у них нет постоянных ключей доступа, которые вы можете скачать, как у обычных пользователей IAM (часть "роль IAM не имеет учетных данных").

что они имеют в виду, когда говорят, что роль IAM не может делать прямые запросы к сервисам AWS? Я могу войти в консоль AWS (веб-консоль) и создать стеки и т. д., Поэтому это не может быть так.

5 ответов


что они имеют в виду, когда говорят, что роль IAM не может делать прямые запросы к сервисам AWS? Я могу войти в консоль AWS (веб-консоль) и создать стеки и т. д., Поэтому это не может быть так.

вы являются пользователем IAM (с некоторыми прикрепленными ролями IAM).

думайте о ролях IAM как функции.

вы даете возможности пользователя IAM (например,"можно создать лямбда-функцию","можно загрузить на С3").


Примечание для федеративных пользователей:

от http://docs.aws.amazon.com/IAM/latest/UserGuide/id.html:

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

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

технически при входе в консоль AWS роль не используется в качестве идентификатора. В качестве удостоверения используется учетная запись федеративного пользователя (со своими собственными присоединенными ролями).


чтобы понять разницу, давайте пройдем через IAM basic knowledge

элементы управления IAM: кто (аутентификация) может делать то, что (авторизация)в вашем аккаунте AWS. Аутентификация (кто) с IAM выполняется с пользователями/группами и ролями, тогда как авторизация(что) выполняется политиками.

здесь

  • пользователь - конечный пользователь думает о людях.
  • группы-набор пользователей под одним набором разрешение(политика)

  • роли - используются для предоставления определенного разрешения определенным актерам в течение определенного периода времени. Эти актеры могут быть аутентифицироваться AWS или доверенные внешние системы.

Пользователь и роли используют политики авторизации. Имейте в виду, что пользователь и роль ничего не могут сделать, пока вы не разрешите определенные действия с политикой.

ответьте на следующий вопрос вы будете различать и роль пользователя?

  • может быть пароль? Да - > пользователь, нет - > роль
  • может иметь ключ доступа?Да - > пользователь, нет - > роль
  • может принадлежать к группе? Да - > пользователь, нет - > роль
  • может быть связан с ресурсами AWS (например, экземплярами EC2)? Нет - > пользователь, Да - > роль

AWS поддерживает 3 типа ролей для различных сценариев

  • роли сервиса AWS (например: EC2, Lambda, Красное смещение.,..)
  • доступ через учетную запись: предоставление разрешений пользователям из другой учетной записи AWS, независимо от того, контролируете вы эту учетную запись или нет.
  • тож провайдер доступа: выдача разрешений пользователям проверку надежным внешней системы. AWS поддерживает два вида Федерации удостоверений: - Веб-идентичность, такие как Facebook, Goolge - IAM поддержка ingeration через OpenID Connect - Удостоверение SAML 2.0, такое как Active Directory, LDAP.

To поймите, что такое роль, вам нужно прочитать его вариант использования, я не хочу изобретать колесо, поэтому, пожалуйста, прочитайте следующие документы AWS: https://aws.amazon.com/blogs/security/how-to-use-a-single-iam-user-to-easily-access-all-your-accounts-by-using-the-aws-cli/

https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html

надеюсь, что это помогает.


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

роль IAM-это нечто виртуальное, что может принять ресурс. Например, экземпляр EC2 может взять на себя роль и выполнить команду AWS с назначенными привилегиями. То же самое касается и других сервисов, таких как API gateway, Lambda, Kinesis, RDS и так далее.

что они означают, когда они говорят, что роль IAM не может делать прямые запросы к сервисам AWS?

сама роль не может выполнять какие-либо задачи, так как она должна быть принята кем-то или чем-то. Кто-то также может быть кем-то, кто вошел в систему через федерацию идентификации, а затем взять на себя роль.


главными действующими лицами в IAM являются пользователи, группы, роли и политика. И что вам нужно понять об AWS и никогда не забывать, так это то, что

все в AWS является API

и для выполнения любого API или любого из его методов сначала мы должны аутентифицировать, а затем авторизовать этого конкретного пользователя/группу/роль.

Ex: оператор хочет поместить объект в ведро S3. Этот процесс происходит через набор вызовов API в AWS. В основном мы вызываем API S3 и его метод, чтобы поместить объект в конкретное ведро (скажем, метод put_object_in_s3). Для этого мы можем указать имя ковша, объект, и, самое главное, нам нужно предоставить набор учетных данных (имя пользователя с паролем или секретным ключом или т. д.), чтобы сообщить AWS API Engine, кто этот пользователь/группа/роль.

первое, что делает API Engine, это посмотреть на эти учетные данные, отправленные с прикладной программный интерфейс. Затем он проверяет эти (являются ли они правильными, активными) учетные данные, указывающие, что этот запрос поступает от действительного действительного пользователя, группы или роли. Затем механизм API (как он теперь знает, кто отправил этот запрос API) берет документы политики, связанные с конкретным оператором (пользователем или ролью), и оценивает их как одно представление. То есть мы проверяем, разрешено ли действие, вызываемое в API, для этого оператора.

пользователь IAM - в контекст IAM, пользователь является "постоянным" именованным оператором (человеком или машиной). Важно отметить, что учетные данные (учетные данные, возможно, пароль пользователя или ключ доступа или секретный ключ) являются постоянными и остаются с этим именованным пользователем. Таким образом, AWS знает, какие методы аутентификации (метод аутентификации пароля пользователя или метод секретного ключа или т. д.) Для этого пользователя (как его постоянный и остается с пользователем).

IAM group - как в вышеуказанном image, a group is a collection of users. И обратите внимание, что пользователь может быть во многих группах.

роли IAM - роли не разрешения !!!. Роль также является методом аутентификации, как и пользователи и группы IAM. Как пользователь, роль также является оператором (может быть человеком, может быть машиной). Разница в том, что учетные данные с ролями являются временными.

Политика Документы - как уже говорилось ранее, роли не являются разрешениями. Разрешения в AWS являются полностью обрабатывается объектами с именем Policy Documents. Политика документы документы JSON. Документы политики можно напрямую присоединять к пользователям, группам или ролям. Когда документ политики прикрепляется к любому из вышеперечисленных операторов,только они получают разрешения. В документе политики перечислены такие вещи, как: конкретный API или группа подстановочных знаков API, которая получает белый список для каких ресурсов и условий для выполнения этих API (например, разрешить, только если этот пользователь, группа или роль в домашней сети или разрешить из любого местоположения, разрешить только в определенное время суток и т. д.)

и последнее, но не менее важное: аутентификация в AWS выполняется через (пользователи IAM, группы и роли), тогда как авторизация осуществляется политиками.


IAM User-пользователь / приложение, получающее доступ к ресурсам AWS Роли IAM-набор разрешений / политик, которые могут быть применимы к пользователю или ресурсу.

вы можете применить роли к пользователю IAM и к ресурсу AWS. Е. Г., Применять роли в IAM для лямбда-функции. Функция может только с этой ролью IAM.