web-dev-qa-db-fra.com

Forcer SSL sur Amazon S3

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é?

29
Alex

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 }
            }
        }
    ]
} 
33
OkezieE

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 .

5
Sébastien Coste