Wie kann ich Probleme beheben, wenn ich mithilfe einer Bucket-Richtlinie oder einer Objekt-ACL öffentlichen Lesezugriff auf ein Amazon S3-Objekt gewähre?

Lesedauer: 5 Minute
0

Ich versuche, mithilfe einer Bucket-Richtlinie oder einer Zugriffssteuerungsliste (ACL) öffentlichen Lesezugriff auf die Objekte in meinem Amazon Simple Storage Service (Amazon S3)-Bucket zu gewähren. Ich erhalte jedoch die Fehlermeldung „Insufficient Permissions“ (Unzureichende Berechtigungen) oder „Access Denied“ (Zugriff verweigert).

Kurzbeschreibung

Angenommen, Sie verwenden die folgende Bucket-Richtlinie, um öffentlichen Lesezugriff auf die Objekte in Ihrem Bucket zu gewähren:

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

Möglicherweise werden die Fehler Insufficient Permissions (Unzureichende Berechtigungen) oder Access Denied (Zugriff verweigert) aus den folgenden Gründen angezeigt:

  • Sie verfügen nicht über die s3:putBucketPolicy-Berechtigung, um eine Bucket-Richtlinie für Ihren Amazon S3-Bucket zu aktualisieren oder zu erstellen.
  • Sie haben nicht die s3:putObjectACL-Berechtigung, um die ACL des Objekts zu ändern.
  • Die S3-Bucket-Richtlinie oder die ACL des Objekts stehen im Konflikt mit Ihren S3-Einstellungen für Block Public Access.

Lösung

Erteilen Sie die erforderlichen Berechtigungen

Stellen Sie sicher, dass der von Ihnen verwendete Benutzer oder die Rolle von AWS Identity and Access Management (IAM) über die folgenden Berechtigungen verfügt:

  • s3:putBucketPolicy um die Bucket-Richtlinie für Ihren S3-Bucket zu erstellen oder zu aktualisieren
  • s3:putObjectACL, um die ACL eines Objekts zu aktualisieren, um öffentlichen Lesezugriff zu gewähren

Aktualisieren Sie die Einstellungen zur Sperrung des öffentlichen Zugriffs

Standardmäßig sind alle Amazon S3-Ressourcen, wie Buckets, Objekte und zugehörige Unterressourcen, privat und erlauben keinen öffentlichen Zugriff. Die Block Public Access-Einstellungen für Access Points, Buckets und Konten helfen Ihnen dabei, den öffentlichen Zugriff auf Amazon S3-Ressourcen zu verwalten. Diese Einstellungen haben Vorrang vor den S3-Bucket-Richtlinien und Objekt-ACLs, sodass Sie den öffentlichen Zugriff auf diese Ressourcen einschränken können. Wenn die von Ihnen konfigurierte Bucket-Richtlinie oder Objekt-ACL mit der Einstellung „Öffentlichen Zugriff blockieren“ kollidiert, können Sie keine Bucket-Richtlinie erstellen, um öffentlichen Lesezugriff zu gewähren. S3 verweigert auch die Berechtigung, die Bucket-Richtlinie oder Objekt-ACLs zu ändern, um öffentlichen Lesezugriff zu gewähren.

Amazon S3 Block Public Access bietet vier Einstellungen, um den öffentlichen Zugriff auf Buckets und Objekte zu blockieren. Diese Einstellungen sind unabhängig und können in jeder Kombination verwendet werden.

  • blockPublicACLs – Sperrt öffentlichen Zugriff, der mit neuen ACLs gewährt wurde: Amazon S3 blockiert öffentliche Zugriffsberechtigungen, die Sie auf neu hinzugefügte Buckets oder Objekte anwenden. S3 bestreitet auch die Erstellung neuer öffentlich zugänglicher ACLs für bestehende Buckets und Objekte. Diese Einstellung ändert keine bestehenden Berechtigungen, die den öffentlichen Zugriff auf S3-Ressourcen ermöglichen, die ACLs verwenden.
  • IgnoRepublicACLS – Sperrt öffentlichen Zugriff, der mit einer beliebigen ACL gewährt wurde: Amazon S3 ignoriert alle ACLs, die öffentlichen Zugriff auf Buckets und Objekte gewähren.
  • BlockPublicPolicy – Sperrt öffentlichen Zugriff, der mithilfe neuer Richtlinien für öffentliche Buckets oder Access Points gewährt wurde: Amazon S3 blockiert die Verwendung neuer Buckets und Access Point-Richtlinien, die öffentlichen Zugriff auf Buckets und Objekte gewähren. Diese Einstellung ändert keine bestehenden Richtlinien, die den öffentlichen Zugriff auf S3-Ressourcen ermöglichen.
  • RestrictPublicBuckets – Sperrt öffentlichen und kontoübergreifenden Zugriff, der mithilfe von Richtlinien für öffentliche Buckets oder Access Points gewährt wurde: Amazon S3 ignoriert den öffentlichen und kontoübergreifenden Zugriff für Buckets oder Access Points mit Richtlinien, die öffentlichen Zugriff auf Buckets und Objekte gewähren.

Weitere Informationen finden Sie unter Amazon S3 Block Public Access – Eine weitere Schutzebene für Ihre Konten und Buckets.

Achten Sie darauf, die Einstellungen für S3 Block Public Access entsprechend Ihrem Anwendungsfall zu aktualisieren.

Hinweis:

  • Wenn Sie mithilfe von ACLs öffentlichen Lesezugriff auf Objekte gewähren, deaktivieren Sie die folgenden Einstellungen zum Blockieren des öffentlichen Zugriffs:
  • Wenn Sie mithilfe einer S3-Bucket-Richtlinie öffentlichen Lesezugriff auf Objekte gewähren, deaktivieren Sie die folgenden Einstellungen zum Blockieren des öffentlichen Zugriffs:
  • Sie können Bucket-ACLs oder Objekt-ACLs nicht verwenden, um öffentlichen Lesezugriff für Buckets zu gewähren, für die S3 Object Ownership auf Bucket Owner Enforced (Bucket-Eigentümer erzwungen) gesetzt ist. In diesem Fall müssen Sie Richtlinien verwenden, um Zugriff auf Ihren Bucket und die Objekte im Bucket zu gewähren. Anfragen zum Festlegen oder Aktualisieren von ACLs schlagen fehl, und Sie erhalten die Fehlermeldung AccessControlListNotSupported. Anfragen zum Lesen von ACLs werden weiterhin unterstützt.

Wenn Sie die Einstellungen „Block Public Access“ (Öffentlichen Zugriff blockieren) für alle S3-Buckets in Ihrem Konto aktiviert haben, wird die Meldung Bucket and objects not public angezeigt. Weitere Informationen finden Sie unter Konfiguration der Einstellungen für den blockierten öffentlichen Zugriff für Ihr Konto.

Wichtig: Wenn Sie öffentlichen Lesezugriff auf die Objekte gewähren, kann jeder im Internet auf diese Objekte zugreifen. Wenn Sie das nicht möchten, stellen Sie sicher, dass Ihr S3-Bucket nicht öffentlich zugänglich ist. Weitere Informationen finden Sie unter Bewährte Methoden für die Amazon S3-Sicherheit.

Ähnliche Informationen

Wie kann ich öffentlichen Lesezugriff auf einige Objekte in meinem Amazon S3-Bucket gewähren?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr