Bewährte Methoden für die Zugriffssteuerung - Amazon Simple Storage Service

Bewährte Methoden für die Zugriffssteuerung

Amazon S3 enthält eine Vielzahl von Sicherheitsfunktionen und -tools. Die folgenden Szenarien dienen als Leitfaden dafür, welche Tools und Einstellungen Sie bei der Ausführung bestimmter Aufgaben oder in bestimmten Umgebungen verwenden sollten. Die ordnungsgemäße Anwendung dieser Tools kann dazu beitragen, die Integrität Ihrer Daten zu wahren und sicherzustellen, dass die vorgesehenen Benutzer auf die Ressourcen zugreifen können.

Erstellen eines neuen Buckets

Wenn Sie einen neuen Bucket erstellen, sollten Sie die folgenden Tools und Einstellungen anwenden, um sicherzustellen, dass Ihre Amazon S3-Ressourcen geschützt sind. 

S3 Object Ownership zur Vereinfachung der Zugriffskontrolle

S3 Object Ownership ist eine Einstellung auf Amazon-S3-Bucket-Ebene, mit der Sie Zugriffskontrolllisten (ACLs) deaktivieren und das Eigentum an jedem Objekt in Ihrem Bucket übernehmen können, wodurch die Zugriffsverwaltung für in Amazon S3 gespeicherte Daten vereinfacht wird. Wenn ein anderes AWS-Konto ein Objekt in Ihren S3-Bucket hochlädt, besitzt dieses Konto (der Objektschreiber) standardmäßig das Objekt, hat Zugriff darauf und kann anderen Benutzern über ACLs Zugriff darauf gewähren. Sie können Object Ownership verwenden, um dieses Standardverhalten so zu ändern, dass ACLs deaktiviert sind und Sie als Bucket-Eigentümer automatisch jedes Objekt in Ihrem Bucket besitzen. Daher basiert die Zugriffskontrolle für Ihre Daten auf Richtlinien wie IAM-Richtlinien, S3-Bucket-Richtlinien, Endpunktrichtlinien für Virtual Private Cloud (VPC) und AWS Organizations Service-Kontrollrichtlinien (SCPs).

Object Ownership verfügt über drei Einstellungen, mit denen Sie die Eigentümerschaft von Objekten, die in Ihren Bucket hochgeladen werden, steuern und ACLs deaktivieren oder aktivieren können:

Deaktivierte ACLs

  • Bucket-Eigentümer erzwungen (empfohlen) – ACLs sind deaktiviert, und der Bucket-Eigentümer besitzt automatisch und hat die volle Kontrolle über jedes Objekt im Bucket. ACLs haben keine Auswirkungen mehr auf Berechtigungen für Daten im S3-Bucket. Der Bucket verwendet ausschließlich Richtlinien, um die Zugriffssteuerung zu definieren.

Aktivierte ACLs

  • Bucket-Eigentümer bevorzugt – Der Bucket-Eigentümer besitzt und hat die volle Kontrolle über neue Objekte, die andere Konten mit der bucket-owner-full-control-vordefinierten ACL.

  • Objekt-Writer (Standard) – Das AWS-Konto, das ein Objekt hochlädt, besitzt das Objekt, hat die volle Kontrolle darüber und kann anderen Benutzern über ACLs Zugriff darauf gewähren.

Weitere Informationen finden Sie unter Weitere Informationen finden Sie unter Steuern des Eigentums an Objekten und Deaktivieren von ACLs für Ihren Bucket..

Block Public Access

S3 Block Public Access stellt vier Einstellungen bereit, die Ihnen helfen, eine versehentliche Offenlegung Ihrer S3-Ressourcen zu vermeiden. Sie können diese Einstellungen in beliebiger Kombination auf einzelne Zugriffspunkte, Buckets oder auf ganze AWS-Konten anwenden. Wenn Sie eine Einstellung auf ein Konto anwenden, gilt sie für alle Buckets und Zugriffspunkte, die dem Konto gehören. Standardmäßig wird auf neue Buckets, die in der Amazon S3-Konsole erstellt wurden, die Einstellung Block all public access (Jeden öffentlichen Zugriff blockieren) angewendet. 

