Принудительный 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. Всю информацию можно найти здесь.