Принудительный SSL на Amazon S3

Можно ли (с помощью IAM, политики сегментов или иным образом) заставить Amazon S3 обслуживать контент только по протоколу HTTPS/SSL и запретить любой обычный незашифрованный доступ HTTP?

2 ответа

Решение

Я считаю, что это может быть достигнуто с помощью политики ведра. Отклоните все http-запросы к соответствующему сегменту, используя условие aws:SecureTransport: false.
Следующее не проверено, но оно должно дать вам представление о том, как настроить его для вашего случая.

{
    "Statement":[
        {
            "Action": "s3:*",
            "Effect":"Deny",
            "Principal": "*",
            "Resource":"arn:aws:s3:::bucketname/*",
            "Condition":{
                "Bool":
                { "aws:SecureTransport": false }
            }
        }
    ]
} 

Здесь вы разрешаете входящий трафик, но отказываетесь от не SSL. Если вы хотите вернуться назад, просто удалите 2-е утверждение:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::yourbucketnamehere/*"
        },
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Deny",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::yourbucketnamehere/*",
            "Condition":{
                "Bool":
                { "aws:SecureTransport": false }
            }
        }
    ]
}

Не забудьте указать название вашего ведра на yourbucketnamehere,

Теперь вам нужно установить сертификат SSL. Всю информацию можно найти здесь.

Другие вопросы по тегам