Weitere Informationen finden Sie unter Die Bedeutung von „öffentlich“.

Wenn die S3 Block Public Access-Einstellungen zu restriktiv sind, können Sie AWS Identity and Access Management (IAM) Identitäten verwenden, um bestimmten Benutzern Zugriff zu gewähren, statt alle Block-Public-Access-Einstellungen zu deaktivieren. Durch die Verwendung von Block Public Access mit IAM-Identitäten wird sichergestellt, dass eine von einer Block Public Access-Einstellung blockierte Operation zurückgewiesen wird, es sei denn, dem anfordernden Benutzer wurde eine spezifische Berechtigung erteilt.

Weitere Informationen finden Sie unter Block Public Access-Einstellungen.

Erteilung von Zugriff mit IAM-Identitäten

Verwenden Sie beim Einrichten von Konten für neue Teammitglieder, die S3-Zugriff benötigen, IAM-Benutzer und -Rollen, um nur die mindestens erforderlichen Berechtigungen zu erteilen. Sie können auch eine Form der IAM-Multi-Factor Authentication (MFA) implementieren, um eine robuste Identitätsgrundlage zu unterstützen. Mithilfe von IAM-Identitäten können Sie Benutzern spezifische Berechtigungen erteilen und angeben, auf welche Ressourcen sie zugreifen und welche Aktionen sie ausführen können. IAM-Identitäten stellen fortschrittliche Funktionen bereit, einschließlich der Möglichkeit, Benutzer zur Eingabe von Anmeldeinformationen zu verpflichten, bevor sie auf freigegebene Ressourcen zugreifen, und Berechtigungshierarchien auf verschiedene Objekte in einem einzelnen Bucket anzuwenden.

Weitere Informationen finden Sie unter Beispiel 1: Bucket-Eigentümer erteilt seinen Benutzern Bucket-Berechtigungen .

Bucket-Richtlinien

Mit Bucket-Richtlinien können Sie den Bucket-Zugriff personalisieren, um sicherzustellen, dass nur die Benutzer, die Sie genehmigt haben, auf Ressourcen zugreifen und Aktionen in ihnen ausführen können. Zusätzlich zu den Bucket-Richtlinien sollten Sie die Block Public Access-Einstellungen auf Bucket-Ebene verwenden, um den öffentlichen Zugriff auf Ihre Daten weiter einzuschränken.

Weitere Informationen finden Sie unter Verwenden von Bucket-Richtlinien.

Vermeiden Sie beim Erstellen von Richtlinien die Verwendung von Platzhalterzeichen im Principal-Element, da dies allen Benutzer den Zugriff auf Ihre Amazon S3-Ressourcen ermöglicht. Es ist besser, die Benutzer oder Gruppen explizit aufzulisten, die auf den Bucket zugreifen dürfen. Anstatt einen Platzhalter für ihre Aktionen einzufügen, gewähren Sie ihnen spezifische Berechtigungen, wenn zutreffend.

Zur Unterstützung der Praxis der geringsten Berechtigungen sollten Deny-Anweisungen im Effect-Element so umfassend wie möglich und Allow-Anweisungen so eng wie möglich verfasst werden. Deny-Effekte in Verbindung mit der s3:*-Aktion sind eine weitere gute Möglichkeit, bewährte Methoden für die Anmeldung der Benutzer zu implementieren, die in Richtlinienbedingungsanweisungen enthalten sind.

Weitere Informationen zur Angabe von Bedingungen für das Inkrafttreten einer Richtlinie finden Sie unter Beispiele für Amazon-S3-Bedingungsschlüssel.

Buckets in einer VPC-Umgebung

