Est-il possible (via IAM, une stratégie de compartiment ou autre) de forcer Amazon S3 à niquement diffuser du contenu via HTTPS/SSL et de refuser tout accès HTTP normal et non chiffré?
Je crois que cela peut être réalisé en utilisant une politique de seau. Refusez toutes les requêtes HTTP adressées au bucket en question à l'aide de la condition aws:SecureTransport: false
.
Ce qui suit n'est pas testé, mais cela devrait vous donner une idée de la façon de le configurer pour votre cas.
{
"Statement":[
{
"Action": "s3:*",
"Effect":"Deny",
"Principal": "*",
"Resource":"arn:aws:s3:::bucketname/*",
"Condition":{
"Bool":
{ "aws:SecureTransport": false }
}
}
]
}
Ici, vous autorisez votre trafic entrant mais refusez le trafic non SSL. Si vous voulez revenir en arrière, retirez simplement le 2nd déclaration:
{
"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 }
}
}
]
}
N'oubliez pas de mettre le nom de votre bucket dans yourbucketnamehere
.
Vous devez maintenant installer un certificat SSL. Toutes les informations peuvent être trouvées ici .