💡 Что такое AWS CLI и зачем он вам — это официальная утилита командной строки от Amazon для управления облачными сервисами: S3, EC2, IAM и сотнями других. Вы можете писать скрипты для бэкапов, разворачивать инфраструктуру или просто быстро проверить статус серверов — всё из терминала Debian.
Мы рассмотрим четыре способа установки: официальный установщик AWS (рекомендуемый), Snap-пакет, APT-пакет из репозиториев Debian и установку через pip (только для legacy-сценариев).
⚠️ Важное предупреждение: На разных версиях Debian APT-пакет awscli даёт разные версии CLI:
- Debian 13 (Trixie) — AWS CLI v2 (актуальная)
- Debian 12 (Bookworm) — AWS CLI v2, но устаревшая (2.9.x против текущей 2.x)
- Debian 11 (Bullseye) — AWS CLI v1 (не v2!)
Если вам нужна актуальная версия v2 на любой Debian — используйте официальный установщик или Snap.
Предварительные требования
Прежде чем начать, убедитесь, что ваша система готова:
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает:
sudo— выполняет команду от имени суперпользователяwhoami— показывает имя текущего пользователя
Зачем: Проверяет, может ли ваш пользователь выполнять команды с правами root.
✅ Если выводит root — всё в порядке, можете продолжать.
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
Дополнительные требования:
- Для официального установщика:
curl,unzip,gpg,ca-certificates - Для Snap:
snapd(будет установлен) - Для pip:
python3-venv - Для всех методов: доступ в интернет
Выбор метода установки AWS CLI
| Метод | Версия | На каких Debian работает | Обновления | Когда использовать |
|---|---|---|---|---|
| Официальный установщик AWS | v2 (актуальная) | Debian 13, 12, 11 (amd64/arm64) | Повторный запуск установщика | Рекомендуется для всех — всегда свежая версия |
| Snap-пакет | v2 (актуальная) | Debian 13, 12, 11 (с snapd) | Автоматические (Snap) | Когда удобны автоматические обновления |
| APT-пакет Debian | v2 (Debian 13), v2 старая (Debian 12), v1 (Debian 11) | Из репозиториев Debian | Через APT | Если вас устраивает версия из вашего релиза Debian |
| pip в venv | v1 | Любая с python3-venv | pip install --upgrade | Только для legacy- скриптов, которым нужна именно v1 |
💡 Главный совет: Если вы не знаете, что выбрать — используйте официальный установщик AWS. Он даёт актуальную v2 на любом Debian.
Проверка версии AWS CLI из репозиториев Debian
Прежде чем выбирать метод, полезно узнать, какая версия достанется через APT:
apt-cache policy awscli
Что делает: Показывает, какая версия пакета awscli доступна в ваших репозиториях.
Ожидаемые результаты:
- Debian 13:
Candidate: 2.23.x(AWS CLI v2, достаточно свежая) - Debian 12:
Candidate: 2.9.x(AWS CLI v2, но сильно устаревшая) - Debian 11:
Candidate: 1.19.x(AWS CLI v1, не v2!)
Если результат вас устраивает, можно установить через APT. Если нет — используйте официальный установщик или Snap.
Часть 1: Установка AWS CLI v2 официальным установщиком (рекомендуемый метод)
Этот метод работает на всех версиях Debian и устанавливает самую свежую версию AWS CLI v2.
Шаг 1: Установка зависимостей
sudo apt update
sudo apt install -y curl unzip gpg ca-certificates
Что делает: Устанавливает инструменты для скачивания, проверки подписи и распаковки архива.
Шаг 2: Определение архитектуры и скачивание установщика
(
set -e
AWS_CLI_DEB_ARCH="$(dpkg --print-architecture)"
case "$AWS_CLI_DEB_ARCH" in
amd64)
AWS_CLI_ARCH="x86_64"
;;
arm64)
AWS_CLI_ARCH="aarch64"
;;
*)
printf 'Неподдерживаемая архитектура: %s\n' "$AWS_CLI_DEB_ARCH" >&2
exit 1
;;
esac
curl -fL "https://awscli.amazonaws.com/awscli-exe-linux-${AWS_CLI_ARCH}.zip" -o "awscliv2.zip"
curl -fL "https://awscli.amazonaws.com/awscli-exe-linux-${AWS_CLI_ARCH}.zip.sig" -o "awscliv2.sig"
)
Что делает: Определяет архитектуру (amd64 → x86_64, arm64 → aarch64) и скачивает архив установщика и его цифровую подпись.
Зачем: Проверка подписи гарантирует, что файл не был подменён при скачивании.
Шаг 3: Импорт публичного ключа AWS CLI
Создайте файл с ключом:
cat <<'EOF' > aws-cli-public-key.gpg
-----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: GPGTools - https://gpgtools.org
mQINBF5A9twBEAC4Zt9J9AoL19tKZ4HjFkCw2HIL/9QyLx7wqQD3DzA5oZwHpIrM
... (полный ключ из документации AWS)
-----END PGP PUBLIC KEY BLOCK-----
EOF
Что делает: Создаёт файл с публичным ключом AWS CLI Team.
💡 Где взять полный ключ: Официальный ключ можно получить из документации AWS CLI или импортировать напрямую с keyserver, но для новичков проще создать файл вручную.
Альтернативный способ (если у вас есть доступ к keyserver):
gpg --keyserver keyserver.ubuntu.com --recv-keys FB5DB77FD5C118B80511ADA8A6310ACC4672475C
gpg --export --armor FB5DB77FD5C118B80511ADA8A6310ACC4672475C > aws-cli-public-key.gpg
gpg --import aws-cli-public-key.gpg
Что делает: Импортирует ключ в связку GPG.
Ожидаемый вывод:
gpg: key A6310ACC4672475C: public key "AWS CLI Team <aws-cli@amazon.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
Шаг 4: Проверка отпечатка ключа
gpg --fingerprint A6310ACC4672475C
Что делает: Показывает отпечаток ключа для проверки.
Ожидаемый отпечаток:
Key fingerprint = FB5D B77F D5C1 18B8 0511 ADA8 A631 0ACC 4672 475C
Зачем: Убедитесь, что отпечаток совпадает с указанным. Это гарантирует, что вы импортировали правильный ключ AWS.
Шаг 5: Проверка подписи установщика
gpg --verify awscliv2.sig awscliv2.zip
Что делает: Проверяет, что архив подписан ключом AWS CLI Team.
Ожидаемый вывод:
gpg: Good signature from "AWS CLI Team <aws-cli@amazon.com>" [unknown]
Primary key fingerprint: FB5D B77F D5C1 18B8 0511 ADA8 A631 0ACC 4672 475C
⚠️ Важно: Строка Good signature означает, что архив подлинный. Предупреждение о доверии ([unknown]) — это нормально, так как ключ не имеет сертификации доверия.
Шаг 6: Установка AWS CLI
unzip awscliv2.zip
sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli
Что делает:
unzip— распаковывает архив./aws/install— запускает установщик--bin-dir— куда положить символическую ссылку--install-dir— куда установить файлы
Ожидаемый вывод:
You can now run: /usr/local/bin/aws --version
Шаг 7: Очистка временных файлов
rm -rf awscliv2.zip awscliv2.sig aws/ aws-cli-public-key.gpg
Что делает: Удаляет скачанные и распакованные файлы.
Шаг 8: Проверка установки
command -v aws
aws --version
Ожидаемый вывод:
/usr/local/bin/aws
aws-cli/2.x.x Python/3.x.x Linux/6.x.x exe/x86_64.debian.13
Что означают части версии:
aws-cli/2.x.x— версия AWS CLI v2exe/— признак сборки от официального установщикаdebian.13— система, на которой запущено
Часть 2: Установка AWS CLI v2 через Snap
Этот метод удобен тем, что Snap автоматически обновляет пакет в фоне.
Шаг 1: Установка Snapd
sudo apt update
sudo apt install -y snapd
sudo systemctl enable --now snapd.socket
Что делает: Устанавливает и запускает демон Snap.
sudo snap wait system seed.loaded
Что делает: Ждёт, пока Snap инициализируется.
sudo snap install snapd
Что делает: Обновляет сам Snap до последней версии.
Шаг 2: Проверка Snap
snap version
Ожидаемый вывод:
snap 2.x.x
snapd 2.x.x
series 16
debian 13
architecture amd64
Шаг 3: Установка AWS CLI через Snap
sudo snap install aws-cli --classic
Что делает: Устанавливает AWS CLI v2 с классическим режимом (доступ к системе).
Ожидаемый вывод:
aws-cli (v2/stable) 2.x.x from Amazon Web Services (aws**) installed
Шаг 4: Проверка установки
Если команда aws ещё не найдена, используйте:
snap run aws-cli.aws --version
Ожидаемый вывод: aws-cli/2.x.x ... exe/x86_64.debian.13
Чтобы aws работал без snap run, откройте новый терминал или выполните:
source /etc/profile
Установка AWS CLI v1 через Snap (если нужно)
sudo snap install aws-cli --channel=v1/stable --classic
Часть 3: Установка AWS CLI через APT (из репозиториев Debian)
Этот метод самый простой, но версия CLI зависит от вашего релиза Debian.
sudo apt update
sudo apt install -y awscli
Что делает: Устанавливает пакет awscli из репозиториев Debian.
Проверка:
aws --version
Что вы получите в зависимости от Debian:
- Debian 13:
aws-cli/2.23.x(достаточно свежая v2) - Debian 12:
aws-cli/2.9.x(устаревшая v2) - Debian 11:
aws-cli/1.19.x(v1, а не v2)
Часть 4: Установка AWS CLI v1 в виртуальное окружение Python (только для legacy)
⚠️ Этот метод устанавливает AWS CLI v1. Используйте только если вам нужна именно первая версия для старых скриптов.
Шаг 1: Установка python3-venv
sudo apt update
sudo apt install -y python3-venv
Шаг 2: Создание и активация виртуального окружения
python3 -m venv ~/.aws-cli-v1
source ~/.aws-cli-v1/bin/activate
Что делает: Создаёт изолированное Python-окружение для AWS CLI v1.
Шаг 3: Установка AWS CLI v1 через pip
python -m pip install --upgrade pip
pip install awscli
Что делает: Устанавливает пакет awscli из PyPI (это именно v1).
Шаг 4: Проверка
~/.aws-cli-v1/bin/aws --version
Ожидаемый вывод:
aws-cli/1.x.x Python/3.x.x Linux/6.x.x botocore/1.x.x
Что означает botocore: Это признак AWS CLI v1 (в v2 используется другая архитектура).
(Опционально) Добавление в PATH
echo 'export PATH="$HOME/.aws-cli-v1/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Настройка AWS CLI
После установки любым методом нужно настроить доступ к AWS.
Базовая настройка (Access Key)
aws configure
Что делает: Запускает интерактивный мастер настройки.
Что нужно ввести:
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-east-1
Default output format [None]: json
Где взять ключи: В консоли AWS → IAM → Security credentials → Create access key.
⚠️ Никогда не делитесь секретным ключом. Не сохраняйте в Git, не отправляйте в чаты.
Настройка через IAM Identity Center (SSO)
aws configure sso
Что делает: Настраивает аутентификацию через SSO (без долгоживущих ключей).
После настройки профиля:
aws sso login --profile имя_профиля
Проверка настроек
aws configure list
Что делает: Показывает текущие настройки (регион, формат, наличие ключей).
aws sts get-caller-identity
Что делает: Показывает, под каким пользователем/ролью вы авторизованы.
Ожидаемый вывод:
{
"UserId": "AIDACKCEVSQ6C2EXAMPLE",
"Account": "123456789012",
"Arn": "arn:aws:iam::123456789012:user/username"
}
Использование AWS CLI
Работа с S3
# Список корзин
aws s3 ls
# Копирование файла
aws s3 cp localfile.txt s3://bucket-name/
# Синхронизация директории
aws s3 sync ./local-dir s3://bucket-name/remote-dir/
Что делает sync: Загружает только изменённые файлы. Идеально для бэкапов и деплоя статических сайтов.
Работа с EC2
# Список всех инстансов
aws ec2 describe-instances
# Список запущенных инстансов в виде таблицы
aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" --output table
Работа с IAM
aws iam list-users
Обновление AWS CLI
Обновление официального установщика
(
set -e
rm -rf awscliv2.zip awscliv2.sig aws/
AWS_CLI_DEB_ARCH="$(dpkg --print-architecture)"
case "$AWS_CLI_DEB_ARCH" in
amd64)
AWS_CLI_ARCH="x86_64"
;;
arm64)
AWS_CLI_ARCH="aarch64"
;;
*)
printf 'Unsupported Debian architecture: %s\n' "$AWS_CLI_DEB_ARCH" >&2
exit 1
;;
esac
curl -fL "https://awscli.amazonaws.com/awscli-exe-linux-${AWS_CLI_ARCH}.zip" -o "awscliv2.zip"
curl -fL "https://awscli.amazonaws.com/awscli-exe-linux-${AWS_CLI_ARCH}.zip.sig" -o "awscliv2.sig"
gpg --verify awscliv2.sig awscliv2.zip
unzip awscliv2.zip
sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update
rm -rf awscliv2.zip awscliv2.sig aws/
aws --version
)
Обновление Snap
sudo snap refresh aws-cli
Обновление APT-пакета
sudo apt update
sudo apt install --only-upgrade awscli
Обновление pip (v1)
~/.aws-cli-v1/bin/pip install --upgrade awscli
Решение типичных проблем
8.1 Ошибка: aws: command not found
Симптом: После установки команда aws не найдена.
Причина: Или установка прошла с ошибкой, или команда не в PATH.
Пошаговое решение:
Шаг 1: Проверьте, где находится aws:
command -v aws
Шаг 2: Если ничего не нашлось, проверьте установку:
Для официального установщика:
ls -l /usr/local/bin/aws
test -x /usr/local/bin/aws && echo "Файл существует"
Для Snap:
snap run aws-cli.aws --version
Если это работает, откройте новый терминал или добавьте /snap/bin в PATH.
8.2 Ошибка: Неправильная версия AWS CLI
Симптом: aws --version показывает v1, а нужна v2, или наоборот.
Причина: Установлен не тот метод, или в PATH попала другая версия.
Пошаговое решение:
Шаг 1: Узнайте, откуда берётся команда:
command -v aws
Шаг 2: Если which aws показывает /usr/bin/aws — это APT-пакет.
Шаг 3: Если нужна v2 на Debian 11 или свежая v2 на Debian 12 — используйте официальный установщик или Snap.
Шаг 4: Если нужно переключиться между версиями, временно измените PATH:
# Использовать официальную установку
/usr/local/bin/aws --version
# Использовать APT-пакет
/usr/bin/aws --version
8.3 Ошибка: Unable to locate credentials
Симптом: Любая команда AWS возвращает Unable to locate credentials.
Причина: Не настроены ключи доступа или SSO.
Пошаговое решение:
Шаг 1: Проверьте текущую конфигурацию:
aws configure list
Шаг 2: Если ключи не настроены, запустите:
aws configure
Шаг 3: Проверьте, что ключи работают:
aws sts get-caller-identity
8.4 Ошибка: SSL certificate verification failed
Симптом: Ошибка SSL: CERTIFICATE_VERIFY_FAILED.
Причина: Просроченные или отсутствующие CA-сертификаты.
Пошаговое решение:
Шаг 1: Обновите сертификаты:
sudo apt install ca-certificates -y
sudo update-ca-certificates
Шаг 2: Проверьте время системы:
timedatectl status
sudo timedatectl set-ntp true
8.5 Ошибка: Signature verification failed
Симптом: gpg --verify выдаёт BAD signature.
Причина: Архив повреждён, или подпись не совпадает.
Пошаговое решение:
Шаг 1: Удалите повреждённые файлы:
rm -f awscliv2.zip awscliv2.sig
Шаг 2: Скачайте заново и проверьте:
# Повторите шаги 2-5 из официального метода установки
Шаг 3: Если ошибка повторяется, проверьте интернет-соединение.
8.6 Ошибка: pip awscli устанавливает v2? (нет)
Симптом: Вы ожидали, что pip install awscli даст v2, но получили v1.
Причина: Пакет PyPI awscli — это именно AWS CLI v1. AWS CLI v2 не публикуется на PyPI.
Решение: Используйте официальный установщик или Snap для v2. Метод с pip — только для v1.
Удаление AWS CLI
Удаление официального установщика
sudo rm -f /usr/local/bin/aws /usr/local/bin/aws_completer
sudo rm -rf /usr/local/aws-cli
hash -r
Удаление Snap-пакета
sudo snap remove --purge aws-cli
hash -r
Удаление APT-пакета
sudo apt remove awscli
sudo apt autoremove
Удаление виртуального окружения (pip)
rm -rf ~/.aws-cli-v1
# Удалите строку PATH из ~/.bashrc, если добавляли
Удаление конфигурации (~/.aws)
⚠️ Это удалит все сохранённые ключи и профили!
# Сначала сделайте бэкап
cp -r ~/.aws ~/.aws-backup
# Затем удалите
rm -rf ~/.aws
Чек-лист: что проверить после установки
- [ ]
sudo whoamiвыводитroot - [ ]
command -v awsпоказывает путь (например,/usr/local/bin/aws) - [ ]
aws --versionпоказывает версию (2.x для v2, 1.x для v1) - [ ]
aws configure listпоказывает настройки (хотя бы регион) - [ ]
aws sts get-caller-identityвозвращает информацию об аккаунте - [ ]
aws s3 lsработает (если у вас есть S3-корзины) - [ ]
aws ec2 describe-instancesработает
Заключение
AWS CLI установлен на Debian. Вы можете управлять облачными ресурсами прямо из терминала.
Что дальше:
- Изучите официальную документацию AWS CLI
- Пройдите AWS CLI Command Reference
- Для автоматизации развертывания изучите Terraform или AWS CloudFormation
💡 Важно: Храните ключи доступа в безопасности. Используйте aws configure sso вместо долгоживущих ключей, где это возможно. Никогда не добавляйте ~/.aws в Git-репозитории.