Wenn Sie Benutzer in einer Unternehmensumgebung hinzufügen, können Sie einen Virtual Private Cloud (VPC)-Endpunkt verwenden, um Benutzern in Ihrem virtuellen Netzwerk den Zugriff auf Ihre Amazon S3-Ressourcen zu ermöglichen. VPC-Endpunkte ermöglichen Entwicklern die Bereitstellung spezifischer Zugriffe und Berechtigungen für Benutzergruppen basierend auf dem Netzwerk, mit dem die jeweiligen Benutzer verbunden sind. Anstatt jeden einzelnen Benutzer einer IAM-Rolle oder -Gruppe hinzuzufügen, können Sie VPC-Endpunkte verwenden, um den Bucket-Zugriff abzulehnen, wenn die Anforderung nicht vom angegebenen Endpunkt stammt.

Weitere Informationen finden Sie unter Steuern des Zugriffs von VPC-Endpunkten mit Bucket-Richtlinien.

Speichern und Freigeben von Daten

Verwenden Sie die folgenden Tools und bewährten Methoden, um Ihre Amazon S3-Daten zu speichern und freizugeben.

Versioning und Objektsperre für Datenintegrität

Wenn Sie die Amazon S3-Konsole zum Verwalten von Buckets und Objekten verwenden, sollten Sie S3 Versioning und S3-Objektsperre implementieren. Diese Funktionen verhindern versehentliche Änderungen kritischer Daten und ermöglichen Ihnen das Rollback unbeabsichtigter Aktionen. Diese Funktion ist besonders nützlich, wenn mehrere Benutzer mit vollständigen Schreib- und Ausführungs-Berechtigungen auf die Amazon S3-Konsole zugreifen.

Weitere Informationen über S3 Versioning finden Sie unter Verwenden der Versioning in S3-Buckets. Weitere Informationen über die Objektsperre finden Sie unter Verwenden der S3-Objektsperre.

Verwaltung des Objektlebenszyklus hinsichtlich Kosteneffizienz

Um Objekte so zu verwalten, dass sie während des gesamten Lebenszyklus kostengünstig gespeichert werden, können Sie Lebenszyklusrichtlinien mit dem Objekt-Versioning verbinden. Lebenszyklusrichtlinien definieren Aktionen, die S3 während des Lebenszyklus eines Objekts ausführen soll. Sie können beispielsweise eine Lebenszyklusrichtlinie erstellen, die Objekte nach einem bestimmten Zeitraum in eine andere Speicherklasse überführt, archiviert oder löscht. Sie können eine Lebenszyklusrichtlinie für alle Objekte oder eine Teilmenge von Objekten im Bucket definieren, indem Sie ein freigegebenes Präfix oder Tag verwenden.

Weitere Informationen finden Sie unter Verwalten Ihres Speicher-Lebenszyklus.

Regionsübergreifende Replikation für mehrere Standorte

Wenn Sie Buckets erstellen, auf die von verschiedenen Standorten aus zugegriffen wird, sollten Sie die Implementierung einer regionsübergreifenden S3-Replikation in Betracht ziehen. Die regionsübergreifende Replikation trägt dazu bei, dass alle Benutzer Zugriff auf die Ressourcen erhalten, die sie benötigen, und erhöht die betriebliche Effizienz. Die regionsübergreifende Replikation verbessert die Verfügbarkeit durch das Kopieren von Objekten über S3-Buckets über verschiedene AWS-Regionen hinweg. Die Verwendung dieses Tools erhöht jedoch die Speicherkosten.

Weitere Informationen finden Sie unter Replizieren von Objekten.

Berechtigungen für ein sicheres statisches Website-Hosting

