Как взять на себя роль IAM с помощью AWS CLI?

Kak Vzat Na Seba Rol Iam S Pomos U Aws Cli



Поскольку AWS предоставляет несколько сервисов и огромные преимущества, вполне естественно, что ИТ-эксперты подняли вопросы безопасности. Для решения этих проблем безопасности AWS представила сервис IAM. AWS IAM — это один из основных веб-сервисов, который позволяет пользователям защищать ресурсы AWS. IAM обеспечивает функциональность централизованного управления доступом к сервисам AWS путем определения разрешений для разных пользователей.

Краткое описание

В этой статье вы узнаете о:







Какова роль AWS IAM?
Какова предполагаемая роль в AWS?
Как взять на себя роль IAM с помощью AWS CLI?



Последние мысли



С помощью ролей и разрешений IAM мы можем определить аутентифицированный и авторизованный доступ к сервисам AWS. Эти роли и разрешения может назначить только пользователь root (владелец) учетной записи AWS.





Какова роль AWS IAM?

Роль IAM — это идентификатор, созданный пользователем root в учетной записи AWS. Этому удостоверению назначаются определенные разрешения, определяющие объем доступа роли IAM к ресурсам AWS. Эти разрешения могут либо управляться AWS, либо определяться пользователем root.

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



Какова предполагаемая роль в AWS?

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

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

В чем разница между политикой разрешений и политикой доверия?

Прежде чем реализовывать функциональность принятия роли с помощью различных методов, пользователю необходимо понять две основные концепции. В службе IAM существует два типа политик:

    • Политика доверия: Политика доверия определяет, кто может взять на себя конкретную роль IAM. Для роли, которую должен взять на себя пользователь, ARN пользователя упоминается в политике доверия роли IAM. Эта политика доверия определяет, является ли пользователь или ресурсы доверенным лицом для принятия на себя этой роли.
    • Политика разрешений: Эта политика определяет, что может делать пользователь или какие действия можно выполнять с этой ролью.

Как взять на себя роль IAM с помощью AWS CLI?

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

Давайте разберемся с работой функции Assume-role на следующем примере.

Например, в учетной записи AWS существует пользователь, которому не назначены какие-либо разрешения для корзины S3. «Доступ только для чтения» называется политикой разрешений, которая прикреплена к роли IAM. Чтобы пользователь мог взять на себя эту роль, ARN пользователя упоминается в политике роли IAM. Эта политика теперь называется «политика доверия» и это отличается от политики разрешений. Политика доверия имеет решающее значение, поскольку она помогает AWS определить, является ли пользователь авторизованным лицом или нет.

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

Ниже приведены три метода принятия роли с помощью AWS CLI:

Способ 1. Использование STS (службы токенов безопасности)

Пользователи могут взять на себя роль, выполнив команды в разделе STS (служба токенов безопасности), который возвращает набор временных учетных данных. Временные учетные данные используются для установления входа на основе сеанса для выполнения вызовов API к ресурсам. Однако существуют два исключения при использовании STS, т.е. Получить токен федерации и ПолучитьSessionToken.

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

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

Шаг 1. Создайте пользователя и политику пользователя.

Во-первых, мы будем создать пользователя IAM без каких-либо разрешений. Для этого откройте КМД из меню «Пуск» Windows:


Только root-пользователь может создавать а IAM-пользователь в учетной записи AWS. Поэтому войдите в корневую учетную запись AWS, используя следующую команду:

aws настроить


Учетные данные уже настроены в CLI для этой демонстрации, как показано в выводе команды:


Узнать больше:

К создать пользователя IAM , введите в CLI следующую команду:

оу, я создаю пользователя --имя пользователя демо-пользователь


Заменить демо-пользователь с вашей Имя пользователя IAM.

Спасти «Арн» задано в выводе команды, как это будет необходимый когда создание тот Политика доверия :


Читать далее:

Следующий шаг – разрешать пользователь (демо-пользователь ) к взять на себя роль . Для этого создайте JSON-файл используя любой Текстовый редактор Вы предпочитаете. Для этой демонстрации мы использовали Блокнот как указано в приведенной ниже команде:

