Гид по технологиям

Управление IAM через терминал

4 min read AWS Обновлено 07 Nov 2025
Управление IAM через терминал
Управление IAM через терминал

Терминал и управление IAM

Управление IAM Users, Groups и Roles из терминала удобно для автоматизации и для работы с инфраструктурой как кодом. Ниже собраны базовые команды aws-cli и практические советы, которые помогут безопасно и предсказуемо управлять IAM-ресурсами.

Предпосылки

  • Аккаунт AWS (создайте, если нет).
  • Базовое понимание: что такое User, Group, Role и Policy.
  • IAM-пользователь с правами AdministratorAccess и его Access/Secret ключи.
  • Установленный AWS CLI (рекомендуется версия 2).

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

Что мы сделаем

  1. Проверим aws-cli и экспортируем AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY в сессию терминала.
  2. Создадим User, Group и Role.
  3. Прикрепим управляемую политику, проверим и открепим её.
  4. Удалим созданные ресурсы.

Проверка aws-cli и экспорт ключей в терминале

Проверьте установленную версию aws-cli:

aws --version # пример: aws-cli/2.x.x Python/3.x.x

Экспортируйте ключи (замените на свои значения):

export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=

Альтернатива: используйте aws configure --profile myadmin для сохранения профиля локально.

Проверьте identity текущих ключей:

aws sts get-caller-identity

Результат aws sts get-caller-identity

Управление IAM с помощью aws-cli — базовые команды

Получение списков существующих сущностей:

aws iam list-users
aws iam list-groups
aws iam list-roles

Список пользователей, групп и ролей

Создание пользователя и группы:

aws iam create-user --user-name test-user
aws iam create-group --group-name test-group

Создание роли требует документа доверия (trust relationship). Создайте локальный файл trust-relationship-policy.json со следующим содержимым (позволяет EC2 ассимилировать роль):

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Principal": {"Service": "ec2.amazonaws.com"},
    "Action": "sts:AssumeRole"
  }
}

Затем создайте роль:

aws iam create-role --role-name test-role --assume-role-policy-document file://trust-relationship-policy.json

Создание пользователя, группы и роли

До этого момента у вас должны быть созданные тестовые User, Group и Role.

Добавление пользователя в группу и проверка состава группы:

aws iam add-user-to-group --user-name test-user --group-name test-group
aws iam get-group --group-name test-group

Добавление пользователя в группу

Прикрепление управляемой политики ReadOnlyAccess к User, Group и Role:

aws iam attach-user-policy --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess --user-name test-user
aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess --group-name test-group
aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess --role-name test-role

Проверка присоединённых политик:

aws iam list-attached-user-policies --user-name test-user
aws iam list-attached-group-policies --group-name test-group
aws iam list-attached-role-policies --role-name test-role

Список присоединённых политик

Открепление управляемой политики (пример):

aws iam detach-user-policy --user-name test-user --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess
aws iam detach-group-policy --group-name test-group --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess
aws iam detach-role-policy --role-name test-role --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess

После открепления убедитесь, что политика больше не присоединена:

aws iam list-attached-user-policies --user-name test-user
aws iam list-attached-group-policies --group-name test-group
aws iam list-attached-role-policies --role-name test-role

Открепление политики

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

aws iam remove-user-from-group --user-name test-user --group-name test-group
aws iam delete-user --user-name test-user
aws iam delete-group --group-name test-group
aws iam delete-role --role-name test-role

Практические рекомендации и безопасность

  • Принцип наименьших привилегий: назначайте минимальные права, необходимые для задачи.
  • Используйте роли для сервисов и временные креденшлы (STS) вместо долгосрочных ключей.
  • Включайте MFA для привилегированных учетных записей.
  • Ротация ключей: периодически заменяйте access/secret keys.
  • Предпочтительно использовать профили aws configure --profile name и IAM Identity Center (SSO) для людей.

Важно: перед удалением роли проверьте, не привязан ли она к Instance Profile или другим сервисам. При ошибке удаления сначала открепите все управляемые политики, затем удалите inline-политики и удалите связанные instance profiles.

Быстрый playbook: создание → проверка → очистка

  1. Создать ресурсы:
aws iam create-user --user-name demo-user
aws iam create-group --group-name demo-group
# создать trust-файл и роль
aws iam create-role --role-name demo-role --assume-role-policy-document file://trust-relationship-policy.json
  1. Добавить в группу и прикрепить политику:
aws iam add-user-to-group --user-name demo-user --group-name demo-group
aws iam attach-user-policy --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess --user-name demo-user
  1. Проверить:
aws iam get-group --group-name demo-group
aws iam list-attached-user-policies --user-name demo-user
  1. Очистить:
aws iam detach-user-policy --user-name demo-user --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess
aws iam remove-user-from-group --user-name demo-user --group-name demo-group
aws iam delete-user --user-name demo-user
aws iam delete-group --group-name demo-group
aws iam delete-role --role-name demo-role

Чек-листы по ролям

  • Администратор:
    • Имеет MFA, отдельный профиль, активный аудит логов.
    • Минимизируйте число администраторов.
  • Разработчик:
    • Доступ к созданию ресурсов в песочнице.
    • Использует короткоживущие креденшлы или роль через SSO.
  • CI/CD (нечеловеческие учетные записи):
    • Используйте роли с минимальным набором прав.
    • Ограничьте доступ по условию “SourceIp” или по тегам.

Когда команды могут не работать — галерея ошибок и решения

  • AccessDenied: у используемого ключа нет нужных прав — проверьте политику.
  • EntityAlreadyExists: имя ресурса уже занято — используйте другое имя.
  • NoSuchEntity: сущность не найдена — проверьте правильность имени и регион не влияет на IAM.
  • DeleteConflict (роль связана с instance profile): удалите связанные instance profiles и открепите политики, затем повторите удаление.

Мини-методология: проверка перед удалением

  1. Список присоединённых управляемых политик.
  2. Список inline-политик (если есть, удалить).
  3. Проверить членство в группах и связи с instance profiles.
  4. Удалить в обратном порядке зависимостей.

Принятие результата — Критерии приёмки

  • Создан User, Group, Role с ожидаемыми именами.
  • Политика успешно присоединена и видна через list-attached-*-policies.
  • После обработки все тестовые ресурсы удалены без ошибок.

Решение: когда использовать User, Group или Role

flowchart TD
  A{Кто выполняет действие?}
  A -->|Человек| B[User]
  A -->|Множество людей| C[Group + User]
  A -->|Сервис / EC2 / Lambda| D[Role]
  B --> E[Дать права напрямую или через группу]
  C --> E
  D --> F[Использовать trust policy и временные credentials]

Глоссарий (1 строка каждый)

  • User — учетная запись для человека/процесса с индивидуальными ключами.
  • Group — набор пользователей для удобного назначения общих прав.
  • Role — сущность, которой сервисы/пользователи могут временно “принимать” права.
  • Policy — декларация прав (управляемые или inline).

Итог

В этой инструкции приведены все базовые aws-cli команды для управления IAM: создание пользователя, группы и роли; назначение и снятие управляемых политик; а также удаление ресурсов. Следуйте принципу наименьших привилегий, автоматизируйте через профили и проверяйте зависимости перед удалением. После практики вы сможете легко интегрировать эти шаги в скрипты и CI/CD.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Herodotus: механизм и защита Android‑трояна
Кибербезопасность

Herodotus: механизм и защита Android‑трояна

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти