J'ai activé la règle AWS Config s3-bucket-ssl-requests-only pour les politiques de compartiment Amazon Simple Storage Service (Amazon S3) afin d'exiger le chiffrement pendant le transit des données. Je veux m'assurer que mes politiques de compartiment sont conformes à cette règle.
Résolution
Amazon S3 autorise à la fois les requêtes HTTP et HTTPS. Par défaut, Amazon S3 envoie des requêtes via la console de gestion AWS, l’interface de la ligne de commande AWS (AWS CLI) ou le protocole HTTPS.
Pour respecter la règle s3-bucket-ssl-requests-only, vérifiez que vos politiques de compartiment refusent explicitement l'accès aux requêtes HTTP. Les politiques de compartiment qui autorisent les requêtes HTTPS mais ne refusent pas explicitement les requêtes HTTP risquent de ne pas être conformes à la règle.
Pour déterminer les requêtes HTTP ou HTTPS dans une politique de compartiment, utilisez une condition qui vérifie la clé aws:SecureTransport. Lorsque vous définissez la condition clé sur vrai, Amazon S3 envoie la requête via HTTPS. Pour respecter la règle s3-bucket-ssl-requests-only, créez une politique de compartiment qui refuse explicitement l'accès aux requêtes HTTP lorsque la requête répond à la condition "aws:SecureTransport": "false".
Politique de compartiment conforme à la règle s3-bucket-ssl-requests-only
L’exemple de politique de compartiment suivant est conforme à la règle s3-bucket-ssl-requests-only. Cette politique refuse explicitement toutes les actions sur le compartiment et les objets lorsque la requête répond à la condition "aws:SecureTransport": "false" :
{
"Id": "ExamplePolicy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowSSLRequestsOnly",
"Action": "s3:*",
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET",
"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
],
"Condition": {
"Bool": {
"aws:SecureTransport": "false"
}
},
"Principal": "*"
}
]
}
Politique de compartiment non conforme à la règle s3-bucket-ssl-requests-only
La politique de compartiment suivante n'est pas conforme à la règle s3-bucket-ssl-requests-only. Au lieu d'une instruction de refus explicite, la politique autorise l'accès aux requêtes qui répondent à la condition "aws:SecureTransport": "true". L’instruction autorise un accès anonyme à GetObject pour tous les objets du compartiment si la requête utilise le protocole HTTPS :
{
"Id": "ExamplePolicy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "NOT-RECOMMENDED-FOR__AWSCONFIG-Rule_s3-bucket-ssl-requests-only",
"Action": "s3:GetObject",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
],
"Condition": {
"Bool": {
"aws:SecureTransport": "true"
}
},
"Principal": "*"
}
]
}
Remarque : Utilisez la politique de compartiment précédente uniquement lorsque votre cas d'utilisation requiert un accès anonyme via HTTPS.
Informations connexes
Comment utiliser les politiques de compartiment et appliquer une défense en profondeur pour protéger vos données Amazon S3