Как начать работать с AWS CLI в Yandex Object Storage
AWS CLI является одним из самых популярных инструментов для работы с Object Storage. В этом разделе вы научитесь работать с сервисом с помощью этого инструмента. Инструкцию о работе в консоли управления см. в документе Как начать работать с Yandex Object Storage.
Чтобы начать работу с AWS CLI:
- Подготовьте облако к работе.
- Настройте сервисный аккаунт.
- Установите и настройте AWS CLI.
- Создайте бакет.
- Загрузите объект в бакет.
- Получите ссылку на скачивание файла.
Подготовьте облако к работе
-
Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь, если вы еще не зарегистрированы. -
На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его. -
На странице Права доступа
убедитесь, что у вас следующие минимальные роли:- для создания сервисного аккаунта и получения на него ключей доступа — iam.serviceAccounts.admin на каталог. Если вы хотите использовать существующий сервисный аккаунт, достаточно роли
iam.serviceAccounts.admin
на этот сервисный аккаунт. - для назначения сервисному аккаунту нужной роли — storage.admin на каталог.
Если у вас примитивная роль admin на каталог, назначать дополнительно роли не требуется.
- для создания сервисного аккаунта и получения на него ключей доступа — iam.serviceAccounts.admin на каталог. Если вы хотите использовать существующий сервисный аккаунт, достаточно роли
Настройте сервисный аккаунт
-
Создайте сервисный аккаунт:
-
Войдите в консоль управления
. -
В левой части экрана нажмите на строку с именем каталога, в котором вы хотите создать сервисный аккаунт.
-
В списке сервисов выберите Identity and Access Management.
-
Нажмите кнопку Создать сервисный аккаунт.
-
Введите имя сервисного аккаунта.
Требования к формату имени:
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
Имя сервисного аккаунта должно быть уникальным в рамках облака.
-
Нажмите кнопку Создать.
Вы также можете использовать существующий сервисный аккаунт.
Подробнее см. в документе Создание сервисного аккаунта.
-
-
Назначьте сервисному аккаунту нужную роль, например storage.editor на каталог:
- В консоли управления
выберите нужное облако или каталог. - Перейдите на вкладку Права доступа.
- Нажмите кнопку Настроить доступ.
- В открывшемся окне выберите раздел Сервисные аккаунты.
- Выберите нужный сервисный аккаунт из списка или воспользуйтесь поиском.
- Нажмите кнопку
Добавить роль и выберите роль из списка или воспользуйтесь поиском. - Нажмите кнопку Сохранить.
Подробнее см. в документе Назначение роли сервисному аккаунту.
Примечание
Сервисный аккаунт может просматривать список бакетов только в том каталоге, в котором он был создан.
Сервисный аккаунт может выполнять действия с объектами в бакетах, которые созданы в каталогах, отличных от каталога сервисного аккаунта. Для этого назначьте сервисному аккаунту роли на нужный каталог или бакет в нем.
- В консоли управления
-
Создайте статический ключ доступа
-
В консоли управления
перейдите в каталог, которому принадлежит сервисный аккаунт. -
В списке сервисов выберите Identity and Access Management.
-
На панели слева выберите
Сервисные аккаунты. -
В открывшемся списке выберите нужный сервисный аккаунт.
-
Нажмите кнопку Создать новый ключ на верхней панели.
-
Выберите Создать статический ключ доступа.
-
Задайте описание ключа и нажмите кнопку Создать.
-
Сохраните идентификатор и секретный ключ.
Внимание
После закрытия диалога значение ключа будет недоступно.
Подробнее см. в документе Создание статических ключей доступа.
-
Установите и настройте AWS CLI
-
Установите AWS CLI:
LinuxmacOSWindows-
В терминале выполните команду:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" --output "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install
-
После завершения установки перезапустите терминал.
-
В терминале выполните команду:
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" --output "AWSCLIV2.pkg" sudo installer -pkg AWSCLIV2.pkg -target /
-
После завершения установки перезапустите терминал.
- Скачайте установочный файл
AWS CLI. - Откройте файл и следуйте инструкциям программы установки.
Подробнее об установке AWS CLI см. в документации AWS
. -
-
Настройте AWS CLI:
AWS CLI-
В терминале введите команду для настройки AWS CLI:
aws configure
-
Введите значения для параметров:
-
AWS Access Key ID
— идентификатор статического ключа, полученный ранее. -
AWS Secret Access Key
— секретный ключ, полученный ранее. -
Default region name
— регионru-central1
.Для работы с Object Storage всегда указывайте регион —
ru-central1
. Другие значения региона могут привести к ошибке авторизации.
Значения остальных параметров оставьте без изменений.
Статический ключ для доступа к Object Storage вы можете безопасно хранить в сервисе Yandex Lockbox. Подробнее см. Использование секрета Yandex Lockbox для хранения статического ключа доступа.
-
-
Задайте эндпоинт Object Storage:
aws configure set endpoint_url https://storage.yandexcloud.net/
Пример получившихся конфигурационных файлов
-
~/.aws/config
:[default] region = ru-central1 endpoint_url = https://storage.yandexcloud.net/
-
~/.aws/credentials
:[default] aws_access_key_id = <идентификатор_статического_ключа> aws_secret_access_key = <секретный_ключ>
-
-
Подробнее о настройке AWS CLI см. в документации AWS
Примечание
Учитывайте особенности работы AWS CLI с Object Storage.
Создайте бакет
В терминале выполните команду, указав имя бакета:
aws s3 mb s3://<имя_бакета>
Подробности см. в документе Создание бакета.
Загрузите объект в бакет
Чтобы загрузить объект, выполните команду, указав путь к локальному файлу, который нужно загрузить, имя вашего бакета и ключ, по которому объект будет храниться в бакете:
aws s3 cp <путь_к_локальному_файлу>/ s3://<имя_бакета>/<ключ_объекта>
Подробности см. в документе Загрузка объекта.
Получите ссылку на скачивание объекта
В терминале выполните команду, указав имя бакета, ключ объекта и время жизни ссылки в секундах:
aws s3 presign s3://<имя_бакета>/<ключ_объекта> --expires-in <время_жизни>
Полученной ссылкой вы можете поделиться или использовать ее в своем сервисе для доступа к файлу.
Подробности см. в документе Получение ссылки на скачивание.