Принудительно перенаправить SSL-трафик в существующую корзину S3: Как гарантировать, что вещи не сломаются?

#amazon-web-services #ssl #amazon-s3 #https #amazon-acl

Вопрос:

В моей компании у нас есть несколько сегментов S3, и мы хотим, чтобы к ним применялся только трафик HTTPS. Эти блоки запущены и работают, т. е. функции лямбда и внешние интеграции (например, системы мониторинга безопасности) либо записывают в них объекты, либо постоянно извлекают из них объекты.

Я планирую ввести в действие следующую политику ACL:

 {  "Version": "2012-10-17",  "Id": "Enforce HTTPS",  "Statement": [  {  "Sid": "HTTPSOnly",  "Effect": "Deny",  "Principal": "*",  "Action": "s3:*",  "Resource": [  "arn:aws:s3:::mybucket",  "arn:aws:s3:::mybucket/*"  ],  "Condition": {  "Bool": {  "aws:SecureTransport": "false"  }  }  }  ]  

Какие шаги я должен предпринять, чтобы гарантировать, что лямбда-функции и внешние интеграции по-прежнему смогут выполнять запись/чтение из блоков после реализации политики ACL?

Заранее спасибо

Ответ №1:

Операции S3 вы выполняете с помощью функций Lambda, а интерфейс командной строки AWS по умолчанию использует протокол TLS. Вам нужно будет проверить наличие любых внешних интеграций, которые используют S3, используют SSL или выполняют операции S3 управляемым способом. Если это так, я бы сказал, что нет проблем.

Следует отметить одну маленькую вещь. Условие, добавленное в конце, очень важно :). Я по ошибке пропустил часть условия во время процесса слияния. Это добавило явный отказ, который отклонял все запросы S3. Пользователь Root может помочь только в повторном обновлении политики.

Еще одна вещь, которую следует отметить, если у вас есть отдельная служба, которая занимается развертыванием этого изменения, вам нужно будет разрешить роли этой службы выполнять s3:PutBucketPolicy операции, чтобы после этого можно было изменить политику корзины.