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 Amazon-S3-Einstellung auf Bucket-Ebene, mit der Sie sowohl die Eigentümerschaft von Objekten steuern können, die in Ihre Buckets hochgeladen werden, als auch Zugriffssteuerungslisten (ACLs) deaktivieren oder aktivieren können. Standardmäßig ist die Objekteigentümerschaft auf die Einstellung „Bucket-Eigentümer erzwungen“ festgelegt und alle ACLs sind deaktiviert. Wenn ACLs deaktiviert sind, besitzt der Bucket-Eigentümer jedes Objekte im Bucket und verwaltet den Datenzugriff ausschließlich mithilfe von Richtlinien.

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

Deaktivierte ACLs
  • Bucket-Eigentümer erzwungen (Standard) – ACLs sind deaktiviert und der Bucket-Eigentümer besitzt automatisch jedes Objekt im Bucket und hat die volle Kontrolle darüber. 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 – 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. Die vier Einstellungen Blockieren jeglichen öffentlichen Zugriffs sind für neue Buckets standardmäßig aktiviert. Es wird empfohlen, alle vier Einstellungen aktiviert zu lassen, es sei denn, Sie wissen, dass Sie eine oder mehrere dieser Einstellungen für Ihren Anwendungsfall deaktivieren müssen. Sie können einzelne Einstellungen zum Blockieren des öffentlichen Zugriffs mithilfe der Amazon-S3-Konsole ändern.

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

Wenn Sie bestimmten Benutzern Zugriff gewähren möchten, empfehlen wir, AWS Identity and Access Management (IAM)-Richtlinien zu verwenden, statt alle Einstellungen zum Blockieren des öffentlichen Zugriffs zu deaktivieren. Es ist eine bewährte Sicherheitsmethode, das Blockieren des öffentlichen Zugriffs zu aktivieren. Durch die Verwendung des Blockierens des öffentlichen Zugriffs mit IAM-Identitäten wird sichergestellt, dass eine von einer Einstellung zum Blockieren des öffentlichen Zugriffs blockierte Operation zurückgewiesen wird, es sei denn, dem angeforderten 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. Es wird empfohlen, zusätzlich zu den Bucket-Richtlinien die Einstellungen zum Blockieren des öffentlichen Zugriffs auf Bucket-Ebene zu 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 ein Platzhalterzeichen allen Benutzer den Zugriff auf Ihre Amazon-S3-Ressourcen ermöglicht. Listen Sie stattdessen die Benutzer oder Gruppen explizit auf, die auf den Bucket zugreifen dürfen. Anstatt ein Platzhalterzeichen 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 Rollback-Funktion ist besonders nützlich, wenn mehrere Benutzer mit vollständigen Schreib- und Ausführungsberechtigungen 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 Lebenszykluskonfigurationen mit der S3-Versionsverwaltung verbinden. Lebenszykluskonfigurationen definieren Aktionen, die Amazon S3 während des Lebenszyklus eines Objekts ausführen soll. Sie können beispielsweise eine Lebenszykluskonfiguration erstellen, die Objekte nach einem bestimmten Zeitraum in eine andere Speicherklasse überführt, archiviert oder löscht. Sie können eine Lebenszykluskonfiguration für alle Objekte im Bucket oder für eine Teilmenge von Objekten definieren, indem Sie ein gemeinsames 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, erwägen Sie die Implementierung einer regionsübergreifenden S3-Replikation. 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 dieser Funktion 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. Wenn Sie die Bucket-Richtlinie für Ihre statische Website schreiben, achten Sie darauf, nur s3:GetObject-Aktionen und keine ListObject- oder PutObject-Berechtigungen zuzulassen. Damit wird sichergestellt, 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.

Sie sollten alle Einstellungen für das Blockieren des öffentlichen Zugriffs aktiviert lassen. Wenn Sie alle vier Einstellungen für Block Public Access aktiviert lassen und eine statische Website hosten möchten, können Sie die Amazon-CloudFront-Ursprungszugriffssteuerung (Origin Access Control, OAC) verwenden. 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 diese Tools 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 Amazon-S3-Einstellung auf Bucket-Ebene, mit der Sie sowohl die Eigentümerschaft von Objekten steuern können, die in Ihre Buckets hochgeladen werden, als auch Zugriffssteuerungslisten (ACLs) deaktivieren oder aktivieren können. Standardmäßig ist die Objekteigentümerschaft auf die Einstellung „Bucket-Eigentümer erzwungen“ festgelegt und alle ACLs sind deaktiviert. Wenn ACLs deaktiviert sind, besitzt der Bucket-Eigentümer jedes Objekte im Bucket und verwaltet den Datenzugriff ausschließlich mithilfe von Richtlinien.

Die meisten modernen Anwendungsfälle in Amazon S3 erfordern keine ACLs mehr. Wir empfehlen Ihnen daher, ACLs zu deaktivieren, außer unter ungewöhnlichen Umständen, in denen Sie den Zugriff für jedes Objekt einzeln steuern müssen.

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. Anschließend können Sie eine IAM-Benutzerrichtlinie verwenden, um den Bucket für diese Gruppe freizugeben. 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-Benutzerrichtlinien für die Zugriffskontrolle verwenden. Die Verwendung von Richtlinien anstelle von ACLs vereinfacht die Berechtigungsverwaltung. Amazon-S3-ACLs sind der ursprüngliche Zugriffskontrollmechanismus in Amazon S3, der älter als IAM ist. Bestimmte Zugriffskontrollszenarien erfordern jedoch die Verwendung von ACLs. Angenommen, ein Bucket-Eigentümer möchte Berechtigungen für den Zugriff auf Objekte erteilen, aber nicht alle Objekte im Bucket gehören dem Bucket-Eigentümer. In diesem Fall muss der Objekteigentümer zuerst dem Bucket-Eigentümer über eine Objekt-ACL Berechtigungen erteilen.

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. Wenn die Einstellung „Bucket-Eigentümer erzwungen“ aktiviert ist, schlagen Anforderungen zum Festlegen von Zugriffssteuerungslisten (ACLs) oder zum Aktualisieren von ACLs fehl und geben den Fehlercode AccessControlListNotSupported 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 als Möglichkeit zum Gruppieren von Objekten mithilfe eines freigegebenen Namenspräfixes für Objekte. Wenn Sie einem IAM-Benutzer anschließend explizite Berechtigungen für den Zugriff auf die Ressourcen erteilen möchten, die diesem Präfix zugeordnet sind, können Sie das Präfix innerhalb der Bedingungen der IAM-Benutzerrichtlinie eines Benutzers angeben.

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. 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 mit 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 der clientseitigen 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 Amazon-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.