Comment puis-je modifier la propriété d'objets détenus publiquement (de façon anonyme) dans mon compartiment Amazon S3 ?

Date de la dernière mise à jour : 24/09/2019

Mon compartiment Amazon Simple Storage Service (Amazon S3) possède un objet avec la propriété publique (anonyme). Comment puis-je modifier la propriété de l'objet pour que mon compte AWS soit le propriétaire de l'objet ?

Brève description

Par défaut, un objet S3 appartient à l'identité qui a chargé l'objet. Autrement dit, les objets chargés par des utilisateurs publics (anonymes) sont détenus publiquement si vous autorisez un accès public en écriture à votre compartiment. Pour éviter les problèmes de sécurité, la bonne pratique consiste à bloquer l'accès public à votre compartiment.

Si un objet a déjà été chargé dans votre compartiment par un utilisateur anonyme et que vous voulez que votre compte AWS soit propriétaire de l'objet, vous devez modifier la liste de contrôle d'accès (ACL) de l'objet. Modifiez la liste ACL de l'objet pour accorder au propriétaire du compartiment (votre compte) le contrôle total de l'objet.

Résolution

Suivez ces étapes pour remplacer la propriété de l'objet par le compte AWS qui possède le compartiment :

1.    Pour ajouter une liste ACL d'objet, exécutez la commande put-object-acl à l'aide de l'interface de ligne de commande AWS (AWS CLI). Incluez l'option --acl avec la valeur bucket-owner-full-control pour ajouter une liste ACL qui accorde au propriétaire du compartiment le contrôle de l'objet. Ensuite, incluez l'option --no-sign-request pour utiliser des informations d'identification anonymes pour la demande. La commande put-object-acl complète avec les options dont vous avez besoin ressemble à ceci :  

aws s3api put-object-acl --bucket awsexamplebucket --key awsexampleobject  --acl bucket-owner-full-control   --no-sign-request

2.    Pour appliquer le changement de propriété, vous devez copier l'objet sur lui-même. Pour ce faire, vous pouvez exécuter la commande cp qui ressemble à ceci :

aws s3 cp s3://awsexamplebucket/awsexampleobject  s3://awsexamplebucket/awsexampleobject  --metadata-directive REPLACE

3.    Pour vérifier le changement de propriété, exécutez la commande get-object-acl qui ressemble à ceci :

aws s3api get-object-acl --bucket awsexamplebucket --key awsexampleobject

La commande renvoie un résultat qui affiche le propriétaire de l'objet qui ressemble à ceci :

{
    "Owner": {
        "DisplayName": "jane",
        "ID": "75050348ef85628a0977bexamplebdbc3062ce76f35cb463345ae65c2608d099"
    },
    "Grants": [
        {
            "Grantee": {
                "DisplayName": "jane",
                "ID": "75050348ef85628a0977bexamplebdbc3062ce76f35cb463345ae65c2608d099",
                "Type": "CanonicalUser"
            },
            "Permission": "FULL_CONTROL"
        }]}

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

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?