Для Windows

блокнот user-policy.json


Заменить пользовательская политика с именем вашей политики IAM.

Для ОС Linux

потому что user-policy.json


На данный момент мы используем операционную систему Windows для этой демонстрации:


Это откроет блокнот. Вставьте следующую политику в блокнот и нажмите «CTRL + С» с клавиатуры, чтобы сохранить изменения:

{
'Версия' : '17.10.2012' ,
'Заявление' : [
{
'Эффект' : 'Позволять' ,
'Действие' : [
'ec2:Описать*' ,
'iam:ListRoles' ,
'sts:AssumeRole'
] ,
'Ресурс' : '*'
}
]
}


Ниже приведено краткое описание указанной политики:

    • ec2:Опишите: Это разрешение указывает, что пользователь может просматривать или перечислять все AMI, снимки или экземпляры EC2.
    • ям:СписокРоли: Это разрешение указывает, что пользователь может перечислить все роли в службе IAM.
    • sts:AssumeRole: Это разрешение означает, что пользователь может взять на себя роль, определенную в службе IAM.

Здесь политика была отредактирована в блокноте и сохранена:


Каждый AWS ресурс присвоен Имя ресурса доступа (ARN) который однозначно идентифицирует ресурс. Чтобы определить ARN политики, используйте приведенную ниже команду.

оу, я создаю политику --имя-политики пользовательская политика --policy-document файл: // user-policy.json


В вышеупомянутой команде:

    • –имя-политики: Заменить значение «пользовательская политика» с любым именем политики по вашему усмотрению.
    • –политический-документ: В этом поле замените « пользователь-policy.json» с именем файла JSON, содержащего политику для пользователя.

Вывод вышеупомянутой команды следующий. Спасти «Арн» упоминается в выводе политики, поскольку это потребуется при прикреплении этой политики к пользователю:

Шаг 2. Прикрепите политику к пользователю

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

Чтобы прикрепить политику к пользователю, созданному ранее в этом разделе, используйте следующую команду:

aws iam Attach-user-policy --имя пользователя демо-пользователь --policy-arn 'arn:aws:iam::123456789:policy/user-policy'


В вышеупомянутой команде:

    • -имя пользователя: Заменить «демо-пользователь» в -имя пользователя поле с вашим именем пользователя IAM.
    • –policy-arn: Аналогично, в –policy-arn, указать «Арн» из вывода предыдущей команды, т. е. –create-policy.

Выполнив команду после внесения необходимых изменений, политика была успешно прикреплена к пользователю:


Чтобы проверить, была ли политика прикреплена к пользователю, введите в CLI следующую команду:

aws iam list-attached-user-policy --имя пользователя демо-пользователь


Заменить демо-пользователь с вашим IAM имя пользователя указанный при создании пользователя.

Вывод следующей команды подтверждает, что политика была успешно прикреплена к пользователю:

Шаг 3. Создайте политику доверия и роль IAM

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

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

Для создания политики доверия команды задаются следующим образом:

Для Windows

блокнот доверия-роль-policy.json


Заменить доверие-роль-policy.json с названием предпочитаемого вами полиса.

Для ОС Linux

потому что доверие-роль-policy.json


Заменить доверие-роль-policy.json с названием предпочитаемого вами полиса.

Политика доверия соответствует Формат JSON как указано в .json расширение в следующей команде:


Это откроет блокнот. Вставить следующее политика в блокноте и нажмите кнопку «CTRL + С» кнопку на клавиатуре, чтобы сохранить изменения. ARN пользователя также можно скопировать с панели управления пользователя консоли IAM. Для этого посетите панель управления IAM и щелкните имя пользователя. Из отображаемой конфигурации скопируйте ARN пользователя, который отображается в разделе «Сводка».:

{
'Версия' : '17.10.2012' ,
'Заявление' : {
'Эффект' : 'Позволять' ,
'Главный' : {
'АВС' : 'arn:aws:iam::123456789012:пользователь/пример-пользователь'
} ,
'Действие' : 'sts:AssumeRole'
}
}


