Quelle stratégie de compartiment S3 dois-je utiliser pour me conformer à la règle AWS Config s3-bucket-ssl-requests-only ?

Dernière mise à jour : 29/10/2019

J'ai activé la règle AWS Config s3-bucket-ssl-requests-only pour m'assurer que mes stratégies de compartiment Amazon Simple Storage Service (Amazon S3) nécessitent un chiffrement pendant le transfert des données. Comment créer des stratégies de compartiment conformes à cette règle ? 

Résolution

Par défaut, Amazon S3 autorise les requêtes HTTP et HTTPS. Pour se conformer à la règle s3-bucket-ssl-requests-only, vérifiez que vos stratégies de compartiment refusent explicitement l'accès aux requêtes HTTP. Les stratégies de compartiment qui autorisent les requêtes HTTPS sans refuser explicitement les requêtes HTTP peuvent ne pas être conformes à la règle.

Pour déterminer les requêtes HTTP ou HTTPS dans une stratégie de compartiment, utilisez une condition qui vérifie la clé « aws:SecureTransport ». Lorsque cette clé a la valeur true, cela signifie que la demande est envoyée via HTTPS. Pour vous assurer de respecter la règle s3-bucket-ssl-requests-only, créez une stratégie de compartiment qui refuse explicitement l'accès lorsque la requête répond à la condition « aws:SecureTransport » : « false ». Cette stratégie refuse explicitement l'accès aux requêtes HTTP.

Stratégie de compartiment conforme à la règle s3-bucket-ssl-requests-only

Par exemple, la stratégie de compartiment suivante est conforme à la règle. La stratégie refuse explicitement toutes les actions sur le compartiment et les objets lorsque la demande répond à la condition « aws:SecureTransport » : « false » :

{
  "Id": "ExamplePolicy",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowSSLRequestsOnly",
      "Action": "s3:*",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::awsexamplebucket",
        "arn:aws:s3:::awsexamplebucket/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      },
      "Principal": "*"
    }
  ]
}

Stratégie de compartiment non conforme à la règle s3-bucket-ssl-requests-only

En revanche, la stratégie de compartiment suivante ne respecte pas la règle. Au lieu d'utiliser une instruction de refus explicite, la stratégie autorise l'accès aux demandes qui répondent à la condition « aws:SecureTransport » : « true ». Cette instruction autorise un accès anonyme à s3:GetObject pour tous les objets du compartiment si la requête utilise HTTPS. Évitez ce type de stratégie de compartiment, sauf si votre cas d'utilisation nécessite un accès anonyme via 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:::awsexamplebucket/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "true"
        }
      },
      "Principal": "*"
    }
  ]
}