Поиск по сайту:

Управление операциями в корзине S3 с помощью aws-cli из экземпляра EC2.


Мы можем создать корзину S3 и управлять ею с помощью консоли AWS. Иногда может возникнуть необходимость создать и выполнить операции в корзине S3 из командной строки. Если вы не знаете о корзине S3 и хотели бы узнать о ней, нажмите здесь , где вы можете найти статью о корзине S3, написанную мной.

Прежде чем мы приступим к этой статье, я предполагаю, что вы знакомы с корзиной S3.

В этой статье мы рассмотрим шаги и команды для создания корзины S3 из командной строки и выполнения с ней основных операций, таких как копирование файлов, синхронизация файлов и т. д.

Предпосылки

  1. Аккаунт AWS  (создайте, если у вас его нет).
  2. Основные сведения о корзинах S3 (нажмите здесь, чтобы узнать больше о корзинах S3).
  3. Экземпляр EC2 Ubuntu 20.04 (Нажмите здесь, чтобы узнать об экземпляре EC2 и о том, как его создать из консоли AWS. Вы можете выбрать AMI Ubuntu 20.04 вместо 18.04).
  4. Роль IAM с прикрепленной к ней политикой S3FullAccess (нажмите здесь, чтобы узнать, как создать роль IAM).

Что мы будем делать?

  1. Войдите в аккаунт AWS.
  2. Установите aws-cli.
  3. Прикрепите роль IAM к экземпляру EC2.
  4. Создайте корзину с помощью aws-cli.
  5. Выполните базовую операцию в корзине S3 с помощью aws-cli.

Войти в АВС

Прежде чем мы приступим к установке команды aws-cli на экземпляре EC2, давайте сначала войдем в нашу учетную запись.

Нажмите здесь, чтобы перейти на страницу входа в AWS.

Нажав на приведенную выше ссылку, вы увидите страницу входа в систему, как показано ниже.

После того, как вы успешно войдете в свою учетную запись, вы увидите главную панель инструментов AWS, как показано ниже.

Установить aws-кли

Подключитесь к своему инстансу AWS EC2.

Давайте сначала обновим репозиторий.

sudo apt-get update

Установите команду aws-cli, используя следующую команду на сервере Ubuntu.

sudo apt install awscli

Возьмите версию команды aws-cli.

aws --version

До этого момента у нас был только экземпляр EC2 без какой-либо необходимой роли IAM, прикрепленной к нему.

Теперь, если мы попытаемся проверить личность с помощью следующей команды, нам будет предложено настроить учетные данные, которые будут использоваться для выполнения любой операции.

aws sts get-caller-identity

Прикрепите роль IAM к экземпляру EC2.

Перейдите в консоль AM в своей учетной записи AWS и проверьте, прикреплена ли к правилу необходимая политика.

Здесь вы можете увидеть, что к роли привязана политика AmazonS3FullAccess.

Теперь перейдите в консоль EC2 и выберите экземпляр, который вы используете для выполнения операций с корзиной S3.

Здесь нажмите Действия --> Безопасность --> Изменить роль IAM, чтобы прикрепить правило к экземпляру.

Вы увидите свой экран, где вы можете выбрать правило для прикрепления из раскрывающегося списка. Нажмите «Сохранить», чтобы продолжить.

Выполните базовую операцию на S3 Bucket, используя aws-cli

Вернемся к терминалу EC2 и выполним следующую команду.

aws sts get-caller-identity

Поскольку мы прикрепили требуемое правило к экземпляру, после выполнения приведенной выше команды для проверки идентичности роли, используемой для выполнения операций с терминала, мы можем увидеть в ответ идентификатор пользователя, учетную запись и ее ARN. Это означает, что мы успешно аутентифицировали наш экземпляр EC2. Теперь мы готовы выполнять операции из терминала, используя роль, прикрепленную к экземпляру EC2.

Чтобы проверить существующие сегменты S3 в аккаунте AWS, выполните следующую команду.

