В этой статье я покажу вам основные функции Amazon Simple Storage Service (S3), также называемого корзиной.

Что такое Амазон S3?

Amazon S3 — это сервис хранения объектов, а это значит, что с помощью этого сервиса вы можете хранить файлы в облаке. Надежность сервиса действительно высока. Amazon гарантирует вам 99,999999999% долговечности.

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

Как создать корзину Amazon S3?

Вам нужно зайти в Консоль управления AWS, нажать Сервисы и выбрать S3.

Это перенаправит вас на страницу S3, теперь вам нужно нажать кнопку Создать корзину.

Затем Amazon спросит вас, как бы вы хотели создать свою корзину. В этом уроке мы не будем заниматься расширенной настройкой корзин, а только основами. Вот почему вам просто нужно написать название вашего ведра.

Обратите внимание, что имя ваших корзин должно быть глобально уникальным во всем Amazon S3.

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

Затем прокрутите страницу вниз и нажмите Создать сегмент.

В корзине могут храниться файлы любого типа (аудиофайлы, видеофайлы, pdf и т. д.), вы также можете устанавливать разрешения для управления доступом к корзине и создавать свои собственные политики.

Как загрузить объект в корзину S3?

Чтобы загрузить объект в корзину, перейдите в нее через Консоль управления AWS и нажмите кнопку Загрузить.

После нажатия на кнопку вы будете перенаправлены на страницу загрузки. На этой странице вы можете добавить файлы в корзину, нажав кнопку Добавить файлы или воспользовавшись зоной перетаскивания.

Добавьте несколько файлов и нажмите кнопку Загрузить внизу страницы.

Как сделать объект общедоступным на S3?

Безопасность является приоритетом в Amazon S3, поэтому, если вы попытаетесь щелкнуть свой объект и перейти по его URL-адресу объекта, вы увидите, что не можете получить к нему доступ.

Как видите, по умолчанию объекты в корзинах являются частными и недоступны через Интернет.

Чтобы сделать наш объект общедоступным, нам нужно изменить настройки по умолчанию для нашего сегмента и отключить параметр Блокировать общий доступ.

Перейдите на вкладку Разрешения своего сегмента, прокрутите вниз до пункта Блокировать общий доступ (настройки сегмента) и нажмите Изменить.

Удалите все настройки Блокировать общий доступ и нажмите Сохранить изменения.

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

Когда вы нажимаете кнопку «Сохранить», появляется всплывающее окно, введите подтвердить во входных данных и нажмите Подтвердить.

Теперь вернемся на вкладку Объекты и выберем объект, который вы хотите сделать общедоступным. Затем нажмите Действия и нажмите Сделать общедоступным.

Обратите внимание: когда объект становится общедоступным и не блокируется настройками Блокировать общий доступ, он становится доступным для всех в мире.

Теперь откройте свой URL-адрес объекта, и вы обнаружите, что можете правильно получить доступ к своему объекту.

Как создать политику корзины?

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

Политика корзины — это набор разрешений для управления доступом ко всей корзине или каталогам в корзине.

Начнем с загрузки нового файла в корзину, как описано ранее в статье. После загрузки файла вы можете увидеть, что если вы хотите получить к нему доступ по его URL-адресу, вы получите сообщение Отказано в доступе. Что нам нужно сделать, чтобы сделать новые объекты общедоступными в нашей корзине, так это добавить новую политику корзины, которая позволит нам сделать их общедоступными без необходимости указывать разрешения для каждого объекта в отдельности.

Чтобы создать политику корзины, перейдите в корзину S3 через консоль управления S3, затем нажмите Разрешения и Изменить в разделе Общий доступ (настройки корзины).

Теперь скопируйте ARN сегмента, и мы добавим наши политики, щелкнув Генератор политик.
Ваш ARN сегмента должен выглядеть так: arn:aws:s3 :::reportbucket987983

ARN означает имя ресурса Amazon и однозначно идентифицирует ресурсы AWS.

ARN имеют следующий формат:
arn:раздел:сервис:регион:идентификатор учетной записи:идентификатор_ресурса
arn:раздел:служба:регион:учетная запись- идентификатор:тип-ресурса/идентификатор-ресурса
arn:раздел:служба :регион:идентификатор-аккаунта:тип-ресурса:идентификатор-ресурса

Где:
- раздел: где находится ресурс, например. aws-cn — Китайские регионы
— сервис: тип сервиса, например. s3 — Amazon S3
— region: регион, например us-east-2
- account-id: идентификатор учетной записи AWS, которой принадлежит ресурс, без дефисов, например. 123456789012
- идентификатор ресурса: идентификатор ресурса, имя или идентификатор ресурса или путь к ресурсу.

Теперь у нас есть новая вкладка, которая только что открылась, содержащая генератор политик AWS.

Теперь настройте генератор политик следующим образом:

  • В разделе Выберите тип политики выберите Политика корзины S3.
  • Для Эффект выберите Разрешить.
  • Для Основной вы можете поставить *, что означает, что наша политика будет применяться ко всем (всем службам). Вы также можете поместить здесь ARN роли службы, например, вы можете создать политику корзины S3, которая применяется только к ARN роли EC2, чтобы только ваш экземпляр EC2 мог читать объекты в корзинах. В следующем разделе этой статьи вы узнаете, как получить ARN роли EC2 для вашего проекта.
  • Для сервиса AWS оставьте значение по умолчанию Amazon S3.
  • В разделе Действия выберите GetObject.
  • Имя ресурса Amazon (ARN): вставьте ранее скопированное имя Bucket ARN.
  • В конце ARN добавьте /*, чтобы это выглядело так: arn:aws:s3:::reportbucket987983/*. Это /* позволит применить политику ко всем объектам в корзине.

Нажмите Добавить заявление и Создать политику.

Откроется новое окно с вашей политикой, скопируйте эту политику и она должна выглядеть так:

{
  "Id": "Policy1614889739768",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1614889738670",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::reportbucket987983/*",
      "Principal": "*"
    }
  ]
}

Теперь вставьте политику корзины в редактор политик корзины и нажмите Сохранить изменения.

Теперь вы можете видеть, что ваш файл доступен по URL-адресу его объекта.

Как включить управление версиями корзины?

Управление версиями S3 полезно, когда вы хотите хранить несколько вариантов объекта в одном сегменте. Например, это может позволить вам восстановить любую версию объекта, который хранится в корзине и вернулся в предыдущее состояние. Кроме того, вас может заинтересовать управление версиями сегментов по причинам аудита и соответствия требованиям.

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

Перейдите на страницу обзора сегмента, перейдите на вкладку Свойства и в разделе Управление версиями сегмента нажмите Изменить.

Теперь выберите Включить и нажмите Сохранить изменения.

Теперь загрузите файл как минимум два раза в одну из своих корзин и нажмите Список версий.

Как видите, существуют разные версии файла sample-file.txt. Amazon S3 по умолчанию всегда возвращает последнюю версию вашего файла.

Как найти ARN роли EC2?

Чтобы найти ARN роли EC2, перейдите в Консоль управления AWS и откройте сервис IAM.

Теперь на странице Управление идентификацией и доступом (IAM) нажмите Роли и найдите EC2InstanceProfileRole. Откройте страницу «Сводка» этой роли, щелкнув роль.

Теперь вам нужно скопировать ARN роли и сохранить его на будущее, он должен выглядеть так: arn:aws:iam::945995225117:role/EC2InstanceProfileRole

Дополнительные материалы на plainenglish.io