В вышеупомянутой политике:

    • АВС: Заменить Значение поля AWS «arn:aws:iam::123456789012:user/example-user» с ARN пользователя который был отображен в выводе команды –create-user.

Пользователь может запретить другим пользователям брать на себя роль IAM, указав ARN пользователя в «АВС» поле:


Читать далее:

Теперь создайте роль IAM и прикрепите к ней политику доверия. Чтобы создать роль IAM, используйте приведенную ниже команду:

оу, я создаю роль --имя-роли роль пользователя --assume-role-policy-document файл: // доверие-роль-policy.json


Ниже приводится описание вышеупомянутых полей:

    • –имя роли: Это поле используется для ввода имени, которое будет присвоено этой роли IAM. Замените значение «user-role» именем роли IAM по вашему выбору.
    • --assume-role-policy-document: В этом поле укажите путь, указанный в команде. Замените файл Trust-role-policy.json именем политики, указанным вами в предыдущем разделе.

Выполняя эту команду, она вернет на выходе несколько частей информации, например, ARN, Path, ID и т. д.:


Читать далее:

Приняв на себя эту роль, пользователь сможет выполнять «Доступ только для чтения» действие с ведром S3. Команда дается следующим образом:

Ой, я прикрепляю-ролевую-политику --имя-роли роль пользователя --policy-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


В приведенной выше команде:

    • –имя роли: Заменять ' роль пользователя» в поле –role-name с помощью Имя роли IAM который вы указали ранее в этом руководстве.
    • –policy-arn: arn, указанный в параметре –policy-arn, относится к разрешению ReadOnlyAccess для корзины S3.

На этом изображении роли назначено разрешение ReadOnlyAccess для корзины S3:


Чтобы проверить, назначено ли разрешение роли или нет, используйте следующую команду:

aws iam list-attached-role-policy --имя-роли роль пользователя


Заменить «роль пользователя» с именем вашей роли IAM.

«AmazonS3ReadOnlyAccess» разрешение было прикреплено к роли IAM. Вывод команды представлен следующим образом:

Шаг 4. Создайте ключи доступа

В этом разделе мы создадим ключи доступа для пользователя. Ключи доступа будут использоваться для входа в учетную запись AWS:

aws iam create-access-key --имя пользователя демо-пользователь


Заменить демо-пользователь с вашим именем пользователя IAM, указанным во время создания пользователя.

Здесь команда вернула набор пар ключей доступа (AccessKeyId и секретный ключ доступа)  с дополнительными сведениями, такими как дата создания, статус и т. д. Сохранять AccessKeyId и SecretAccessKey, поскольку они потребуются далее в этом руководстве:


Читать далее:

Шаг 5. Настройте ключ доступа и проверьте пользователя IAM

Чтобы настроить ключ доступа, введите следующую команду в CMD, а затем введите идентификатор ключа доступа и секретный ключ доступа:

aws настроить


Предоставьте идентификатор ключа доступа и секретный ключ доступа для CLI, созданного на шаге 4 этого раздела. Для региона мы сохранили настройки по умолчанию. Пользователи могут настроить любой формат вывода в качестве формата вывода по умолчанию. Для этой демонстрации мы указали JSON формат:


Чтобы проверить, настроен ли пользователь IAM, введите в CLI следующую команду:

aws sts get-caller-identity


Вывод команды показывает, что «демо-пользователь» настроен успешно и в настоящее время выполнен вход в учетную запись AWS:


Чтобы определить, что пользователь IAM может перечислять экземпляры EC2 и в настоящее время не имеет доступа к корзине S3, используйте следующую команду:

aws ec2 описания экземпляров --запрос «Резервирования[*].Instances[*].[VpcId, InstanceId, ImageId, InstanceType]»


Вывод команды представлен следующим образом:


Теперь введите следующую команду, чтобы проверить, может ли пользователь получить доступ к корзине S3:

оу s3 лс


