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

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

5 min read AWS DevOps Обновлено 10 Nov 2025
Управление IAM через AWS CLI
Управление IAM через AWS CLI

Обложка: терминал с командами AWS CLI

В этой статье описаны основные команды AWS CLI для управления IAM — Users, Groups и Roles — с примерами, проверками и рекомендациями по безопасности. Это практическое руководство поможет быстро начать работу из терминала и встроить операции в собственные скрипты и процессы.

Введение

IAM (Identity and Access Management) — это сервис AWS для управления доступом. В одном предложении:

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

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

Предпосылки

  1. Учётная запись AWS.
  2. Базовое понимание концепций IAM: User, Group, Role, Policy.
  3. IAM пользователь с правом AdministratorAccess и его access/secret ключи.
  4. Установленный AWS CLI (версии 2.x рекомендуется).

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

  1. Проверим установку AWS CLI и экспортируем ключи в окружение.
  2. Создадим User, Group и Role, прикрепим и отсоединим управляемые политики.
  3. Проверим, как удалить ресурсы и приведём 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

Пример вывода 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 — пошагово

  1. Просмотр текущих ресурсов:
aws iam list-users
aws iam list-groups
aws iam list-roles
  1. Создание пользователя и группы:
aws iam create-user --user-name test-user
aws iam create-group --group-name test-group
  1. Создание роли: требуется доверительная политика (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 в терминале

  1. Добавление пользователя в группу и проверка:
aws iam add-user-to-group --user-name test-user --group-name test-group
aws iam get-group --group-name test-group

Добавление пользователя в группу — вывод команды get-group

  1. Прикрепление управляемой политики 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

Вывод списка прикреплённых политик для user/group/role

  1. Отсоединение политики:
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-* как выше.

Отсоединение политики — пример вывода

  1. Удаление ресурсов (удаляйте в правильном порядке):

Перед удалением пользователя убедитесь, что он не принадлежит группам и у него нет активных 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) для создания и удаления ресурсов

  1. Создать пользователя: create-user.
  2. Если нужен доступ через API, создать ключи: create-access-key (и зафиксировать секрет).
  3. Создать группу (по необходимости) и добавить пользователя: add-user-to-group.
  4. Назначить управляемые/inline политики: attach-*-policy.
  5. Проверить прикрепления: list-attached-*-policies и iam get-user/get-group/get-role.
  6. При удалении: 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: безопасное удаление пользователя

  1. Удалить access keys: list-access-keys → delete-access-key.
  2. Detach все управляемые политики: list-attached-user-policies → detach-user-policy.
  3. Удалить inline политики: list-user-policies → delete-user-policy.
  4. Удалить из групп: list-groups-for-user → remove-user-from-group.
  5. Удалить самого пользователя: 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: политика, определяющая кто может принять роль.

Ресурсы

Итог

Мы рассмотрели полный цикл управления IAM через AWS CLI: создание user/group/role, прикрепление и отсоединение управляемых политик, проверка состояния и безопасное удаление ресурсов. Используйте приведённые SOP и чек‑листы, чтобы автоматизировать и систематизировать операции в ваших окружениях.

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

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

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

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

Herodotus — Android‑троян: признаки и защита

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

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

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

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

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

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

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

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

История просмотров Reels в Instagram — как найти
Социальные сети

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