Установка и настройка AWS CLI на Python

Быстрые ссылки
- Установить Python и pip
- Установить AWS CLI через pip
- Настроить AWS CLI с IAM-пользователем
- Связать CLI с аккаунтом
AWS предоставляет CLI с доступом ко всем сервисам. Его удобно использовать на локальной машине для администрирования и на удалённых серверах для автоматизации задач.
Установите Python и pip
AWS CLI работает на Python, поэтому сначала убедитесь, что установлен Python и менеджер пакетов pip. Поддерживаются Python 3.x — рекомендуется использовать последнюю стабильную ветку Python 3.
Проверка установленной версии Python:
python3 --versionЕсли Python не установлен, установите его через менеджер пакетов вашей ОС. Пример для Debian/Ubuntu:
sudo apt install python3.7На macOS Python 3 удобно устанавливать через brew:
brew install pythonpip часто устанавливается вместе с Python. Если pip отсутствует, скачайте установочный скрипт:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.pyИ запустите его через Python 3:
python3 get-pip.pyВажно: используйте pip3, когда работаете с Python 3, чтобы пакеты ставились в правильную версию интерпретатора.
Установите AWS CLI через pip
После установки Python установите AWS CLI через pip3:
pip3 install awscli --upgrade --userПроверьте установку:
aws --versionЕсли команда не найдена, возможно, нужно добавить папку с исполняемыми файлами Python в PATH. Пример проверки пути до python3:
ls -al $(which python3)Примечание: AWS также распространяет отдельные установщики для AWS CLI v2 (бинарные инсталляторы для Windows/macOS/Linux). Для некоторых сценариев (например, автообновление или интеграция с OS-пакетами) такой инсталлятор удобнее, чем pip.
Настройка AWS CLI с IAM-пользователем
IAM-пользователи — предпочтительный способ выдачи доступа к AWS. Не используйте ключи root-аккаунта на серверах или в автоматизации. Создайте отдельного пользователя с минимально необходимыми правами.
Перейдите в IAM Management Console и на вкладке Users создайте нового пользователя для CLI:

Дайте имя и выберите тип доступа “Programmatic Access”, чтобы получить Access Key ID и Secret Access Key:

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

Если вы настраиваете удалённый сервер или CI, вручную назначайте только те права, которые нужны программе (например, права на S3 put/get для загрузки объектов).
Добавьте теги по желанию и создайте пользователя. Отобразятся Access Key ID и Secret Access Key — скачайте CSV и/или сохраните их в безопасном месте:

Важно: сохраните секретный ключ сразу — он больше не будет показан в консоли.
Свяжите CLI с аккаунтом
В терминале выполните:
aws configureКоманда запросит:
- Access Key ID
- Secret Access Key
- Default region name (например, us-east-2)
- Default output format (json)
Регион указывайте в формате кода региона (без номера зоны доступности). Пример корректного значения: us-east-2. Указание неверного региона приведёт к ошибкам, но вы всегда можете повторно выполнить aws configure.
Проверка соединения и прав:
aws ec2 describe-instancesЭта команда должна вывести JSON с информацией об инстансах. Для проверки, от чьего имени выполняются команды:
aws sts get-caller-identityПодсказка: для удобной работы с JSON в терминале установите утилиту jq.
Полезные инструменты и альтернативы
- AWS CLI v2 — официальный двоичный инсталлятор с дополнительными возможностями; полезен, если не хотите управлять зависимостями через pip.
- IAM роли для EC2 и IAM Instance Profiles — предпочтительный способ предоставлять временные креденшалы серверам вместо статических ключей.
- aws-vault — инструмент для безопасного хранения временных ключей и MFA-поддержки.
- AWS SSO / Single Sign-On — альтернативный путь для аутентификации пользователей без долгоживущих ключей.
Когда этот подход не подходит
- Если вы разворачиваете инфраструктуру на массовых экземплярах, хранение статических ключей на каждой машине увеличивает риск компрометации. Используйте роли EC2 или централизованное управление секретами.
- Для одноразовых задач в защищённых средах имеет смысл использовать временные токены и автоматическую ротацию ключей.
Безопасность и лучшие практики
- Не храните секретные ключи в репозиториях кода или в общедоступных конфигурациях.
- Применяйте принцип наименьших привилегий: давайте пользователю только те политики, которые нужны для конкретной задачи.
- Для серверов используйте IAM роли EC2 или AWS Systems Manager с session manager вместо статических ключей.
- Ротация ключей: планируйте регулярную смену ключей и используйте инструменты автоматизации для обновления конфигураций.
- Включайте MFA для административных учётных записей. Даже при включённой MFA, программные ключи позволят обход аппаратного токена, поэтому храните их в защищённых хранилищах.
- Используйте менеджеры секретов (AWS Secrets Manager, HashiCorp Vault) для управления учётными данными в CI/CD.
Мини-методология установки (SOP)
- Убедитесь, что Python 3 и pip установлены.
- Установите awscli через pip3 или используйте официальный инсталлятор AWS CLI v2.
- В IAM создайте пользователя с типом доступа Programmatic Access.
- Назначьте минимально необходимые права (через группы или политики).
- Выполните aws configure и проверьте aws sts get-caller-identity.
- Перенесите ключи в защищённое хранилище и удалите их из временных файлов.
Роль-ориентированные чек-листы
Администратор:
- Создать IAM-группу для админов
- Включить MFA для учётной записи
- Настроить политику логирования и аудита
Разработчик:
- Получить минимальный набор прав на разработку
- Не хранить ключи в исходниках
- Использовать aws configure для локальной работы
CI/CD сервер:
- Использовать IAM роль сервиса или Secrets Manager
- Ограничить доступ по IP и временем действия токенов
- Логировать действия API
Критерии приёмки
- aws –version возвращает версию CLI
- aws sts get-caller-identity показывает ожидаемый аккаунт/ARN
- aws ec2 describe-instances (при наличии прав) возвращает список инстансов
- Креденшалы не находятся в публичных репозиториях
Короткий словарь
- IAM — система управления доступом в AWS.
- Access Key ID / Secret Access Key — пары учётных данных для программного доступа.
- Роль EC2 — механизм выдачи временных прав экземпляру без статических ключей.
- aws configure — команда для настройки профиля CLI.
Итог
Установка AWS CLI через pip и настройка с IAM-пользователем — быстрый путь начать работу с AWS из терминала. Всегда применяйте принцип наименьших привилегий, отдавайте предпочтение ролям и менеджерам секретов на серверах, и проверяйте настройки через aws sts get-caller-identity.
Важно: если вы работаете в крупной организации, согласуйте создание пользователей и политики с командой безопасности.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента