Воспользуйтесь привилегиями AWS STS Assume Role для управления AWS

Вы сталкиваетесь с трудностями в управлении доступом к вашим ресурсам AWS по мере роста вашей организации? Не волнуйтесь! Служба безопасности AWS (AWS Security Token Service, STS) здесь, чтобы спасти ситуацию.

С привилегиями assume role в AWS STS вы можете предоставлять временный доступ к вашим ресурсам AWS пользователям и приложениям, не требуя долгосрочных учетных данных. В этом руководстве вы узнаете, как управлять своими ресурсами более эффективно, обеспечивая их безопасность.

Читайте далее и получайте полный контроль над вашей инфраструктурой и ресурсами AWS с легкостью!

Предварительные требования

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

Создание пользователя IAM с нулевым доступом

Прежде чем использовать привилегии assume role в AWS STS, вы должны создать пользователя IAM без назначенных им разрешений. Это действие может показаться контринтуитивным, но оно критически важно, поскольку IAM-пользователи не могут напрямую предполагать роли. Сначала им нужно получить временные учетные данные безопасности, предположив роль через службу AWS STS.

Чтобы создать пользователя IAM без разрешений, следуйте этим шагам:

1. Откройте ваш любимый веб-браузер и войдите в Консоль управления AWS с вашей учетной записью AWS root.

2. Затем найдите и выберите IAM в списке служб, чтобы получить доступ к консоли IAM.

Accessing the IAM console

3. На консоли IAM перейдите к пользователям (левая панель) и нажмите «Добавить пользователя», чтобы начать добавление нового пользователя.

Initiating adding a new user

4. Теперь настройте данные пользователя ниже. Это позволит вашему IAM-пользователю войти в Консоль управления AWS с использованием своего имени пользователя и пароля.

  • Имя пользователя – Укажите имя нового пользователя и установите флажок ниже, чтобы предоставить доступ к Консоли управления AWS.
  • Выберите опцию “Я хочу создать пользователя IAM”, поскольку вы создаете пользователя IAM.
  • Пароль консоли – Выберите опцию “Автоматически созданный пароль”, чтобы сгенерировать пароль, который вы можете изменить позже.

После настройки нажмите “Далее”, чтобы продолжить создание пользователя IAM.

Configuring the user details

5. На следующей странице оставьте параметры по умолчанию и нажмите “Далее”, чтобы пропустить настройку прав пользователя.

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

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

Skipping setting permissions

6. Затем просмотрите настроенные данные пользователя и нажмите “Создать пользователя”, чтобы завершить создание пользователя IAM.

Finalizing creating the new IAM user

7. Скопируйте и сохраните URL-адрес и пароль IAM-пользователя. Вам понадобится эта информация для входа под учетной записью IAM-пользователя позже.

Taking note of the IAM user’s sign-in URL and password

8. Теперь вернитесь в консоль IAM, перейдите на страницу Пользователи (левая панель) и нажмите на имя только что созданного пользователя, чтобы перейти на его страницу Сводка.

Accessing the newly-created user’s summary page

9. Наконец, на странице Сводка, запишите Amazon Resource Name (ARN) пользователя, уникальный идентификатор пользователя. Вам понадобится этот ARN позже, когда вы присвоите роль пользователю.

Noting down the newly-created user’s ARN

Подготовка Пользовательской Политики Доверия

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

Создавая пользовательскую политику доверия, вы установите “доверительное отношение” между пользователем IAM и ролью. Это доверительное отношение указывает, какие пользователи или учетные записи могут предполагать роль и при каких условиях.

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

1. Перейдите на страницу Роли (левая панель) в консоли IAM и нажмите “Создать роль”, чтобы начать создание новой роли.

Initiating creating a new role

2. Затем нажмите “Пользовательская политика доверия”, чтобы создать пользовательскую политику.

Choosing to create a custom trust policy

3. Введите следующую политику в текстовое поле, как показано ниже, и нажмите “Далее”. Замените YOUR_ARN на ARN вашего пользователя IAM, который вы отметили на последнем шаге раздела “Создание пользователя IAM с нулевым доступом”.

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

Field Function
Version Specifies the version of the policy language.
Statement Contains the policy statement(s).
Effect Specifies whether the statement allows or denies access, with Allow, in this case, granting access.
Principal Specifies the entity allowed to assume the role; in this example, it is an empty string.
Action Specifies the action the IAM user or role is allowed to perform. The sts:AssumeRole value allows the user to assume the specified IAM role.
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
               "AWS": "YOUR_ARN"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
Creating a custom trust policy

4. На следующей странице найдите и выберите AmazonEC2FullAccess из списка политик, который появится, и нажмите Далее. Эта политика предоставляет полный доступ ко всем ресурсам EC2.

Selecting the AmazonEC2FullAccess policy

5. Затем укажите имя для вашей настраиваемой политики доверия (например, AWSEC2FULLACCESS).

provide a name for your custom trust policy

6. Оставьте другие настройки без изменений и нажмите Создать роль, чтобы завершить создание роли.

На этом этапе роль должна быть предполагаемой IAM (sts_user). При предположении пользователь получит доступ ко всем ресурсам EC2, таким как просмотр, создание и удаление экземпляров EC2 и т. д.

Creating the new role

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

Accessing the role’s details

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

Copying the link to switch roles in the console

Переключение и предположение роли с пользователем IAM

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

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

1. Перейдите по URL для входа, который вы отметили на седьмом шаге раздела “Создание IAM-пользователя с нулевым доступом”, и войдите с паролем IAM-пользователя.

?Избегайте конфликтов с вашей учетной записью root, войдя с использованием другого браузера или режима инкогнито.

Logging into the AWS Management Console with the IAM user

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

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

Getting errors due to lack of permissions

3. Откройте новую вкладку браузера и перейдите по “ссылке для переключения ролей”, которую вы отметили на последнем шаге раздела “Подготовка пользовательской политики доверия”.

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

4. Теперь укажите описательное отображаемое имя для сеанса и нажмите “Переключить роль”, чтобы предположить роль. Отображаемое имя помогает вам отслеживать ваши активные сеансы.

После предположения роли ваш браузер перенаправляется на консоль управления AWS с разрешениями выбранной роли.

Switching roles

5. Перейдите в консоль EC2 снова, чтобы подтвердить, что вашему IAM-пользователю был предоставлен доступ к ресурсам EC2.

Если всё идет хорошо, вы больше не увидите ошибок API, которые вы видели ранее, так как вы теперь вошли в систему с разрешениями роли, включая доступ к ресурсам EC2.

Confirming the IAM user has been successfully granted access to EC2 resources

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

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

Switching back to the original IAM user

Заключение

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

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

Консоль управления AWS – отличный способ начать работу с услуг AWS, таких как предположение ролей. Но почему бы не попробовать предположить роль через интерфейс командной строки AWS (CLI)? Исследование и интеграция AWS CLI в ваши сценарии автоматизации могут предоставить более расширенные функции и возможности.

Source:
https://adamtheautomator.com/aws-sts-assume-role/