Это отобразит 'Доступ запрещен' ошибка, которая указывает на то, что пользователю не разрешен доступ к корзине S3:

Шаг 6. Примите на себя роль IAM

У пользователя есть разрешение на перечисление ролей IAM в учетной записи AWS. Поэтому, чтобы принять на себя роль, мы сначала получим необходимую информацию, такую ​​как ARN, выполнив следующую команду:

aws iam список ролей --запрос 'Роли[?RoleName == 'роль-пользователя'].[RoleName, Arn]'


Замените «user-role» именем роли IAM в поле «RoleName».

ARN был указан в выводе вышеупомянутой команды:


Теперь, когда у нас есть ARN роли IAM, мы можем взять на себя эту роль, используя следующую команду:

aws sts взять на себя роль --role-arn 'arn:aws:iam::123456789012:роль/пример-роль' --role-session-name AWSCLI-сессия


В приведенной выше команде:

    • --роль-арн: Замените указанное значение –role-arn на ARN роли IAM.
    • --роль-имя-сессии: Пользователь может указать в этом поле любое имя по своему усмотрению.

При выполнении вышеупомянутой команды был возвращен набор временных учетных данных. Эти временные учетные данные будут использоваться для принятия на себя роли IAM с нужным разрешением, т. е. ReadOnlyAccess. AccessKeyId и SecretAccessKey будут использоваться при настройке этих временных учетных данных:


Вот краткое описание вывода команды:

    • Сеансовый токен: Токен сеанса используется для создания входа на основе сеанса. Сохраните значение этого поля, поскольку оно потребуется при настройке учетных данных.
    • Срок действия: Токен сеанса имеет дату и время истечения срока действия. Токен станет бесполезным по истечении указанного времени, и пользователь не сможет взять на себя эту роль.

Шаг 7. Настройте переменную среды

Чтобы настроить временные учетные данные, мы будем использовать команду «set» для Windows, а затем укажем значение идентификатора ключа доступа, секретного ключа доступа, токена сеанса и т. д.:

Для Windows

набор AWS_ACCESS_KEY_ID =Ролеакцесскэйид


Замените RoleAccessKeyID идентификатором ключа доступа, который был возвращен командой на шаге 6.

Для ОС Linux

экспорт AWS_ACCESS_KEY_ID =Ролеакцесскэйид


Замените RoleAccessKeyID идентификатором ключа доступа, который был возвращен командой на шаге 6.

Ключ доступа настроен:


Далее мы настроим секретный ключ доступа с помощью команды «set» для Windows:

Для Windows

набор AWS_SECRET_ACCESS_KEY =Ролесекретный ключ


Замените RoleSecretKey значением секретного ключа доступа, возвращенным командой на шаге 6.

Для ОС Linux

экспорт AWS_SECRET_ACCESS_KEY =Ролесекретный ключ


Замените AWS_SECRET_ACCESS_KEY секретным ключом доступа, который был возвращен командой на шаге 6.

Секретный ключ доступа успешно настроен:


Наконец, мы настроим токен сеанса для установления входа на основе сеанса. Для этой цели используйте приведенную ниже команду:

Для Windows

набор AWS_SESSION_TOKEN = РолеСессионТокен


Замените RoleSessionToken значением токена сеанса, возвращенным командой на шаге 6.

Для ОС Linux

экспорт AWS_SESSION_TOKEN = РолеСессионТокен


Замените RoleSessionToken значением токена сеанса, возвращенным командой на шаге 6.

Значение токена сеанса было успешно настроено:


Чтобы скопировать значение токена сеанса из CMD, нажмите «CTRL+SHIFT+С» .

После настройки переменных среды с помощью следующей команды проверьте, была ли роль принята на себя пользователем:

aws sts get-caller-identity


Вывод команды подтверждает, что роль IAM была успешно предположил пользователем, поскольку возврат ARN «arn:aws:sts::123456789012:предполагаемая роль/роль пользователя/AWSCLI-сеанс» вместо «arn:aws:iam::123456789012:пользователь/демо-пользователь»:


Поскольку роль содержит разрешение ReadOnlyAccess, пользователь теперь сможет подключить сегменты. Для этого введите в CLI следующую команду:

оу s3 лс


В выводе команды успешно зачислены все сегменты S3, настроенные в данный момент в учетной записи AWS:


Однако пользователь не сможет получить доступ к службе EC2, поскольку предполагаемая роль не имеет разрешения на доступ к службе EC2. Чтобы убедиться в этом, используйте следующую команду:

aws ec2 описания экземпляров --запрос «Резервирования[*].Instances[*].[VpcId, InstanceId, ImageId, InstanceType]»


Раньше пользователь мог получить доступ к служебной информации EC2. Однако после выполнения вышеупомянутой команды появляется 'Доступ запрещен' произошла ошибка. Пользователь успешно принял на себя роль IAM:


Это все из этого раздела.

Дополнительный совет: удалите переменные среды

Чтобы вернуться к пользователю IAM, то есть к демонстрационному пользователю, пользователь может удалить переменные среды, установив для переменных среды пустые строки. Ниже приведены команды:

Для Windows

НАБОР AWS_ACCESS_KEY_ID '='
НАБОР AWS_SECRET_ACCESS_KEY '='
НАБОР AWS_SESSION_TOKEN '='


Для Linux

Используйте приведенную ниже команду:

не установлен AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN


Вышеупомянутые команды сбрасывают переменные среды:


После выполнения вышеуказанных команд консоль теперь должна вернуть «демо-пользователь» как текущий вошедший в систему пользователь вместо предполагаемой роли, т. е. роли пользователя. Для этой цели мы будем использовать следующую команду:

aws sts get-caller-identity


Вывод команды указывает, что текущий пользователь, вошедший в систему, является демонстрационным пользователем:


Аналогично, чтобы войти в систему как пользователь root, следуйте инструкциям «C:\Users%USERPROFILE%.aws» путь и щелкните файл учетных данных:


В файле учетных данных замените значения ключа доступа и секретного ключа доступа на доступ и секретный ключ доступа пользователя root:


Введите следующую команду в CLI, чтобы проверить правильность настройки учетных данных:

aws настроить


Здесь, на изображении ниже, мы видим, что ключ доступа и секретный ключ доступа пользователя root настроены успешно:


Это все из этого раздела руководства.

Способ 2: использование параметра –profile

Другой метод принятия на себя этой роли — использование поля «-profile» в CLI. В этом разделе статьи представлена ​​практическая реализация принятия роли в AWS через –profile. Ниже приведены шаги для этого:

Шаг 1. Создайте пользователя IAM

Чтобы создать пользователя IAM, войдите в учетную запись пользователя root через CLI, используя следующую команду:

aws настроить


Учетные данные уже настроены в CLI для этой демонстрации, как показано в выводе команды:


Узнать больше:

Чтобы создать пользователя IAM, введите в CLI следующую команду:

оу, я создаю пользователя --имя пользователя профиль-пользователь


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


Читать далее:

Шаг 2. Создайте ключ доступа

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

aws iam create-access-key --имя пользователя профиль-пользователь


Эта команда возвращает набор ключей доступа. Сохранять тот AccessKeyId и Секретный ключ доступа так как это потребуется при входе в учетную запись AWS:


Теперь, если мы войдем в CLI AWS, используя эти AccessKeyId и SecretAccessKey, и получим доступ к любому ресурсу, например. Ведро S3, 'Доступ запрещен' произойдет ошибка. Это связано с тем, что в настоящее время у пользователя IAM нет разрешений. Чтобы войти в интерфейс командной строки AWS, используйте следующую команду и укажите идентификатор ключа доступа и секретный ключ доступа, созданные ранее:

aws настроить --профиль профиль-пользователь


Заменить «профиль-пользователь» с именем пользователя IAM, которое вы указали при создании пользователя.

Здесь мы успешно вошли в CLI AWS как пользователь IAM:


Чтобы проверить, имеет ли этот пользователь какие-либо разрешения только на чтение для корзины S3, введите в CLI следующую команду:

оу s3 лс --профиль профиль-пользователь


Замените профиль-пользователя именем пользователя IAM, которое вы указали при создании пользователя.

Поскольку этому пользователю не были назначены какие-либо разрешения со стороны пользователя root, это приведет к появлению « Доступ запрещен ' ошибка:

Шаг 3. Создайте политику доверия и роль IAM

Политика доверия определяет, является ли пользователь или ресурс AWS доверенным объектом для принятия на себя роли и получения разрешений. Эти доверительные отношения создаются путем указания ARN пользователя IAM или ресурса AWS в политике разрешений.

Чтобы создать политику доверия в IAM, введите в CLI следующую команду:

Для Windows

блокнот Trust-policy.json


Заменить доверие-policy.json с названием предпочитаемого вами полиса.

Для ОС Linux

потому что доверие-роль-policy.json


Заменить доверие-policy.json с названием предпочитаемого вами полиса.

Пользователи могут использовать любой текстовый редактор по своему усмотрению. Для этой демонстрации мы используем блокнот:


Откроется блокнот для создания политики доверия. Вставьте следующую политику в блокнот и нажмите «CTRL + С» с клавиатуры, чтобы применить и сохранить изменения:

{
'Версия' : '17.10.2012' ,
'Заявление' : {
'Эффект' : 'Позволять' ,
'Главный' : {
'АВС' : 'arn:aws:iam::012345678910:пользователь/профиль-пользователь'
} ,
'Действие' : 'sts:AssumeRole'
}
}


В вышеуказанной политике: АВС: Замените значение «arn:aws:iam::012345678910:user/policy-user» на ARN пользователя IAM, созданного ранее в этом разделе.

Политика была отредактирована в блокноте:


Далее мы создадим роль IAM и прикрепим к ней указанную выше политику доверия. Используйте следующую команду для создания роли IAM:

оу, я создаю роль --имя-роли моя роль --assume-role-policy-document файл: // доверие-policy.json


В вышеупомянутой команде:

    • –имя роли: Заменить 'моя роль' с выбранным вами именем роли IAM.
    • --assume-role-policy-document: В этом поле замените термин «trust-policy.json» с названием вашей политики доверия IAM

Роль IAM успешно создана. Сохраните роль IAM. Сохраните ARN роли IAM, как показано на следующем изображении. Этот ARN будет использоваться при настройке профиля пользователя:


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

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

Ой, я прикрепляю-ролевую-политику --имя-роли моя роль --policy-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


Здесь политика разрешений прикреплена к роли IAM через CLI:

Шаг 4. Настройте профиль

Чтобы пользователь мог взять на себя эту роль, мы сначала настроим этот профиль с учетными данными AWS. Чтобы прикрепить эти временные учетные данные, введите следующую команду:

блокнот ~ / .оу / конфигурация


Дополнительный совет: решите проблему «Путь не указан» в Блокноте.

Файл конфигурации будет содержать настройку [по умолчанию] интерфейса командной строки AWS. Однако, если в блокноте отображается сообщение «Система не может найти указанный путь», введите указанную ниже команду:

блокнот .aws / конфигурация


Пользователи Linux могут использовать 'потому что' редактор для настройки профиля. Пользователи могут использовать любой редактор по своему усмотрению, чтобы открыть файл конфигурации AWS на локальном компьютере:


В файле конфигурации, открытом в Блокноте, внесите следующие изменения:

[ профиль-пользователь профиля ]
role_arn = arn:aws:iam::012345678910:роль / моя роль
исходный_профиль =профиль-пользователь


В приведенном выше фрагменте:

    • роль_арн: Замените значение «arn:aws:iam::012345678910:role/myrole» на ARN роли IAM.
    • исходный_профиль: В этом поле укажите имя пользователя IAM, созданного на шаге 1 этого метода.

После внесения необходимых изменений нажмите «CTRL + С» с клавиатуры, чтобы применить и сохранить изменения:


Теперь, чтобы проверить, может ли пользователь теперь перечислить сегменты S3 или нет, введите в CLI следующую команду:

