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

Когда дело доходит до безопасности сервисов AWS, AWS следует модели совместной ответственности, которая включает как AWS, так и клиента. В то время как AWS берет на себя ответственность за «безопасность облака», клиент будет отвечать за «безопасность в облаке».

Безопасность облака

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

Безопасность в облаке

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

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

  1. Контроль доступа
  2. Защита данных
  3. Мониторинг и аудит

Контроль доступа

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

Следуйте модели управления доступом с минимальными привилегиями

Модель управления доступом с минимальными привилегиями означает наличие модели управления доступом, которая предоставляет пользователям только те разрешения, которые абсолютно необходимы. Это можно реализовать, начав с роли без каких-либо разрешений, а затем постепенно разрешая выполнение требуемых действий. Поскольку IAM позволяет определять детальный доступ к объектному уровню, IAM может быть включен для реализации модели управления доступом с наименьшими привилегиями для S3.

S3 точки доступа

Точки доступа - это функция, представленная AWS для обеспечения доступа к общим наборам данных для разных клиентов. Каждая точка доступа предоставляет уникальное имя хоста и может быть присоединена к различным политикам IAM, чтобы различать доступ пользователей к данным в корзине. Кроме того, любая из этих точек доступа может быть ограничена VPC, гарантируя, что только частная сеть клиентов может получить доступ к данным. AWS предлагает использовать точки доступа для следующих сценариев.

  • Несколько приложений, совместно использующих большие наборы данных. Для разных приложений могут быть созданы разные точки доступа, гарантируя, что приложение имеет доступ только к определенной части данных.
  • Ограничить доступ к VPC. Можно ограничить точки доступа, чтобы обеспечить доступ к ним только с определенного VPC.
  • Тестирование новых политик доступа. Политику можно настроить как новую точку доступа, и ее можно протестировать, не оказывая никакого влияния на существующих пользователей или приложения.
  • Ограничить доступ к определенным идентификаторам учетных записей - можно определить политики точки доступа, гарантирующие доступ только к сегментам, принадлежащим определенному пользователю.
  • Укажите уникальное имя - позволяет иметь уникальное доменное имя в учетной записи и в регионе, что позволяет использовать «тестовые» конечные точки для вашей корзины S3.

Роли IAM для сервисов, обращающихся к S3

Всегда лучше использовать роли вместо использования пользователя IAM, когда другим сервисам AWS требуется доступ к корзине S3. Здесь может быть применена модель доступа с наименьшими привилегиями, чтобы гарантировать, что никакая служба не имеет ненужного доступа к корзинам S3 или их объектам.

Предварительно подписанные URL

Предварительно подписанные URL-адреса могут использоваться для предоставления временного доступа к определенному объекту или для разрешения пользователю загружать объект в корзину S3 без необходимости предоставлять постоянный доступ к корзине S3.

Заблокировать публичный доступ

Всегда блокируйте публичный доступ к корзинам S3, за исключением случаев, когда это необходимо.

Защита данных

После загрузки данных в корзину S3 необходимо предпринять дальнейшие действия для обеспечения защиты от повреждения, потери, злонамеренного или случайного удаления или модификации данных. S3 предоставил несколько механизмов для обеспечения защиты данных, таких как:

  • Шифрование
  • Контроль версий
  • Репликация S3
  • Блокировка объекта

Шифрование

В основном в S3 можно включить 2 типа шифрования.

  1. Шифрование неактивных данных - шифрование данных, хранящихся в месте хранения и не передаваемых по сети.
  2. Шифрование данных при передаче - шифрование данных перед передачей, аутентификация конечных точек, расшифровка и проверка данных по прибытии.

Шифрование данных в состоянии покоя

Amazon S3 предоставляет 3 метода шифрования хранимых данных.

  1. Шифрование на стороне сервера с управляемыми ключами Amazon S3 (SSE - S3). Шифрование данных выполняется на стороне сервера (S3) с использованием ключей, управляемых самим Amazon S3 с использованием шифрования AES-256. Каждый объект будет зашифрован с использованием уникального ключа, и этот уникальный ключ будет зашифрован другим главным ключом, который регулярно меняется.
  2. Шифрование на стороне сервера с помощью AWS Key Management Service (SSE - KMS): шифрование выполняется с использованием ключей, обрабатываемых и управляемых KMS. Поскольку к ключам KMS привязаны отдельные разрешения, для защиты от несанкционированного доступа можно использовать разные ключи для разных наборов объектов. Кроме того, поскольку KMS обеспечивает контрольный журнал, легче отслеживать, кто и на чем использовал KMS.
  3. Шифрование на стороне сервера с использованием ключей, предоставленных клиентом (SSE - C):
    Шифрование выполняется с использованием ключа, предоставленного пользователем. Таким образом, пользователь несет ответственность за обработку, смену и сохранение ключей, а S3 - за шифрование.

Данные при транзитном шифровании

S3 позволяет шифровать передаваемые данные с помощью SSL / TLS. А HTTPS поверх TLS можно использовать для защиты данных от перехвата или атак среднего типа. Можно настроить политики сегмента, чтобы разрешить только зашифрованные соединения с использованием HTTPS поверх TLS.

Управление версиями

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

Блокировка объекта

Блокировка объектов в Amazon S3 соответствует модели однократная запись - многократное чтение (WORM). Это позволяет пользователям загружать объект в корзину S3 и предотвращать удаление объекта в течение определенного периода времени или на неопределенный срок. Object Lock предоставляет 2 метода для управления этой защитой объекта.

  1. Срок хранения: пользователь может указать период времени, в течение которого объект не может быть изменен или удален.
  2. Юридическое удержание: Обеспечивает такую ​​же защиту, как и в период хранения, но юридическое удержание не имеет срока действия. Чтобы удалить или обновить любые объекты, находящиеся на юридическом удержании, необходимо явно удалить юридическое удержание.

Мониторинг и аудит

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

  • Журналы доступа к серверу
  • Показатели Cloud Watch

Журналы доступа к серверу

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

Показатели Cloud Watch

Можно включить метрики наблюдения за облаком, чтобы гарантировать, что у нас есть данные о ведре S3 в режиме, близком к реальному времени, которые могут быть полезны для понимания любых проблем и принятия мер. Детализированную аналитику можно получить с помощью метрик наблюдения за облаком, поскольку конфигурация метрик наблюдения за облаком может быть настроена для мониторинга на уровне объекта.

Заключение

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

Ссылка

[1] https://docs.aws.amazon.com/AmazonS3/latest/userguide/security.html

[2] https://aws.amazon.com/s3/features/access-points/

[3] https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html

[4] https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html

[5] https://docs.aws.amazon.com/AmazonS3/latest/userguide/metrics-configurations.html

Больше контента на plainenglish.io