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

Управление IAM Users, Groups и Roles из терминала удобно для автоматизации и для работы с инфраструктурой как кодом. Ниже собраны базовые команды aws-cli и практические советы, которые помогут безопасно и предсказуемо управлять IAM-ресурсами.
Предпосылки
- Аккаунт AWS (создайте, если нет).
- Базовое понимание: что такое User, Group, Role и Policy.
- IAM-пользователь с правами AdministratorAccess и его Access/Secret ключи.
- Установленный AWS CLI (рекомендуется версия 2).
Важно: по безопасности используйте отдельный профиль для администратора и не храните ключи в репозиториях.
Что мы сделаем
- Проверим aws-cli и экспортируем AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY в сессию терминала.
- Создадим User, Group и Role.
- Прикрепим управляемую политику, проверим и открепим её.
- Удалим созданные ресурсы.
Проверка 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
Управление IAM с помощью aws-cli — базовые команды
Получение списков существующих сущностей:
aws iam list-usersaws iam list-groupsaws iam list-roles
Создание пользователя и группы:
aws iam create-user --user-name test-useraws 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-groupaws 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-useraws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess --group-name test-groupaws 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-useraws iam list-attached-group-policies --group-name test-groupaws 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/ReadOnlyAccessaws iam detach-group-policy --group-name test-group --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccessaws 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-useraws iam list-attached-group-policies --group-name test-groupaws iam list-attached-role-policies --role-name test-role
Удаление сущностей. Важно: перед удалением ресурсов убедитесь, что от них откреплены все политики и что пользователь не состоит в группах.
aws iam remove-user-from-group --user-name test-user --group-name test-groupaws iam delete-user --user-name test-useraws iam delete-group --group-name test-groupaws 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: создание → проверка → очистка
- Создать ресурсы:
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- Добавить в группу и прикрепить политику:
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- Проверить:
aws iam get-group --group-name demo-group
aws iam list-attached-user-policies --user-name demo-user- Очистить:
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 и открепите политики, затем повторите удаление.
Мини-методология: проверка перед удалением
- Список присоединённых управляемых политик.
- Список inline-политик (если есть, удалить).
- Проверить членство в группах и связи с instance profiles.
- Удалить в обратном порядке зависимостей.
Принятие результата — Критерии приёмки
- Создан 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.
Похожие материалы
Herodotus: механизм и защита Android‑трояна
Включить новое меню «Пуск» в Windows 11
Панель полей сводной таблицы в Excel — руководство
Включить новое меню «Пуск» в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить