Was sind einige Anwendungsfälle für die Verwendung einer Objekt-ACL in Amazon S3?

Lesedauer: 4 Minute
0

Ich möchte den Zugriff auf meine Amazon-Simple-Storage-Service-Objekte (Amazon S3) mithilfe einer Zugriffssteuerungsliste (ACL) delegieren. Was sind einige Anwendungsfälle für die Verwendung einer Objekt- oder Bucket-ACL?

Auflösung

Mit Amazon-S3-Zugriffskontrolllisten (ACLs) können Sie den Zugriff auf S3-Buckets und Objekte verwalten. An jeden S3-Bucket und jedes Objekt ist eine ACL als Subresource angehängt. Die ACLs definieren, welche AWS-Konten oder -Gruppen Zugriff erhalten, zusammen mit der Art des Zugriffs. Wenn Sie eine Anforderung für eine Ressource einreichen, überprüft Amazon S3 die entsprechende ACL, um zu bestätigen, dass Sie über die erforderlichen Zugriffsberechtigungen verfügen.

In den meisten Anwendungsfällen, in denen Zugriff auf Objekte oder Buckets gewährt wird, sind keine ACLs mehr erforderlich. In einigen Fällen ist die Verwendung einer ACL jedoch möglicherweise sinnvoller. Im Folgenden finden Sie beispielsweise einige Anwendungsfälle, in denen Sie möglicherweise eine ACL verwenden müssen, um den Bucket- oder Objektzugriff zu verwalten:

  • Eine Objekt-ACL ist die einzige Möglichkeit, Zugriff auf Objekte zu gewähren, die nicht dem Bucket-Besitzer gehören. Wenn ein anderes AWS-Konto ein Objekt in Ihren S3-Bucket hochlädt, ist dieses Konto (der Objektschreiber) standardmäßig Eigentümer des Objekts. Darüber hinaus hat der Objektschreiber Zugriff auf das Objekt und kann anderen Benutzern mithilfe von ACLs Zugriff darauf gewähren.
  • Objekt-ACLs können verwendet werden, wenn Sie Berechtigungen auf Objektebene verwalten müssen. Wenn Sie beispielsweise den Zugriff auf einen gesamten Ordner delegieren müssen, können Sie eine Bucket-Richtlinie verwenden. Wenn die Zugriffsberechtigungen jedoch von Objekt zu Objekt variieren, ist es möglicherweise nicht sinnvoll, Berechtigungen für einzelne Objekte mithilfe einer Bucket-Richtlinie zu erteilen. Daher ist eine Objekt-ACL möglicherweise besser für die Verwaltung des Objektzugriffs geeignet.
  • Wenn Sie neue Objekte besitzen möchten, die von anderen AWS-Konten in Ihren Bucket geschrieben wurden (und Ihre ACL nicht deaktiviert ist), wenden Sie die bevorzugte Einstellung des Bucket-Besitzers an. Mit dieser Einstellung gehören neue Objekte, die mit der ACL des Bucket-Besitzers mit voller Kontrolle geschrieben werden, automatisch dem Bucket-Besitzer (und nicht dem Objektschreiber). Alle anderen ACL-Verhaltensweisen bleiben erhalten.
    Hinweis: Um eine ACL zu deaktivieren, verwenden Sie die vom Bucket-Besitzer erzwungene Einstellung für S3-Objektbesitz. Wenn ACLs deaktiviert sind, können Sie mithilfe von Bucket-Richtlinien problemlos einen Bucket mit Objekten verwalten, die von verschiedenen AWS-Konten hochgeladen wurden (kontenübergreifend). Wenn Ihr Bucket die erzwungene Einstellung für den Besitz von S3-Objekten verwendet, schlagen Anforderungen zum Festlegen oder Aktualisieren von ACLs fehl und geben den AccessControlListNotSupported-Fehlercode zurück. Anfragen zum Lesen von ACLs werden jedoch weiterhin unterstützt.
  • Bucket-ACLs können verwendet werden, um AWS-Services wie Amazon CloudFront Berechtigungen zu erteilen, um bestimmte Aktionen für Ihren Bucket durchzuführen. Wenn Sie beispielsweise eine CloudFront-Verteilung erstellen oder aktualisieren und die CloudFront-Protokollierung aktivieren, aktualisiert CloudFront die Bucket-ACL. Dieses Update gibt dem awslogsdelivery-Konto FULL_CONTROL Berechtigungen zum Schreiben von Protokollen in Ihren Bucket. Weitere Informationen finden Sie unter Erforderliche Berechtigungen für die Konfiguration der Standardprotokollierung und den Zugriff auf Ihre Protokolldateien.