оу s3 лс --профиль профиль-пользователь


В приведенной выше команде: --профиль-пользователь: В этом поле замените значение «profile-use» на имя, которое вы укажете в файле конфигурации.

Поскольку мы указали «профиль-пользователь» в файле конфигурации, следовательно, мы будем использовать то же имя с командой в CLI. Ранее пользователь не мог получить доступ к сервису S3 AWS, поскольку ему не были назначены разрешения. Роль IAM имеет разрешение «ReadOnlyAccess» для корзины S3, и поэтому, приняв эту роль, пользователь может перечислять корзины на панели мониторинга S3:


Это все, что касается этого метода урока.

Способ 3: использование MFA (многофакторная аутентификация)

Включив многофакторную аутентификацию, пользователь может настроить дополнительный уровень безопасности для своей учетной записи. Если MFA включен, неавторизованные пользователи не смогут получить доступ к учетной записи пользователя, даже если они предоставят пароль и имя пользователя. MFA — это шестизначный код, необходимый для входа в учетную запись. Чтобы узнать больше о многофакторной аутентификации, обратитесь к этой статье:

Ниже приведены шаги, необходимые для принятия роли с MFA через CLI:

Шаг 1. Создайте пользователя IAM и включите MFA.

На этом этапе пользователь может либо использовать интерфейс командной строки для создания пользователя, либо получить доступ к консоли управления AWS. Войдите в учетную запись пользователя root, используя следующую команду:

aws настроить


Вывод команды представлен следующим образом:


Чтобы создать пользователя, введите в CLI следующую команду:

оу, я создаю пользователя --имя пользователя пользователь mfa


В приведенной выше команде: -имя пользователя: Заменить «пользователь mfa» с именем пользователя IAM по вашему выбору.

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


Чтобы включить MFA, посетите Консоль управления AWS и найдите сервис IAM. Нажмите на него из отображаемых результатов:


Нажмите кнопку «Пользователи» на левой панели навигации службы IAM. На панели «Пользователи» щелкните имя пользователя, чтобы настроить MFA:


В следующем интерфейсе коснитесь значка «Удостоверения безопасности» вариант:


Прокрутите вниз до Многофакторная аутентификация раздел и нажмите кнопку «Назначить устройство MFA» кнопка:


Обеспечить осмысленное имя в Имя устройства текстовое поле в отображаемом интерфейсе:


Прокрутите вниз до раздела «Устройство MFA». Пользователю предлагаются различные варианты включения MFA, например, путем сканирования QR-кода, ключа безопасности или аппаратного токена TOTP. Для этой демонстрации выберите «Приложение для аутентификации» вариант:


Нажмите 'Следующий' кнопку в нижней части интерфейса, чтобы продолжить:


Нажмите кнопку «Показать QR-код» как показано на изображении ниже:


Запустите приложение на своем мобильном телефоне или ноутбуке для сканирования QR-кода. Нажмите «+» опция из VIP-интерфейса Symantec:


В магазине Play Symantec VIP называется VIP Access.

В следующем интерфейсе Symantec VIP нажмите кнопку Сканируйте QR-код кнопка в нижней части интерфейса:


Отсканируйте QR-код из AWS MFA. Интерфейс приложения Аутентификатора отображается. Этот код сгенерирует серию кодов, которые потребуются для входа в консоль пользователя IAM:


Приложение Symantec VIP создаст шестизначный одноразовый код после сканирования QR-кода. Эти коды будут продолжать появляться после каждого 30 секунд . На снимке экрана ниже показаны два сгенерированных кода:


Предоставьте коды Код МФА 1 и Код МФА 2 текстовые поля в интерфейсе приложения Authenticator MFA. Нажмите кнопку «Добавить МИД» кнопку после этого, чтобы включить эту функцию:


MFA успешно включен для пользователя IAM. В этом можно убедиться, «Многофакторная аутентификация (MFA)» раздел «Удостоверения безопасности» вкладка IAM-пользователь . Из этого раздела сохраните значение идентификатора, поскольку оно потребуется при принятии роли:

Шаг 2. Прикрепите политику к пользователю

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

Шаг 3. Создайте политику доверия и роль IAM.

Следующим шагом является создание политики доверия, чтобы определить, является ли пользователь доверенным лицом или нет. Эта политика доверия будет затем прикреплена к роли IAM. Чтобы создать политику доверия и роль IAM, перейдите в командную строку и следуйте метода 1 в этой статье.

Шаг 4. Создайте ключ доступа

Для авторизации и аутентификации пользователя генерируется пара ключей доступа, которые являются глобально уникальными на платформе AWS. Эти пары ключей используются во время входа в учетную запись AWS. Чтобы создать Ключи доступа для пользователя IAM, следуйте инструкциям метода 1 в этой статье.

Шаг 5. Настройте учетные данные

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

Шаг 6.  Примите на себя роль IAM

После успешного прикрепления роли IAM и реализации политики доверия пользователь теперь может взять на себя роль IAM. Для этого введите в CLI следующую команду:

aws iam create-access-key --имя пользователя пользователь mfa


Здесь ключ для пользователя IAM успешно создан. Сохраните AccessKeyId и SecretAccessKey, поскольку они потребуются для входа в учетную запись AWS:


Следующим шагом является настройка ключей доступа в интерфейсе командной строки AWS. Используйте приведенную ниже команду для настройки CLI:

aws настроить


Предоставьте ключ доступа и секретный ключ доступа в CLI для конфигураций:


Чтобы проверить, вошел ли пользователь IAM в интерфейс командной строки AWS, используйте следующую команду:

aws sts get-caller-identity


Вывод команды представлен следующим образом, что указывает на то, что пользователь успешно вошел в консоль AWS:


У пользователя есть разрешение на перечисление ролей IAM в учетной записи AWS. Команда, приведенная ниже, используется для вывода списка ролей IAM:

aws iam список ролей --запрос 'Роли[?RoleName == 'mfa-роль'].[RoleName, Arn]


В приведенной выше команде: Имя Роли: В этом поле замените значение «mfa-role» на имя вашей роли IAM.

Вывод команды представлен следующим образом:


Чтобы взять на себя роль IAM с MFA, используйте команду Предположим роль с дополнительными параметрами, такими как серийный номер и код токена. Введите следующую команду в CLI:

aws sts взять на себя роль --role-arn 'arn:aws:iam::123456789012:роль/m-роль' --role-session-name AWSCLI-сессия --серийный номер 'arn:aws:iam::012345678910:mfa/admindevice' --token-code '123456'


В приведенной выше команде:

    • --роль-арн: Замените значение этого поля на ARN вашей роли IAM.
    • --роль-имя-сессии: В этом поле пользователь может указать любое имя сеанса по своему выбору.
    • -серийный номер: Замените значение этого поля значением идентификатора из интерфейса MFA, которое было сохранено ранее.
    • --токен-код: Это значение должно быть заменено текущим кодом, отображаемым в VIP-интерфейсе Symantec.

Текущий код, отображаемый в Symantec VIP, выглядит следующим образом. Тот же код будет использоваться в значении –token-code команды:


Вывод команды будет содержать временные учетные данные, такие как токен сеанса, ключ доступа, секретный ключ доступа и т. д.:

Шаг 7. Настройте переменные среды

Ключи доступа и возвращенный токен сеанса теперь будут использоваться для установления входа на основе сеанса и принятия на себя этой роли. Подробная реализация настройки среды обсуждается в разделе метода 1.

Последние мысли

Чтобы взять на себя роль с помощью CLI, существует три метода: через STS (службу токенов безопасности), параметр –profile или MFA (многофакторная аутентификация). Чтобы пользователь мог принять на себя роль, сначала необходимо установить политику доверия. Эта политика доверия определяет, является ли пользователь доверенным лицом или нет. Эта функция необходима, поскольку она решает проблемы безопасности ИТ-экспертов и частных лиц. Более того, пользователь может взять на себя эту роль только в том случае, если у него есть необходимые разрешения.

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