Yandex Cloud
April 25, 2022

Установка и настройка aws cli для доступа к бакету

Для получения доступа кбакету с помощью утилиты командной строки aws cli необходимо ее установить и настроить.

Подготовим все необходимое для начала:
1. Создаем сервисный аккаунт. В консоли облака заходим в Сервисные аккаунты --> Создать сервисный аккаунт
В появившемся окне нужно вписать имя аккаунта, описание и выдать права доступа. В моем случае это будет выглядеть так:
1.1 cam-aws
1.2 SA for aws-cli
1.3 storage.editor

Или это можно сделать через CLI:

yc iam service-account create --name cam-aws
yc resource folder add-access-binding b1gpe6racfn01jdm6o4v --role storage.editor --subject serviceAccount:aj8eog8gncdl9tejvjtj

где b1gpe6racfn01jdm6o4v - идентификатор каталога, в котором создан пользователь, а aj8eog8gncdl9tejvjtj - идентификатор пользователя, полученный при его создании на предыдущем этапе.

2. Создаем статический ключ доступа. Его можно создать с помощью консоли облака, подробнее об этом можно почитать здесь: https://cloud.yandex.ru/docs/iam/operations/sa/create-access-key
А можно с помощью утилиты командной строки yc. Подробнее про ее установку можно почитать здесь: https://cloud.yandex.ru/docs/cli/operations/install-cli

Итак, создаем статические ключи с помощью команды yc:

yc iam access-key create --service-account-name cam-aws

Получаем что-то вроде такого:

access_key:
  id: ajej00203t4kplfffb4m
  service_account_id: aje50ubavfdq6hti2hl8
  created_at: "2022-04-18T06:48:50.429163971Z"
  key_id: YCAJEzxnCTR2dWRuoPqDnl7X-
secret: YCPMMr8X5RDIkuWBYRIBeBCd9r9BOOQIMsOsbhvB

Отсюда нам понадобятся только 2 строчки, их надо запомнить:

  key_id: YCAJEzxnCTR2dWRuoPqDnl7X-
secret: YCPMMr8X5RDIkuWBYRIBeBCd9r9BOOQIMsOsbhvB

3. Устанавливаем aws-cli.

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" 
unzip awscliv2.zip 
sudo ./aws/install -i /usr/local/aws-cli -b /usr/local/bin
which aws
aws --version
aws configure

После выполнения команды aws configure вставляем последовательно:
1. key_id
2. secret
3. ru-central1

4. Проверяем работу.

alias ycs3='aws s3 --endpoint-url=https://storage.yandexcloud.net'
ycs3 ls
ycs3 s3 mb s3://bucket-name
ycs3 ls