ACLs auf Objekte anwenden

Beispiel 1

Wenn Sie ein Objekt in einen Bucket in einem anderen AWS-Konto hochladen, verwenden Sie die vordefinierte ACL mit Bucket-Besitzer-Vollzugriff:

aws s3api put-object --bucket destination_bucket --key dir-1/myfile --body dir-1/myfile --acl bucket-owner-full-control

Die eingemachte ACL mit vollständiger Kontrolle des Bucket-Besitzers bietet Zugriff auf das Konto des Bucket-Besitzers.

Hinweis: Amazon S3 unterstützt eine Reihe vordefinierter ACLs, die als vordefinierte ACLs bekannt sind (z. B. die in diesem Beispiel verwendete ACL für Bucket-Owner-Vollzugriff).

Beispiel 2

Der Objekt-Uploader kann auch eine ACL hinzufügen, um anderen AWS-Konten Leseberechtigungen zu erteilen:

aws s3api put-object --bucket destination_mybucket --key dir/myfile --body dir/myfile --grant-read emailaddress=user1@amazon.com,id=canonical-id-of-account

Hinweis: Sie können nur einen Berechtigungsempfänger mit E-Mail-Adressen in den folgenden AWS-Regionen angeben: Nord-Virginia, Nordkalifornien, Oregon, Singapur, Sydney, Tokio, Irland und São Paulo.

Beispiel 3

Sie können auch die ACL eines vorhandenen Objekts aktualisieren:

aws s3api put-object-acl --bucket destination_bucket --key dir/myfile --acl bucket-owner-full-control

Beispiel 4

Amazon S3 hat eine Reihe vordefinierter Gruppen. Sie können Objekt-ACLs verwenden, um Benutzern, die Teil dieser vordefinierten Gruppen sind, Berechtigungen zu erteilen.

Sie können beispielsweise jedem authentifizierten AWS-Benutzer Objektzugriff gewähren, indem Sie Zugriff auf die Gruppe Authentifizierte Benutzer gewähren:

aws s3api put-object --bucket destination_mybucket --key dir/myfile --body dir/myfile --grant-read uri=http://acs.amazonaws.com/groups/global/AuthenticatedUsers

Hinweis: Bevor Sie Zugriff auf die Gruppe Authentifizierte Benutzer gewähren, deaktivieren Sie die Einstellungen Öffentlichen Zugriff blockieren für ACLs sowohl auf Konto- als auch auf Bucket-Ebene. Andernfalls erhalten Sie einen Zugriff verweigert-Fehler. Informationen zur Behandlung von ACL-bezogenen Fehlern bei Zugriff verweigert finden Sie unter Ein Benutzer mit der Berechtigung zum Hinzufügen von Objekten zu meinem Amazon S3-Bucket erhält Fehler „Zugriff verweigert“. Warum?


Relevante Informationen

Wie behebe ich 403-Access-Denied-Fehler von Amazon S3?

Verwalten des Zugriffs mit ACLs

Wann sollte man die ACL-basierte Zugriffsrichtlinie (Bucket- und Objekt-ACLs) nutzen?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren