Хранение и защита ваших конфиденциальных данных в AWS S3
В последние несколько месяцев мы сосредоточили свое внимание на Amazon Web Services (AWS) и на том, как обеспечить безопасность реализации облачных сервисов AWS. В частности, мы рассмотрели несколько советов по обеспечению безопасности вашего виртуального частного облака Amazon и защите инстансов Amazon EC2, которые вы разместили в своей облачной среде AWS. В этой статье мы рассмотрим некоторые методы, которым вы должны следовать, чтобы гарантировать, что любые данные, которые вы сохранили в Amazon Simple Storage Service (Amazon S3), являются облачным хранилищем, которое вы можете использовать для хранения и извлечения данных для широкого круга. использования. Amazon S3 обычно используется предприятиями и организациями для различных целей хранения данных, включая хранение файлов, контента для веб-сайтов, архивирования записей и даже для целей восстановления данных. S3 включает в себя ряд функций для обеспечения безопасности ваших данных как во время их хранения в облаке, так и во время их передачи между облаком и вашей компанией или клиентами. К сожалению, не все используют эти функции правильно или, возможно, даже знают, как они работают.
Важно обеспечить безопасность ваших данных, когда они находятся в облаке. Это потому, что вы никогда не должны недооценивать любознательность человеческого ума, особенно тех, кто преследует гнусные цели. Просто сканируя различные облачные сайты и сервисы в Интернете, мы снова и снова показываем, насколько небрежно компании могут относиться к своим данным. Например, всего два года назад сообщалось, что эксперты по безопасности обнаружили незащищенную корзину AWS S3, в которой были обнаружены 4 миллиона записей о подписчиках Time Warner Cable. Затем, менее чем через год, снова стало известно, что еще одно незащищенное ведро AWS S3, управляемое ювелирным партнером Walmart, раскрыло данные 1,3 миллиона клиентов.
У этого списка нет конца. Чтобы помочь вам предотвратить подобное в вашей собственной компании, в этой статье мы рассмотрим некоторые функции безопасности S3 и дадим несколько советов по их использованию.
Защита ваших данных с помощью шифрования в AWS S3
S3 обеспечивает шифрование ваших данных на стороне сервера, когда вы храните их в облаке AWS. Это шифрование на стороне сервера полностью прозрачно с точки зрения клиента, оно использует криптографию AES-256 и генерирует уникальный ключ шифрования для каждого объекта, который вы храните в S3. Затем этот ключ периодически меняется, а также сам шифруется мастер-ключом, хранящимся Amazon в безопасном месте.
Однако для дополнительного контроля над шифрованием вы также можете использовать возможности шифрования на стороне клиента, поддерживаемые S3. Когда вы используете шифрование на стороне клиента, вы, как клиент, шифруете свои данные на своей стороне перед тем, как сохранить их в облаке AWS. Затем, когда вы получаете доступ к своим сохраненным данным, они шифруются на стороне клиента. Чтобы внедрить шифрование на стороне клиента с помощью S3, вы можете использовать либо главный ключ на стороне клиента, либо главный ключ клиента, управляемый AWS KMS. В любом случае Amazon ничего не знает о ключах шифрования, участвующих в процессе, поэтому ваши данные находятся в полной безопасности, пока защищен ваш главный ключ шифрования. Конечно, с вашей стороны следует проявлять особую осторожность, если вы решите использовать мастер-ключ на стороне клиента, чтобы убедиться, что этот ключ в безопасности, не поврежден или не потерян. Пример использования Java API для реализации шифрования на стороне клиента для S3 см. на этой странице документации AWS.
Для защиты данных при передаче S3 по умолчанию использует HTTPS. Это означает, что шифрование SSL/TLS используется как для передачи данных, так и для отправки запросов на управление сервисами S3, выдаваемых через Консоль управления AWS или S3 API. Например, когда вы сохраняете, изменяете или извлекаете объект в корзину S3 или из нее, как полезная нагрузка (объект данных), так и метаданные, связанные с объектом, безопасно передаются с использованием SSL/TLS.
Обратите внимание, что если вы случайно или намеренно используете HTTP вместо HTTPS для доступа к объектам в корзине S3, сделанный вами запрос будет отклонен, но любой ключ шифрования, связанный с запросом, следует считать скомпрометированным, а ключ следует отбросить и заменить.
Выход за рамки политик IAM для управления доступом

AWS Identity and Access Management (IAM) — это основная функция AWS, которая позволяет вам контролировать доступ к сервисным API AWS и ресурсам AWS, таким как корзины S3. IAM позволяет вам сделать это, контролируя, кто прошел аутентификацию и авторизован (имеет разрешение) на доступ к вашим ресурсам AWS.
Однако с Amazon S3 вы можете сделать еще один шаг вперед, используя разрешения на уровне корзины и объекта, чтобы обеспечить еще большую безопасность и большую степень детализации контроля доступа, чем вы могли бы достичь, используя политики IAM только в своей среде AWS. В политиках сегментов используется тот же язык политик доступа на основе JSON, что и в политиках IAM, поэтому научиться их использовать несложно, если вы уже знакомы с языком политик безопасности AWS. Политики корзин позволяют контролировать доступ к корзинам и объектам с помощью разрешений, которые могут разрешать или запрещать доступ к ресурсу. Используя такие политики, вы можете строго контролировать безопасность своих данных S3, чтобы гарантировать целостность данных, контролировать утечку информации и предотвращать несанкционированный доступ и удаление ваших конфиденциальных бизнес-данных. Дополнительные сведения о политиках сегментов и некоторые примеры их использования см. на этой странице документации AWS.
В качестве подсказки, чтобы упростить использование политик корзины, вы должны знать, что вы можете использовать тот же генератор политик AWS для создания этих политик, который вы обычно используете для настройки политик IAM, которые вы использовали в своей среде AWS.
Использование управления версиями и репликации для дополнительной безопасности
S3 автоматически реплицирует каждый объект, хранящийся в S3, во всех зонах доступности в соответствующем регионе. Хотя это строго функция доступности, а не функция безопасности, она также помогает обеспечить безопасность ваших данных при хранении в облаке. S3 также поддерживает все версии любых объектов, которые вы изменили в корзине S3 или удалили из корзины. Хотя эта функция управления версиями также в основном обеспечивает простоту восстановления после случайной перезаписи или удаления объектов, управление версиями отличается от репликации тем, что оно отключено по умолчанию и должно быть включено, чтобы оно вступило в силу. Когда управление версиями S3 включено, вы можете извлекать или восстанавливать каждую версию каждого объекта, который вы сохранили в своей корзине S3.
В отношении управления версиями следует отметить одну важную вещь: после того, как вы включили управление версиями для корзины, вы не можете вернуть корзину в ее предыдущее неверсионное состояние. Однако вы можете временно приостановить управление версиями в корзине на любое время. И если вы хотите только предотвратить временную перезапись или удаление объектов в течение фиксированного периода времени, вы можете использовать что-то, называемое S3 Lock Object, для достижения этой цели. Это может быть использовано, например, для соответствия в определенных нормативных средах — см. эту страницу документации AWS, чтобы узнать, как настроить и использовать блокировки объектов S3.