2017-03-02 3 views
0

Ich habe einen Amazon S3-Bucket mit einem Ordner darin. Ich möchte, dass viele IAM-Benutzer Dateien über die Management Console in diesen Ordner hochladen. Benutzer dürfen die von anderen IAM-Benutzern hochgeladenen Dateien jedoch nicht sehen/herunterladen.So verhindern Sie, dass andere Benutzer Dateien auf Amazon S3 hochgeladen sehen

Erstellen eines anderen Ordners und Schreiben einer IAM-Richtlinie für den Zugriff auf den Bucket und Voranstellen des Ordnernamens ist in Ordnung, aber wir wollen nicht, da wir etwa 100 Benutzer haben, die die Dateien hochladen werden.

Antwort

4

Bucket-Richtlinien + IAM-Richtlinien ist der einzige Weg zu gehen.

S3-Objekte haben keine Benutzerzuordnungen (wie andere lokale Dateisysteme wie NTFS oder ext3/4).

So die einzige Möglichkeit, die Dateien eines Benutzers von einem anderen zu unterscheiden, ist eine ID in den Schlüssel des Objekts oder durch (vielleicht) die Tags eines S3-Objekts.

Sie können jedoch nicht mithilfe von Bucket-Richtlinien entkommen. Sie vermeiden können, wie, indem sie intelligente Nutzung von bucket Politikvariablen viele Richtlinien zu schreiben:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Action": ["s3:ListBucket"], 
     "Effect": "Allow", 
     "Resource": ["arn:aws:s3:::mybucket"], 
     "Condition": {"StringLike": {"s3:prefix": ["${aws:username}/*"]}} 
    }, 
    { 
     "Action": [ 
     "s3:GetObject", 
     "s3:PutObject" 
     ], 
     "Effect": "Allow", 
     "Resource": ["arn:aws:s3:::mybucket/${aws:username}/*"] 
    } 
    ] 
} 

Quelle: IAM Policy Variables Overview

Durch die $(aws:username} Variable verwenden, können Sie diese eine Politik für alle Benutzer gelten haben. Lassen Sie sie ihre eigenen Dateien in einen Ordner mit einem eigenen Benutzernamen im Namen speichern.

Verwandte Themen