Wenn Sie einen Bucket konfigurieren, der als eine öffentlich zugängliche statische Website verwendet werden soll, müssen Sie alle Block-Public-Access-Einstellungen deaktivieren. Es ist wichtig, nur s3:GetObject-Aktionen und nicht ListObject- oder PutObject-Berechtigungen bereitzustellen, wenn Sie die Bucket-Richtlinie für Ihre statische Website schreiben. Dies stellt sicher, dass Benutzer nicht alle Objekte im Bucket anzeigen oder eigene Inhalte hinzufügen können.

Weitere Informationen finden Sie unter Festlegen von Berechtigungen für den Website-Zugriff.

Amazon CloudFront bietet die Funktionen, die zum Einrichten einer sicheren statischen Website erforderlich sind. Statische Amazon S3-Websites unterstützen nur HTTP-Endpunkte. CloudFront nutzt den dauerhaften Speicher von Amazon S3 und bietet gleichzeitig zusätzliche Sicherheitsheader wie HTTPS. HTTPS erhöht die Sicherheit, indem eine normale HTTP-Anforderung verschlüsselt und vor gängigen Cyberangriffen geschützt wird.

Weitere Informationen finden Sie unter Erste Schritte mit einer sicheren statischen Website im Amazon CloudFront-Entwicklerhandbuch.

Freigabe von Ressourcen

Es gibt verschiedene Möglichkeiten, wie Sie Ressourcen für eine bestimmte Benutzergruppe freigeben können. Sie können die folgenden Tools verwenden, um eine Gruppe von Dokumenten oder anderen Ressourcen für eine einzelne Gruppe von Benutzern, eine Abteilung oder einen Standort freizugeben. Obwohl alle zum Erreichen des gleichen Ziels verwendet werden können, sind einige Tools möglicherweise besser als andere für die vorhandenen Einstellungen geeignet.

S3 Object Ownership

S3 Object Ownership ist eine Einstellung auf Amazon-S3-Bucket-Ebene, mit der Sie ACLs deaktivieren und die Eigentümerschaft an jedem Objekt in Ihrem Bucket übernehmen können, wodurch die Zugriffsverwaltung für in Amazon S3 gespeicherte Daten vereinfacht wird. Wenn ein anderes AWS-Konto ein Objekt in Ihren S3-Bucket hochlädt, besitzt dieses Konto (der Objektschreiber) standardmäßig das Objekt, hat Zugriff darauf und kann anderen Benutzern über ACLs Zugriff darauf gewähren. Sie können Object Ownership verwenden, um dieses Standardverhalten so zu ändern, dass ACLs deaktiviert sind und Sie als Bucket-Eigentümer automatisch jedes Objekt in Ihrem Bucket besitzen. Infolgedessen basiert die Zugriffskontrolle für Ihre Daten auf Richtlinien. Weitere Informationen finden Sie unter Weitere Informationen finden Sie unter Steuern des Eigentums an Objekten und Deaktivieren von ACLs für Ihren Bucket..

Benutzerrichtlinien

Mittels IAM-Gruppen und Benutzerrichtlinien können Sie Ressourcen für eine begrenzte Gruppe von Personen freigeben. Wenn Sie neue IAM-Benutzer erstellen, werden Sie aufgefordert, sie zu erstellen und einer Gruppe hinzuzufügen. Sie können Benutzer jedoch jederzeit erstellen und Gruppen hinzufügen. Wenn die Personen, für die Sie diese Ressourcen freigeben möchten, bereits in IAM eingerichtet sind, können Sie sie einer gemeinsamen Gruppe hinzufügen und den Bucket für ihre Gruppe innerhalb der Benutzerrichtlinie freigeben. Sie können IAM-Benutzerrichtlinien auch verwenden, um einzelne Objekte innerhalb eines Buckets freizugeben.

Weitere Informationen finden Sie unter Einem IAM-Benutzer den Zugriff auf einen Ihrer Buckets erlauben.

Zugriffskontrolllisten

