Définition des autorisations pour l’accès au site web
Lorsque vous configurez un compartiment en tant que site web statique, si vous voulez que votre site web soit public, vous pouvez accorder un accès public en lecture. Pour que votre compartiment soit lisible publiquement, vous devez désactiver les paramètres de blocage de l’accès public pour le compartiment et écrire une politique de compartiment qui octroie un accès en lecture public. Si votre compartiment contient des objets qui n’appartiennent pas au propriétaire du compartiment, il se peut que vous ayez également besoin d’ajouter une liste ACL des objets qui accorde l’accès en lecture à tous.
Si vous ne souhaitez pas désactiver les paramètres de blocage de l’accès public pour votre compartiment mais que vous souhaitez quand même que votre site web soit public, vous pouvez créer une distribution Amazon CloudFront pour servir votre site web statique. Pour plus d’informations, consultez Accélérer votre site web avec Amazon CloudFront ou Utilisation d’une distribution Amazon CloudFront pour servir un site Web statique dans le Guide du développeur Amazon Route 53.
Note
Sur le point de terminaison du site web, si un utilisateur demande un objet qui n’existe pas, Amazon S3 renvoie le code réponse HTTP 404 (Not Found). Si l’objet existe, mais que vous n’avez pas l’autorisation en lecture dessus, le point de terminaison du site Web renvoie un code réponse HTTP 403 (Access Denied). L’utilisateur peut utiliser le code réponse pour déduire si un objet spécifique existe ou non. Si vous ne voulez pas ce type de comportement, vous ne devez pas activer la prise en charge du site Web pour votre compartiment.
Rubriques
Étape 1 : modifier les paramètres de blocage de l’accès public S3
Si vous voulez configurer un compartiment existant en tant que site web statique ayant un accès public, vous devez modifier les paramètres de blocage de l’accès public pour ce compartiment. Vous devrez peut-être également modifier les paramètres de blocage de l’accès public au niveau de votre compte. Amazon S3 applique la combinaison la plus restrictive de paramètres de blocage de l’accès public au niveau du compartiment et du compte.
Par exemple, si vous autorisez l’accès public pour un compartiment, mais que vous bloquez tout accès public au niveau du compte, Amazon S3 continue de bloquer l’accès public au compartiment. Dans ce scénario, vous devez modifier vos paramètres de blocage de l’accès public de niveau compartiment et de niveau compte. Pour plus d’informations, consultez Blocage de l’accès public à votre stockage Amazon S3.
Par défaut, Amazon S3 bloque l’accès public à votre compte et à vos compartiments. Si vous souhaitez utiliser un compartiment pour héberger un site web statique, vous pouvez utiliser ces étapes pour modifier vos paramètres de blocage de l’accès public.
Avertissement
Avant de suivre ces étapes, passez en revue Blocage de l’accès public à votre stockage Amazon S3 pour vous assurer que vous comprenez et acceptez les risques liés à l’autorisation de l’accès public. Lorsque vous désactivez les paramètres de blocage de l’accès public pour rendre votre compartiment public, toute personne sur Internet peut accéder à votre compartiment. Nous vous recommandons de bloquer tous les accès publics à vos compartiments.
-
Ouvrez la console Amazon S3 sur https://console.aws.amazon.com/s3/
. -
Choisissez le nom du compartiment que vous avez configuré en tant que site web statique.
-
Choisissez Permissions.
-
Sous Block public access (bucket settings) (Bloquer l’accès public (paramètres de compartiment)), choisissez Edit (Modifier).
-
Décochez Bloquer tous les accès publics et sélectionnez Enregistrer les modifications.
Amazon S3 désactive les paramètres de blocage de l’accès public pour votre compartiment. Pour créer un site Web public statique, vous devrez peut-être aussi modifier les paramètres de blocage de l’accès public de votre compte avant d’ajouter une stratégie de compartiment. Si les paramètres de blocage de l’accès public pour votre compte sont actuellement activés, une note s’affiche sous Bloquer l’accès public (paramètres de compartiment).
Étape 2 : ajouter une politique de compartiment
Pour que les objets de votre compartiment soient publiquement lisibles, vous devez écrire une politique de compartiment qui accorde à tous l’autorisation s3:GetObject.
Après avoir modifié les paramètres de blocage de l’accès public S3, vous devez ajouter une politique de compartiment pour accorder un accès public en lecture à votre compartiment. Lorsque vous accordez un accès public en lecture, tout le monde sur Internet peut accéder à votre compartiment.
Important
La stratégie suivante est uniquement un exemple et autorise un accès complet au contenu de votre compartiment. Avant d’effectuer cette étape, consultez Comment assurer la sécurité des fichiers de mon compartiment Amazon S3 ?
-
Dans Compartiments, choisissez le nom de votre compartiment.
-
Choisissez Permissions.
-
Sous Politique de compartiment, choisissez Modifier.
-
Pour accorder l’accès public en lecture à votre site web, copiez la politique de compartiment suivante et collez-la dans l’Éditeur de politique de compartiment.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::Bucket-Name/*" ] } ] } -
Mettez à jour
Resourcepour inclure le nom de votre compartiment.Dans l’exemple précédent de politique de compartiment,
Bucket-Nameest un espace réservé pour le nom du compartiment. Pour utiliser cette politique de compartiment avec votre propre compartiment, vous devez mettre à jour ce nom pour qu’il corresponde à celui de votre compartiment. -
Sélectionnez Save Changes.
Un message s’affiche indiquant que la politique de compartiment a été ajoutée avec succès.
Si une erreur indique
Policy has invalid resource, confirmez que le nom du compartiment dans la politique de compartiment correspond au nom de votre compartiment. Pour plus d’informations sur l’ajout d’une politique de compartiment, consultez Comment ajouter une politique de compartiment S3 ?Si vous recevez un message d’erreur et que vous ne pouvez pas enregistrer la politique de compartiment, vérifiez les paramètres de blocage de l’accès public de votre compte et de votre compartiment pour confirmer que vous autorisez l’accès public au compartiment.
Listes de contrôle d’accès à l’objet
Vous pouvez utiliser une politique de compartiment pour accorder des autorisations à vos objets. Cependant, la politique de compartiment s’applique uniquement aux objets appartenant au propriétaire du compartiment. Si votre compartiment contient des objets qui n’appartiennent pas au propriétaire du compartiment, l’autorisation READ publique sur ces objets doit être accordée à l’aide de la liste ACL des objets.
La propriété d’objets S3 est un paramètre Amazon S3 au niveau des compartiments que vous pouvez utiliser pour contrôler la propriété des objets qui sont chargés dans votre compartiment, ainsi que pour désactiver ou activer les listes ACL. Par défaut, la propriété des objets est définie sur le paramètre Propriétaire du compartiment appliqué et toutes les listes ACL sont désactivées. Lorsque les listes ACL sont désactivées, le propriétaire du compartiment détient tous les objets du compartiment et gère leur accès exclusivement au moyen de politiques de gestion des accès.
La majorité des cas d’utilisation modernes dans Amazon S3 ne nécessitent plus l’utilisation des listes ACL. Nous vous recommandons de maintenir les listes ACL désactivées, sauf si vous devez contrôler individuellement l’accès à chaque objet. Lorsque les listes ACL sont désactivées, vous pouvez utiliser des politiques pour contrôler l’accès à tous les objets de votre compartiment, quelle que soit la personne qui les a chargés dans votre compartiment. Pour plus d’informations, consultez Consultez Contrôle de la propriété des objets et désactivation des listes ACL pour votre compartiment.
Important
Si votre compartiment à usage général utilise Propriétaire du compartiment appliqué pour le paramètre Propriétaire de l’objet S3, vous devez utiliser des stratégies pour accorder l’accès à votre compartiment à usage général et aux objets qu’il contient. Quand le paramètre Propriétaire du compartiment appliqué est activé, les demandes de définition des listes de contrôle d’accès (ACL) ou des listes ACL de mise à jour échouent et renvoient le code d’erreur AccessControlListNotSupported. Les demandes de lecture de listes ACL sont toujours prises en charge.
Pour qu’un objet soit accessible en lecture publiquement à l’aide d’une liste ACL, accordez une autorisation READ au groupe AllUsers, comme indiqué dans l’élément « grant » suivant. Ajoutez cet élément « grant » à la liste ACL d’objet. Pour plus d’informations sur la gestion des listes ACL, consultez Présentation de la liste de contrôle d’accès (ACL).
<Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"> <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI> </Grantee> <Permission>READ</Permission> </Grant>