AWS CLI
AWS CLI (AWS Command Line Interface) — это интерфейс командной строки для работы с сервисами AWS.
Настроить AWS CLI
1. Настроить доступ
Настроить доступ может пользователь с ролью Владелец аккаунта или Администратор пользователей.
- Создайте сервисного пользователя с ролью с доступом в объектное хранилище. Если вы используете пользователя с ролью Пользователь объектного хранилища, в контейнере должна быть настроена политика доступа.
- Выдайте пользователю S3-ключ.
2. Установить клиент
Используйте инструкцию Install or update to the latest version of the AWS CLI документации Amazon.
3. Создать конфигурацию AWS CLI
-
Откройте терминал.
-
Откройте режим конфигурирования:
aws configure
-
Введите
AWS Access Key ID
— значение поля Access key из S3-ключа. -
Введите
AWS Secret Access Key
— значение поля Secret key из S3-ключа. -
Введите
Default region name
— пул, в котором находится объектное хранилище (например,ru-1
). -
Настройки будут сохранен ы в конфигурационных файлах:
-
учетные данные в
.aws/credentials
:[default]
aws_access_key_id = <access_key>
aws_secret_access_key = <secret_key> -
пул по умолчанию в
.aws/config
:[default]
region = <pool>
-
-
Если вы хотите использовать Virtual-Hosted адресацию, в конфигурационный файл
.aws/config
добавьте параметр:[default]
s3 =
addressing_style = virtual
4. Проверить сертификат
Ubuntu/Debian
CentOS
Windows
-
убедитесь, что в системе стоит последняя версия пакета
ca-certificates
:export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
-
или обновите пакет
certifi
до последней версии (certifi==2024.2.2
):pip install certifi
-
убедитесь, что в системе стоит последняя версия пакета
ca-certificates
:export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
-
или обновите пакет
certifi
до последней версии (certifi==2024.2.2
):pip install certifi
-
Убедитесь, что используете AWS CLI последней версии, подробнее в инструкции Install or update to the latest version of the AWS CLI документации Amazon.
-
Скачайте новый корневой сертификат
globalsign
: на сайте GlobalSign выберите R6 GlobalSign Root Certificate. -
Запустите AWS CLI с флагом
--ca-bundle
, например:aws s3 ls --profile=selectel --endpoint-url=https://s3.storage.selcloud.ru --ca-bundle=<path>
Укажите
<path>
— путь до файла.pem
.
Работа с AWS CLI
Синтаксис команд смотрите в инструкции AWS документации Amazon.
Для работы с объектным хранилищем через AWS CLI используйте:
- s3api — команды, соответствующие операциям в REST API;
- s3 — дополнительные команды, упрощающие работу с большим количеством объектов.
При запуске команды aws
обязателен параметр --endpoint-url=https://<s3_domain>
, где <s3_domain>
— домен S3 API, зависит от пула, в котором на ходится объектное хранилище.
Создать контейнер
Создайте контейнер:
aws --endpoint-url=https://<s3_domain> s3 mb s3://<container_name>
Укажите:
<s3_domain>
— домен S3 API, зависит от пула, в котором находится объектное хранилище;<container_name>
— имя нового контейнера.
Посмотреть список объектов
Посмотрите список объектов:
aws --endpoint-url=https://<s3_domain> s3 ls --recursive s3://<container_name>
Укажите:
<s3_domain>
— домен S3 API, зависит от пула, в котором находится объектное хранилище;<container_name>
— имя контейнера.
Загрузить объект
Загрузите файлы в хранилище:
aws --endpoint-url=https://<s3_domain> s3 cp <object_name> s3://<container_name>/
Укажите:
<s3_domain>
— домен S3 API, зависит от пула, в котором находится объектное хранилище;<object_name>
— имя объекта;<container_name>
— имя контейнера.
Удалить объект
Удалите объект:
aws --endpoint-url=https://<s3_domain> s3 rm s3://<container_name>/<object_name>
Укажите:
<s3_domain>
— домен S3 API, зависит от пула, в котором находится объектное хранилище;<container_name>
— имя контейнера;<object_name>
— имя объекта.