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 : 27/04/2021

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 transit des données. Comment créer des stratégies de compartiment conformes à cette règle ?

Solution

Remarque : Amazon S3 offre le chiffrement en transit et au repos. Le chiffrement en transit fait référence au protocole HTTPS et le chiffrement au repos fait référence au chiffrement côté client ou côté serveur.

Amazon S3 autorise les requêtes HTTP et HTTPS. Par défaut, les requêtes sont effectuées via la console de gestion AWS, l'interface de ligne de commande AWS (AWS CLI) ou 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, la requête est envoyée via HTTPS. Pour 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 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": "*"
    }
  ]
}

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

En revanche, la stratégie de compartiment suivante n'est pas conforme à 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:::DOC-EXAMPLE-BUCKET/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "true"
        }
      },
      "Principal": "*"
    }
  ]
}

Cet article vous a-t-il été utile?


Besoin d'aide pour une question technique ou de facturation ?