Consultez Contrôle de la propriété des objets et désactivation des listes ACL pour votre compartiment
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 de contrôle d’accès (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 présents dans le compartiment et gère l’accès aux données exclusivement à l’aide de politiques de gestion des accès.
La majorité des cas d’utilisation modernes d’Amazon S3 ne nécessite plus de 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 plus facilement l’accès à tous les objets de votre compartiment, quelle que soit la personne qui les a chargés dans votre compartiment.
Object Ownership (Propriété de l’objet) dispose de trois paramètres que vous pouvez utiliser pour contrôler la propriété des objets téléchargés dans votre compartiment pour désactiver ou activer les listes ACL :
Listes ACL désactivées
-
Propriétaire du compartiment appliqué (par défaut) : les listes ACL sont désactivées et le propriétaire du compartiment détient automatiquement chaque objet présent dans le compartiment et en a le contrôle total. Les listes ACL n’affectent plus les autorisations sur les données du compartiment S3. Le compartiment utilise des stratégies pour définir le contrôle des accès.
Listes ACL activées
-
Bucket owner preferred (Préféré par le propriétaire du compartiment) – Le propriétaire du compartiment possède les nouveaux objets que d’autres comptes écrivent dans le compartiment avec la liste ACL
bucket-owner-full-controlprête à l’emploi, et en a le contrôle total. -
Object writer (Rédacteur d’objets) – Le Compte AWS qui télécharge un objet est propriétaire de l’objet, a un contrôle total sur celui-ci et peut en accorder l’accès à d’autres utilisateurs via des listes ACL.
Pour la majorité des cas d’utilisation modernes dans S3, nous vous recommandons de maintenir les listes ACL désactivées en appliquant le paramètre Propriétaire du compartiment appliqué et en utilisant votre stratégie de compartiment pour partager des données avec des utilisateurs extérieurs à votre compte, selon les besoins. Cette approche simplifie la gestion des autorisations. Vous pouvez désactiver les listes de contrôle d’accès sur les compartiments nouvellement créés et déjà existants. Pour les compartiments nouvellement créés, les listes ACL sont désactivées par défaut. Dans le cas d’un compartiment existant qui contient déjà des objets, une fois que vous avez désactivé les ACL, les listes ACL d’objet et de compartiment ne font plus partie d’une évaluation d’accès et l’accès est accordé ou refusé sur la base de stratégies. Pour les compartiments existants, vous pouvez réactiver les ACL à tout moment après les avoir désactivées, et vos listes ACL de compartiment et d’objets préexistantes sont restaurées.
Avant de désactiver les listes ACL, nous vous recommandons de revoir votre stratégie de compartiment pour vous assurer qu’elle couvre toutes les façons dont vous avez l’intention d’accorder l’accès à votre compartiment hors de votre compte. Une fois que vous avez désactivé les listes ACL, votre compartiment accepte uniquement les demandes PUT qui ne spécifient pas de demande ACL ou PUT avec des listes ACL de contrôle total du propriétaire du compartiment, telles que la liste ACL bucket-owner-full-control prédéfinie ou des formes équivalentes de cette liste ACL exprimées en XML. Les applications existantes qui prennent en charge les ACL de contrôle total du propriétaire du compartiment n’ont aucun impact. Les requêtes PUT qui contiennent d’autres ACL (par exemple, des autorisations personnalisées à certains Comptes AWS) échouent et renvoient une erreur 400 avec le code d’erreur AccessControlListNotSupported.
Au contraire, un compartiment avec le paramètre Propriétaire du compartiment préféré continue d’accepter et d’honorer les listes ACL de compartiment et d’objet. Avec ce paramètre, de nouveaux objets écrits avec la liste ACL bucket-owner-full-control prédéfinie sont automatiquement détenus par le propriétaire du compartiment plutôt que par l’auteur d’objets. Tous les autres comportements ACL restent en place. Pour exiger que toutes les opérations PUT Amazon S3 incluent la liste ACL bucket-owner-full-control prédéfinie, vous pouvez ajouter une stratégie de compartiment qui n’autorise que les chargements d’objets à l’aide de cette ACL.
Pour voir quels paramètres de propriété d’objets sont appliqués à vos compartiments, vous pouvez utiliser les métriques Amazon S3 Storage Lens. S3 Storage Lens est une fonctionnalité d’analytique du stockage dans le cloud que vous pouvez utiliser pour obtenir une visibilité à l’échelle de l’organisation sur l’utilisation et l’activité du stockage d’objets. Pour plus d’informations, consultez Using S3 Storage Lens to find Object Ownership settings (Utilisation de S3 Storage Lens pour trouver les paramètres de propriété des objets).
Note
Pour plus d’informations sur l’utilisation de la classe de stockage Amazon S3 Express One Zone avec des compartiments de répertoires, consultez S3 Express One Zone et Utilisation des compartiments de répertoires.
Paramètres de la propriété de l’objet
Ce tableau montre l’impact de chaque paramètre de la propriété d’objet sur les listes ACL, les objets, la propriété des objets et les téléchargements d’objets.
| Paramètre | S’applique à | Effet sur la propriété de l’objet | Effet sur les listes ACL | Chargements acceptés |
|---|---|---|---|---|
| Propriétaire du compartiment appliqué (par défaut) | Tous les objets existants et nouveaux | Le propriétaire du compartiment est propriétaire de chaque objet. |
Les listes ACL sont désactivées et n’affectent plus les autorisations d’accès à votre compartiment. Les demandes de définition ou de mise à jour des listes ACL échouent. Cependant, les demandes de lecture de listes ACL sont prises en charge. Le propriétaire du compartiment possède la propriété et le contrôle complets. Le rédacteur d’objets n’a plus la propriété et le contrôle complets. |
Chargements avec des listes ACL de contrôle total du propriétaire du compartiment ou des téléchargements qui ne spécifient pas de liste ACL |
| Propriétaire du compartiment préféré | Nouveaux objets | Si le chargement d’un objet inclut la liste ACL bucket-owner-full-control prédéfinie, le propriétaire du compartiment est propriétaire de l’objet. Les objets téléchargés avec d’autres listes ACL appartiennent au compte d’écriture. |
Les listes ACL peuvent être mises à jour et peuvent accorder des autorisations. Si le chargement d’un objet inclut la liste ACL |
Tous les chargements |
| Créateur d’objets | Nouveaux objets | Le rédacteur d’objet possède l’objet. |
Les listes ACL peuvent être mises à jour et peuvent accorder des autorisations. Le rédacteur d’objet dispose d’un accès complet. |
Tous les chargements |
Les changements introduits par la désactivation des listes ACL
Lorsque vous appliquez le paramètre Propriétaire du compartiment appliqué pour Propriété d’objets, les listes ACL sont désactivées et vous possédez automatiquement tous les objets du compartiment et en prenez le contrôle total sans effectuer d’actions supplémentaires. Propriétaire du compartiment appliqué est le paramètre par défaut pour tous les compartiments nouvellement créés. Après l’application du paramètre Propriétaire du compartiment appliqué, trois changements sont notables :
-
Toutes les listes ACL de compartiment et les listes ACL d’objets sont désactivées, ce qui vous donne un accès complet, en tant que propriétaire du compartiment. Lorsque vous exécutez une demande ACL en lecture sur votre compartiment ou votre objet, vous verrez que l’accès complet n’est accordé qu’au propriétaire du compartiment.
-
Avec ce paramètre, en tant que propriétaire du compartiment, vous possédez automatiquement tous les objets de votre compartiment.
-
Les listes ACL n’affectent plus les autorisations d’accès à votre compartiment. Par conséquent, le contrôle d’accès à vos données est basé sur des politiques, telles que des politiques basées sur l’identité AWS Identity and Access Management (IAM), des stratégies de compartiment Amazon S3, des politiques de point de terminaison de VPC et des politiques de contrôle des services (SCP) ou des politiques de contrôle des ressources (RCP).
Si vous utilisez la gestion des versions S3, le propriétaire du compartiment possède et contrôle total sur toutes les versions d’objets de votre compartiment. L’application du paramètre Propriétaire du compartiment appliqué n’ajoute pas de nouvelle version d’un objet.
Les nouveaux objets peuvent être chargés dans votre compartiment uniquement s’ils utilisent des listes ACL de contrôle total du propriétaire du compartiment ou ne spécifient pas de liste ACL. Les téléchargements d’objets échouent s’ils spécifient une autre liste ACL. Pour plus d’informations, consultez Résolution des problèmes.
Étant donné que l’exemple suivant de l’opération PutObject utilise à l’aide de l’AWS Command Line Interface (AWS CLI) inclut la liste ACL bucket-owner-full-controlprédéfinie, l’objet peut être chargé dans un compartiment avec des listes ACL désactivées.
aws s3api put-object --bucketamzn-s3-demo-bucket--keykey-name--bodypath-to-file--acl bucket-owner-full-control
Étant donné que l’opération PutObject suivante ne spécifie pas une liste ACL, elle réussit également pour un compartiment avec des listes ACL désactivées.
aws s3api put-object --bucketamzn-s3-demo-bucket--keykey-name--bodypath-to-file
Note
Si d’autres Comptes AWS doivent accéder aux objets après le chargement, vous devez accorder des autorisations supplémentaires à ces comptes via des stratégies de compartiment. Pour plus d’informations, consultez Procédures détaillées qui utilisent des politiques pour gérer l’accès à vos ressources Amazon S3.
Réactivation des listes ACL
Vous pouvez réactiver les listes ACL en passant du paramètre Propriétaire du compartiment appliqué à un autre paramètre de propriété d’objets à tout moment. Si vous avez utilisé des listes ACL d’objet pour la gestion des autorisations avant d’appliquer le paramètre Propriétaire du compartiment appliqué et que vous n’avez pas migré ces autorisations ACL d’objet vers votre stratégie de compartiment, après avoir réactivé les listes ACL, ces autorisations sont restaurées. De plus, les objets écrits dans le compartiment pendant que le paramètre Propriétaire du compartiment appliqué était appliqué appartiennent toujours au propriétaire du compartiment.
Par exemple, si du paramètre Propriétaire du compartiment appliqué vous revenez au paramètre Créateur d’objets, en tant que propriétaire du compartiment, vous ne possédez plus les objets qui appartenaient auparavant à d’autres Comptes AWS, et n’en avez plus le contrôle total. Au lieu de cela, les comptes de chargement sont à nouveau propriétaires de ces objets. Les objets appartenant à d’autres comptes utilisent des listes ACL pour les autorisations. Vous ne pouvez donc pas utiliser de stratégies pour accorder des autorisations à ces objets. Toutefois, en tant que propriétaire du compartiment, vous possédez toujours les objets qui ont été écrits dans le compartiment quand le paramètre Propriétaire du compartiment appliqué était appliqué. Ces objets ne sont pas détenus par le rédacteur d’objet, même si vous réactivez les listes ACL.
Pour obtenir des instructions sur l’activation et la gestion des listes de contrôle d’accès à l’aide de la AWS Management Console, de la AWS Command Line Interface (CLI), de l’API REST ou des kits AWS SDK, consultez Configuration des listes ACL.
Conditions préalables à la désactivation des listes ACL
Avant de désactiver les listes ACL pour un compartiment existant, remplissez les prérequis suivants.
Autorisations de propriété d’objet
Pour appliquer, mettre à jour ou supprimer un paramètre de propriété d’objet pour un compartiment, vous devez utiliser l’autorisation s3:PutBucketOwnershipControls. Pour renvoyer le paramètre propriété de l’objet d’un compartiment, vous devez utiliser l’autorisation s3:GetBucketOwnershipControls. Pour plus d’informations, consultez Définition de la propriété d’objet lors de la création d’un compartiment et Affichage du paramètre de propriété d’objet pour un compartiment S3.
Désactivation des listes ACL pour tous les nouveaux compartiments
Par défaut, tous les nouveaux compartiments sont créés en appliquant le paramètre Propriétaire du compartiment appliqué, et les listes ACL sont désactivées. Nous vous recommandons de maintenir les listes ACL désactivées. En règle générale, nous recommandons d’utiliser des politiques basées sur les ressources S3 (stratégies de compartiment et politiques de point d’accès) ou des politiques IAM pour le contrôle d’accès au lieu des ACL. Les politiques constituent une option de contrôle d’accès simplifiée et plus flexible. Les stratégies de compartiment et de point d’accès vous permettent de définir des règles s’appliquant de manière générale à toutes les demandes adressées à vos ressources Amazon S3.
Réplication et propriété d’objet
Lorsque vous utilisez la réplication S3 et que les compartiments source et de destination appartiennent à des Comptes AWS différents, vous pouvez désactiver les listes ACL (avec le paramètre Propriétaire du compartiment appliqué pour Propriété d’objets) pour transférer la propriété du réplica au Compte AWS qui possède le compartiment de destination. Ce paramètre imite le comportement de remplacement du propriétaire existant sans avoir besoin d’une autorisation s3:ObjectOwnerOverrideToBucketOwner. Tous les objets répliqués dans le compartiment de destination avec le paramètre Propriétaire du compartiment appliqué appartiennent au propriétaire du compartiment de destination. Pour plus d’informations sur l’option de remplacement du propriétaire pour les configurations de réplication, consultez Modification du propriétaire d’un réplica.
Définition de la propriété de l’objet
Vous pouvez appliquer un paramètre de propriété d’objet à l’aide de la console Amazon S3, de l’AWS CLI, des kits AWS SDK, de l’API REST Amazon S3 ou d’AWS CloudFormation. L’API REST suivante et les commandes AWS CLI prennent en charge la propriété d’objet :
| API REST | AWS CLI | Description |
|---|---|---|
| PutBucketOwnershipControls | put-bucket-ownership-controls |
Crée ou modifie le paramètre de propriété d’objet pour un compartiment S3 existant. |
| CreateBucket | create-bucket |
Crée un compartiment à l’aide de l’en-tête de demande x-amz-object-ownership pour spécifier le paramètre de Propriété d’objet. |
| GetBucketOwnershipControls | get-bucket-ownership-controls |
Extrait le paramètre de propriété d’objet pour un compartiment Amazon S3. |
| DeleteBucketOwnershipControls | delete-bucket-ownership-controls |
Supprime le paramètre de propriété d’objet pour un compartiment Amazon S3. |
Pour plus d’informations sur l’application et l’utilisation des paramètres de propriété d’objet, consultez les rubriques suivantes.