In der Regel empfehlen wir, dass Sie S3-Bucket-Richtlinien oder IAM-Richtlinien für die Zugriffskontrolle verwenden. Amazon-S3-ACLs sind der ursprüngliche Zugriffskontrollmechanismus in Amazon S3, der älter als IAM ist. Wenn Sie bereits S3-ACLs verwenden und diese für ausreichend halten, müssen Sie keine Änderungen vornehmen. Bestimmte Zugriffssteuerungsszenarien erfordern jedoch die Verwendung von ACLs. Wenn beispielsweise ein Bucket-Eigentümer Berechtigungen für Objekte erteilen möchte, aber nicht alle Objekte im Besitz des Bucket-Eigentümers sind, muss der Objekteigentümer dem Bucket-Eigentümer zunächst eine Berechtigung erteilen. Dies erfolgt mittels einer Objekt-ACL.

Die meisten modernen Anwendungsfälle in Amazon S3 erfordern keine ACLs mehr. Wir empfehlen Ihnen, ACLs zu deaktivieren, außer unter ungewöhnlichen Umständen, in denen Sie den Zugriff für jedes Objekt einzeln steuern müssen. Mit Object Ownership können Sie ACLs deaktivieren und sich auf Richtlinien für die Zugriffssteuerung verlassen. Wenn Sie ACLs deaktivieren, können Sie einfach einen Bucket mit Objekten verwalten, die von verschiedenen AWS-Konten hochgeladen wurden. Sie als Bucket-Eigentümer besitzen alle Objekte im Bucket und können den Zugriff darauf mithilfe von Richtlinien verwalten.

Wichtig

Wenn Ihr Bucket die erzwungene Einstellung für den Bucket-Eigentümer für S3 Object Ownership verwendet, müssen Sie Richtlinien verwenden, um Zugriff auf Ihren Bucket und die darin enthaltenen Objekte zu gewähren. Anfragen zum Festlegen von ACLs oder Update-ACLs schlagen fehl und geben den AccessControlListNotSupported-Fehlercode zurück. Anfragen zum Lesen von ACLs werden weiterhin unterstützt.

Weitere Informationen zur Verwendung von ACLs finden Sie unter Beispiel 3: Bucket-Eigentümer, der Berechtigungen für Objekte erteilt, die ihm nicht gehören.

Präfixe

Wenn bestimmte Ressourcen aus einem Bucket freigeben möchten, können Sie mithilfe von Präfixen Berechtigungen auf Ordnerebene replizieren. Die Amazon S3-Konsole unterstützt das Ordnerkonzept zur Gruppierung von Objekten anhand eines gemeinsamen Namenspräfix für Objekte. Sie können dann einen Präfix innerhalb den Bedingungen einer IAM-Benutzerrichtlinie angeben, um die explizite Berechtigung für den Zugriff auf die dem Präfix zugeordneten Ressourcen zu gewähren.  

Weitere Informationen finden Sie unter Organisieren von Objekten in der Amazon-S3-Konsole mithilfe von Ordnern.

Markierung

Wenn Sie für die Speicherkategorisierung Objektmarkierung verwenden, können Sie Objekte, die mit einem bestimmten Wert markiert wurden, für bestimmte Benutzer freigeben. Mithilfe der Ressourcenmarkierung können Sie den Zugriff auf Objekte basierend auf den Markierungen steuern, die mit der Ressource verknüpft sind, auf die ein Benutzer zugreifen möchte. Hierzu verwenden Sie die Bedingung ResourceTag/key-name innerhalb einer IAM-Benutzerrichtlinie, um den Zugriff auf die markierten Ressourcen zu ermöglichen.

Weitere Informationen finden Sie unter Steuern des Zugriffs auf AWS-Ressourcen mit Ressourcen-Tags im IAM-Benutzerhandbuch.

Schutz von Daten

Mit den folgenden Tools können Sie Daten während der Übertragung und im Ruhezustand schützen. Beides ist für die Wahrung der Integrität und Zugänglichkeit Ihrer Daten von kritischer Bedeutung.

Objekt-Verschlüsselung

Amazon S3 bietet verschiedene Optionen für die Objektverschlüsselung, um Daten während der Übertragung und im Ruhezustand zu schützen. Bei der serverseitigen Verschlüsselung wird das Objekt verschlüsselt, bevor es auf Datenträgern im Rechenzentrum gespeichert wird. Wenn die Objekte heruntergeladen werden, werden sie wieder entschlüsselt. Wenn Sie Ihre Anforderung authentifizieren und Zugriffsberechtigungen besitzen, gibt es in Bezug auf die Art und Weise, wie Sie auf verschlüsselte oder nicht verschlüsselte Objekte zugreifen, keinen Unterschied. Beim Einrichten der serverseitigen Verschlüsselung können Sie aus drei sich gegenseitig ausschließende Optionen wählen:

  • Serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3)

  • Serverseitige Verschlüsselung mit Schlüsseln, die von AWS Key Management Service (AWS KMS) (SSE-KMS) verwaltet werden

  • Serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C)

Weitere Informationen finden Sie unter Schützen von Daten mithilfe serverseitiger Verschlüsselung.

Clientseitige Verschlüsselung ist der Vorgang, bei dem Daten verschlüsselt werden, bevor sie an Amazon S3 gesendet werden. Weitere Informationen finden Sie unter Schützen von Daten mithilfe clientseitiger Verschlüsselung.

Signaturmethoden

Signature Version 4 ist der Prozess für die Hinzufügung von Authentifizierungs-Informationen zu AWS-Anforderungen, die über HTTP gesendet werden. Aus Sicherheitsgründen müssen die meisten Anforderungen an AWS mit einem Zugriffsschlüssel signiert werden, der aus einer Zugriffsschlüssel-ID und einem geheimen Zugriffsschlüssel besteht. Diese beiden Schlüssel werden in der Regel als Sicherheitsanmeldeinformationen bezeichnet.

Weitere Informationen finden Sie unter Authenticating Requests (Authentifizierung von Anforderungen) (AWS Signature Version 4) und Signature Version 4 signing process (Signaturprozess).

Protokollierung und Überwachung

Die Überwachung ist wichtig, um die Zuverlässigkeit, Verfügbarkeit und Leistung Ihrer Amazon S3-Lösungen zu wahren. Dank der Überwachung können Sie einen Multi-Punkt-Fehler leicht debuggen, wenn ein solcher Fehler auftritt. Die Protokollierung kann einen Einblick in alle Fehler geben, die Benutzer erhalten und wann welche Anfragen gestellt werden. AWS bietet mehrere Tools zur Überwachung Ihrer Amazon S3-Ressourcen:

  • Amazon CloudWatch

  • AWS CloudTrail

  • Amazon S3-Zugriffsprotokolle

  • AWS Trusted Advisor

Weitere Informationen finden Sie unter Protokollierung und Überwachung in Amazon S3.

Amazon S3 ist in AWS CloudTrail integriert. Dieser Service zeichnet die Aktionen eines Benutzers, einer Rolle oder eines AWS-Service in Amazon S3 auf. Diese Funktion kann mit Amazon GuardDuty gekoppelt werden, das Bedrohungen gegen Ihre Amazon S3-Ressourcen überwacht, indem CloudTrail-Verwaltereignisse und CloudTrail S3-Datenereignisse analysiert werden. Diese Datenquellen überwachen verschiedene Arten von Aktivitäten. Beispielsweise umfassen S3-bezogene CloudTrail-Verwaltungsereignisse Vorgänge, die S3-Projekte auflisten oder konfigurieren. GuardDuty analysiert S3-Datenereignisse aus allen Ihren S3-Buckets und überwacht sie auf bösartige und verdächtige Aktivitäten.

Weitere Informationen finden Sie unter Amazon S3-Schutz in Amazon GuardDuty im Amazon GuardDuty-Benutzerhandbuch.