Управление IAM через AWS CLI

В этой статье описаны основные команды AWS CLI для управления IAM — Users, Groups и Roles — с примерами, проверками и рекомендациями по безопасности. Это практическое руководство поможет быстро начать работу из терминала и встроить операции в собственные скрипты и процессы.
Введение
IAM (Identity and Access Management) — это сервис AWS для управления доступом. В одном предложении:
- User — учётная запись человека или сервиса с набором ключей/учётных данных.
- Group — логическая коллекция пользователей для упрощённого назначения политик.
- Role — временные полномочия, которые могут принять сервисы или пользователи (через sts:AssumeRole).
Важно: для выполнения всех команд вам потребуется IAM пользователь с правами администратора или эквивалентными полномочиями, и корректно настроенный AWS CLI.
Предпосылки
- Учётная запись AWS.
- Базовое понимание концепций IAM: User, Group, Role, Policy.
- IAM пользователь с правом AdministratorAccess и его access/secret ключи.
- Установленный AWS CLI (версии 2.x рекомендуется).
Что мы сделаем
- Проверим установку AWS CLI и экспортируем ключи в окружение.
- Создадим User, Group и Role, прикрепим и отсоединим управляемые политики.
- Проверим, как удалить ресурсы и приведём SOP для повторяемых действий.
Проверка aws-cli и экспорт ключей
Проверьте версию aws-cli:
aws --version #пример вывода: aws-cli/2.x Python/3.x botocore/2.xЭкспортируйте ключи (замените значениями из вашей консоли):
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY= Проверьте идентичность вызывающего субъекта:
aws sts get-caller-identity
Быстрый список команд (обзор)
- list-users — получить список пользователей.
- list-groups — получить список групп.
- list-roles — получить список ролей.
- create-user — создать пользователя.
- create-group — создать группу.
- create-role — создать роль (требует trust policy).
- add-user-to-group — добавить пользователя в существующую группу.
- get-group — получить список пользователей внутри группы.
- attach-user-policy / attach-group-policy / attach-role-policy — прикрепить управляемую политику.
- list-attached-user-policies / list-attached-group-policies / list-attached-role-policies — показать прикреплённые политики.
- detach-user-policy / detach-group-policy / detach-role-policy — отсоединить управляемую политику.
- remove-user-from-group — удалить пользователя из группы.
- delete-user / delete-group / delete-role — удалить ресурсы.
Управление 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
- Добавление пользователя в группу и проверка:
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Проверка отсоединения выполните командами list-attached-* как выше.

- Удаление ресурсов (удаляйте в правильном порядке):
Перед удалением пользователя убедитесь, что он не принадлежит группам и у него нет активных access keys или inline политик.
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Практический playbook (SOP) для создания и удаления ресурсов
- Создать пользователя: create-user.
- Если нужен доступ через API, создать ключи: create-access-key (и зафиксировать секрет).
- Создать группу (по необходимости) и добавить пользователя: add-user-to-group.
- Назначить управляемые/inline политики: attach-*-policy.
- Проверить прикрепления: list-attached-*-policies и iam get-user/get-group/get-role.
- При удалении: detach все управляемые политики, удалить inline политики, удалить access-keys, удалить из групп, затем delete-user.
Краткая команда для проверки состояния пользователя:
aws iam get-user --user-name test-user
aws iam list-access-keys --user-name test-user
aws iam list-attached-user-policies --user-name test-userЧек‑лист по безопасности перед выполнением команд
- Убедитесь, что вы не используете root-пользователя.
- Применяйте принцип наименьших привилегий: назначайте минимально необходимые политики.
- По возможности используйте роли вместо long‑lived access keys.
- Включите логирование (CloudTrail) для аудита действий IAM.
- Храните секреты в безопасном хранилище (например, Secrets Manager или Vault) и регулярно их ротацируйте.
Когда подход через aws-cli не подходит (контрпримеры)
- Если требуется массовое и детерминированное развертывание инфраструктуры — лучше использовать IaC (Terraform, CloudFormation).
- Для централизованного управления корпоративными идентичностями и SSO — используйте AWS IAM Identity Center или внешние IdP.
- Если нужен графический интерфейс для анализа политик и симуляции доступа — удобнее консоль AWS.
Альтернативные подходы
- AWS Console — удобна для разовых операций и визуальной отладки.
- Terraform / CloudFormation — храните IAM как код, версионируйте и тестируйте изменения.
- AWS SDKs — автоматизация через Python, Go, Java и т.д., если требуется логика выше возможностей CLI.
Модель принятия решений (когда создавать User, Group или Role)
flowchart TD
A[Нужен человек или сервис с постоянными ключами?] -->|Да| B[Создать User]
A -->|Нет| C[Нужны временные права для сервиса/ресурса?]
C -->|Да| D[Создать Role]
C -->|Нет| E[Использовать Group для управления набором Users]
B --> F[Добавить в Group и прикрепить политику]
D --> G[Задать trust policy и attach policies]Критерии приёмки (что должно быть выполнено)
- Ресурс создан и виден в списке (list-users/list-groups/list-roles).
- Прикреплённая политика отображается в list-attached-*-policies.
- При проверке через get-user/get-group/get-role отсутствуют неожиданные inline политики или ключи.
- Для ролей trust policy корректно задаёт Principal, который должен принимать роль.
Runbook: безопасное удаление пользователя
- Удалить access keys: list-access-keys → delete-access-key.
- Detach все управляемые политики: list-attached-user-policies → detach-user-policy.
- Удалить inline политики: list-user-policies → delete-user-policy.
- Удалить из групп: list-groups-for-user → remove-user-from-group.
- Удалить самого пользователя: delete-user.
Быстрый справочник команд (cheat sheet)
- Создать пользователя: aws iam create-user –user-name NAME
- Создать группу: aws iam create-group –group-name NAME
- Создать роль с trust policy: aws iam create-role –role-name NAME –assume-role-policy-document file://file.json
- Прикрепить управляемую политику: aws iam attach-user-policy –policy-arn ARN –user-name NAME
- Отсоединить управляемую политику: aws iam detach-user-policy –policy-arn ARN –user-name NAME
- Удаление: aws iam delete-user –user-name NAME
Советы по отладке и распространённые ошибки
- Ошибка AccessDenied: проверьте права текущего пользователя (get-caller-identity) и политику, прикреплённую к нему.
- При создании роли проверьте корректность JSON trust policy (валидный JSON, верные кавычки, ключи Version/Statement).
- При работе со скриптами используйте file:// для передачи policy document в create-role.
- Для массовых операций используйте –query и –output json для парсинга результатов в скриптах.
Словарь (одна строка)
- User: учётная запись для человека или сервиса.
- Group: набор пользователей для коллективного назначения политик.
- Role: временные полномочия, которые может принять сервис или пользователь.
- Policy: документ с разрешениями (json).
- Trust relationship: политика, определяющая кто может принять роль.
Ресурсы
- Официальная документация AWS IAM: https://docs.aws.amazon.com/iam/latest/UserGuide/
Итог
Мы рассмотрели полный цикл управления IAM через AWS CLI: создание user/group/role, прикрепление и отсоединение управляемых политик, проверка состояния и безопасное удаление ресурсов. Используйте приведённые SOP и чек‑листы, чтобы автоматизировать и систематизировать операции в ваших окружениях.
Важно: всегда применяйте принцип наименьших привилегий и храните ключи и политики в безопасном месте.
Похожие материалы
Herodotus — Android‑троян: признаки и защита
Включить новое меню Пуск в Windows 11
Панель полей сводной таблицы в Excel
Включить новое меню «Пуск» в Windows 11
Дубликаты Диспетчера задач в Windows 11 — исправление