aws s3 ls

Давайте создадим новый сегмент с именем \rahul-new-bucket-dec-2020\. Убедитесь, что имя корзины должно быть глобально уникальным.

aws s3 mb s3://rahul-new-bucket-dec-2020

Теперь снова, если мы перечислим сегменты, мы увидим, что новый сегмент успешно создан и доступен в списке существующих сегментов.

aws s3 ls

Давайте создадим новый файл на нашей локальной машине

touch file-for-s3

Мы можем копировать файлы с нашего локального компьютера в корзину S3.

aws s3 cp file-for-s3  s3://rahul-new-bucket-dec-2020

Мы даже можем перечислить содержимое корзины S3.

aws s3 ls s3://rahul-new-bucket-dec-2020

То, как мы копируем файлы с локального компьютера в корзину S3, позволяет синхронизировать локальный каталог с корзиной.

Синхронизация не копирует существующие файлы и папки с локального компьютера в корзину. Он просто копирует файлы, которые были недавно созданы или изменены.

Давайте создадим новый файл, назовем нашу локальную машину

touch new-file

Время мы будем использовать sync.

aws s3 sync . s3://rahul-new-bucket-dec-2020

Теперь давайте снова создадим новый файл

touch file-after-sync

Теперь вы можете видеть, что если мы снова синхронизируемся, будут скопированы только вновь созданные файлы. Файлы, которые уже были скопированы в корзину, не копируются.

aws s3 sync . s3://rahul-new-bucket-dec-2020

Но это не относится к варианту копирования. Он копирует все файлы независимо от файлов, доступных на S3.

aws s3 cp . s3://rahul-new-bucket-dec-2020 --recursive

Обратитесь к следующему снимку экрана, чтобы понять команды, которые мы только что попробовали.

Давайте проверим, какие файлы доступны в нашей корзине S3.

aws s3 ls s3://rahul-new-bucket-dec-2020

Мы можем удалить определенный файл из корзины S3 с помощью подкоманды \rm\.

aws s3 rm s3://rahul-new-bucket-dec-2020/new-file

Проверьте, был ли файл удален или нет из ведра

aws s3 ls s3://rahul-new-bucket-dec-2020

Мы даже можем удалить все объекты из корзины, используя параметр --recursive.

aws s3 rm s3://rahul-new-bucket-dec-2020 --recursive

Проверьте, были ли объекты удалены из корзины или нет

aws s3 ls s3://rahul-new-bucket-dec-2020

Обратитесь к следующему снимку экрана, чтобы понять операции, которые мы только что выполнили.

Как мы могли удалять объекты из корзины, мы также можем удалить саму корзину.

Сначала перечислите все сегменты, доступные в аккаунте.

 aws s3 ls

Удалите нужный Bucket с помощью подкоманды \rb\.

 aws s3 rb s3://rahul-new-bucket-dec-2020

Мы видим, что указанное ведро теперь удалено из подсчета.

авс s3 лс

Мы можем удалить правило, которое мы прикрепили к экземпляру, чтобы экземпляр больше не мог авторизоваться.

Чтобы удалить прикрепленную роль, перейдите к экземпляру EC2, нажмите Действия --> Безопасность --> Изменить роль IAM, удалите прикрепленное правило и сохраните конфигурацию.

Подтвердите свою операцию.

На этот раз, если мы выполним команду \aws s3 ls\, мы не сможем перечислить сегменты из учетной записи. Мы не сможем выполнять какие-либо операции из экземпляра EC2.

Заключение

Как мы управляем корзиной AWS S3 из консоли AWS, мы также можем управлять ею из интерфейса командной строки. Мы увидели шаги по установке утилиты командной строки aws-cli. Мы также рассмотрели шаги по присоединению и отсоединению роли I am от экземпляра EC2. Мы выполнили несколько основных операций с корзиной S3 с помощью утилиты командной строки aws-cli.