Comment utiliser ma distribution CloudFront pour restreindre l'accès à un compartiment Amazon S3 ?
Dernière mise à jour : 20/01/2023
Résolution
Option 1 (meilleure pratique) : créer un contrôle d'accès d'origine (OAC) CloudFront
- Ouvrez la console CloudFront.
- Dans la liste des distributions, choisissez la distribution qui diffuse le contenu à partir du compartiment S3 auquel vous souhaitez restreindre l'accès.
- Choisissez l'onglet Origins (Origines).
- Sélectionnez l'origine S3, puis Edit (Modifier).
- Pour la section Origin access (Accès d'origine), sélectionnez les Paramètres de contrôle d'accès d’origine (recommandé).
- Pour le contrôle d'accès à Origin, sélectionnez un OAC existant ou choisissez le paramètre Create Control (Créer un contrôle).
- Dans la boîte de dialogue, nommez votre paramètre de contrôle. Il est recommandé de conserver le paramètre par défaut Signer les demandes (recommandé). Ensuite, choisissez Create (Créer).
- Pour l'accès au compartiment S3, appliquez la politique du compartiment au compartiment S3. Sélectionnez Copy policy (Copier la politique) puis sélectionnez Save (Enregistrer).
- Sélectionnez Go to S3 bucket permissions (Accéder aux autorisations du compartiment S3) pour accéder à la console du compartiment S3.
- Sélectionnez Save Changes (Enregistrer les modifications).
- Dans la console Amazon S3, dans votre liste de compartiments, choisissez le compartiment qui est l'origine de la distribution CloudFront.
- Sélectionnez l'onglet Permissions (Autorisations).
- Sous Bucket Policy (Politique de compartiment), confirmez que vous voyez une instruction similaire à ce qui suit :
{
"Version": "2012-10-17",
"Statement": {
"Sid": "AllowCloudFrontServicePrincipalReadOnly",
"Effect": "Allow",
"Principal": {
"Service": "cloudfront.amazonaws.com"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*",
"Condition": {
"StringEquals": {
"AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/EDFDVBD6EXAMPLE"
}
}
}
}
Vous devez ajouter l'instruction précédente pour permettre à l'OAC CloudFront pour lire les objets de votre compartiment.
Remarque : une fois que vous avez restreint l'accès à votre compartiment en utilisant l'OAC CloudFront, vous pouvez éventuellement renforcer la sécurité en intégrant AWS WAF.
Option 2 : créer une identité d'accès d'origine (OAI) CloudFront héritée
- Ouvrez la console CloudFront.
- Dans la liste des distributions, choisissez la distribution qui diffuse le contenu à partir du compartiment S3 auquel vous souhaitez restreindre l'accès.
- Choisissez l'onglet Origins (Origines).
- Sélectionnez l'origine S3, puis Edit (Modifier).
- Sous Origin Access (Accès d'origine), sélectionnez Legacy access identity (Identités d'accès héritées)
- Dans la liste déroulante Origin access identity (Identité d'accès d'origine), sélectionnez le nom de l'identité d'accès d'origine ou choisissez Create new OAI (Créer OAI).
- Dans la boîte de dialogue, nommez votre nouvelle identité d'accès d'origine et choisissez Create (Créer).
- Pour Bucket policy (Stratégie de compartiment), sélectionnez Yes, update the bucket policy (Oui, mettre à jour la politique de compartiment).
- Choisissez Save Changes (Enregistrer les modifications).
- Dans la console Amazon S3, dans votre liste de compartiments, choisissez le compartiment qui est l'origine de la distribution CloudFront.
- Sélectionnez l'onglet Permissions (Autorisations).
- Sous Bucket Policy (Politique de compartiment), confirmez que vous voyez une instruction similaire à ce qui suit :
{{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EAF5XXXXXXXXX"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET/*"
}
Remarque : vérifiez si votre stratégie de compartiment contient des instructions indiquant "Effect": "Deny" qui empêchent l'accès au compartiment à partir de l'OAI CloudFront. Modifiez ces instructions afin que l'OAI CloudFront puisse accéder aux objets du compartiment.
Vérifiez également si votre stratégie de compartiment contient des instructions indiquant "Effect": "Allow" qui autorisent l'accès au compartiment à partir de n'importe quelle source qui n'est pas l'OAI CloudFront. Modifiez ces instructions comme requis par votre cas d'utilisation.
Informations connexes
Cet article vous a-t-il été utile ?
Besoin d'aide pour une question technique ou de facturation ?