Amazon Simple Storage Service
Manuel du développeur (Version de l'API 2006-03-01)

Autorisations requises pour l'accès au site Web

Lorsque vous configurez un compartiment comme site web, vous devez accorder l'accès public en lecture au compartiment afin que les personnes puissent accéder au site web. 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 stratégie de compartiment. Si votre compartiment contient des objets qui n'appartiennent pas au propriétaire du compartiment, il se peut que vous ayez besoin d'ajouter une liste ACL des objets qui accorde l'accès en lecture à tous.

Note

Sur le point de terminaison de 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.

Modifier les paramètres du blocage de l'accès publique

Par défaut Amazon S3 n'autorise pas l'accès public à votre compte ou à vos compartiments. Si vous voulez configurer un compartiment existant comme un site web statique ayant un accès public, vous devez modifier les paramètres de blocage de l'accès public pour ce compartiment. Il se peut également que vous ayez à modifier vos paramètres de blocage de l'accès public de niveau compte. Amazon S3 applique la combinaison la plus restrictive des paramètres de blocage de l'accès public de niveau compartiment et de niveau compte. Par exemple, si vous autorisez l'accès public pour un compartiment, mais que vous bloquez tout l'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 Utilisation d'Amazon S3 Block Public Access.

Important

Avant de désactiver le blocage de l'accès public, confirmez que vous souhaitez que quiconque sur Internet puisse accéder à votre compartiment. Nous vous recommandons de bloquer tout l'accès public à vos compartiments, sauf si vous avez besoin d'un compartiment public pour un cas d'utilisation spécifique, tel qu'un site web statique public. Si vous ne voulez autoriser que certains utilisateurs de votre compte à accéder à votre site web statique, vous pouvez modifier vos paramètres de blocage de l'accès public plutôt que de désactiver l'accès public. Pour plus d'informations, consultez Utilisation d'Amazon S3 Block Public Access.

Pour désactiver le blocage de l'accès public pour un compartiment configuré comme site web statique

  1. Ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

  2. Sélectionnez le compartiment que vous avez configuré comme site web statique et choisissez Edit public access settings (Modifier les paramètres d'accès public).

  3. Effacez Block all public access (Bloquer tous les accès publics) et choisissez Save (Enregistrer).

  4. Dans la zone de confirmation, entrez confirm, puis choisissez Confirm (Confirmer).

    Sous S3 buckets (Compartiments S3), l'Access (Accès) de votre compartiment devient Objects can be public (Les objets peuvent être publics). Vous pouvez désormais ajouter une stratégie de compartiment pour rendre les objets du compartiment lisibles publiquement. Si l'Access (Accès) continue de s'afficher comme Bucket and objects not public (Compartiment et objets non publics), vous devrez peut-être modifier les paramètres de blocage de l'accès public pour votre compte avant d'ajouter une stratégie de compartiment.

Ajouter une stratégie de compartiment

Pour que les objets de votre compartiment soient publiquement lisibles, vous devez écrire une stratégie de compartiment qui accorde à tous l'autorisation s3:GetObject. L'exemple de stratégie de compartiment suivant autorise tous les utilisateurs à accéder aux objets dans le dossier spécifié. Avant d'ajouter une stratégie de compartiment qui accorde l'accès public en lecture à un compartiment, confirmez que vous avez désactivé le blocage de l'accès public pour le compartiment. Pour utiliser la stratégie de compartiment suivante, mettez à jour Resource pour correspondre à votre compartiment. Pour plus d'informations sur les stratégies de compartiment, consultez Utilisation de stratégies de compartiment et de stratégies utilisateur.

{ "Version":"2012-10-17", "Statement":[{ "Sid":"PublicReadGetObject", "Effect":"Allow", "Principal": "*", "Action":["s3:GetObject"], "Resource":["arn:aws:s3:::example-bucket/*" ] } ] }

Pour ajouter une stratégie de compartiment

  1. Choisissez le compartiment configuré en tant que site web statique.

  2. Choisissez Permissions.

  3. Choisissez Stratégie de compartiment.

  4. Dans Bucket policy editor (Éditeur de stratégie de compartiment), ajoutez une stratégie de compartiment et choisissez Save (Enregistrer).

    Sous S3 buckets (Compartiments S3), l'Access (Accès) de votre compartiment devient Public. Si Access (Accès) a pour valeur Other authorized users of this account (Autres utilisateurs autorisés de ce compte), vous devrez peut-être modifier les paramètres de blocage d'accès public pour votre compte.

Listes de contrôle d’accès à l’objet

Vous pouvez utiliser une stratégie de compartiment pour accorder des autorisations à vos objets. Cependant, la stratégie 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.

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 la section Gestion de l'accès grâce aux listes 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>