Zugriff auf Amazon S3 von Athena kontrollieren - Amazon Athena

Zugriff auf Amazon S3 von Athena kontrollieren

Sie können den Zugriff auf Amazon-S3-Standorte mithilfe von identitätsbasierten Richtlinien, Bucket-Ressourcenrichtlinien, Zugriffspunktrichtlinien oder einer beliebigen Kombination der oben genannten gewähren. Wenn Akteure mit Athena interagieren, werden ihre Berechtigungen durch Athena geleitet, um zu bestimmen, worauf Athena zugreifen kann. Das bedeutet, dass Benutzer die Berechtigung zum Zugriff auf Amazon-S3-Buckets haben müssen, um diese mit Athena abfragen zu können.

Wenn Sie IAM-Richtlinien verwenden, stellen Sie sicher, dass Sie die bewährten IAM-Methoden befolgen. Weitere Informationen finden Sie unter Bewährte Methoden für die Sicherheit in IAM im IAM-Benutzerhandbuch.

Beachten Sie, dass Anfragen an Amazon S3 von einer privaten IPv4-Adresse für Athena stammen, nicht von der Quell-IP, angegeben in aws:SourceIp. Aus diesem Grund können Sie die aws:SourceIp-Bedingung nicht verwenden, um den Zugriff auf Amazon S3-Aktionen in einer bestimmten IAM-Richtlinie zu verweigern. Sie können ebenfalls den Zugriff auf Amazon-S3-Ressourcen nicht basierend auf den aws:SourceVpc- oder aws:SourceVpce-Bedingungsschlüsseln einschränken oder zulassen.

Anmerkung

Athena-Arbeitsgruppen, die die IAM Identity-Center-Authentifizierung verwenden, müssen die S3-Zugriffsberechtigungen so konfigurieren, dass sie die Verwendung der Weitergabe vertrauenswürdiger Identitäten ermöglichen. Weitere Informationen finden Sie unter S3-Zugriffsberechtigungen und Verzeichnisidentitäten im Benutzerhandbuch für Amazon Simple Storage Service.

Steuern Sie den Zugriff auf Amazon S3-Buckets mittels identitätsbasierter Richtlinien

Identitätsbasierte Richtlinien werden an IAM-Benutzer, -Gruppen oder -Rollen angefügt. Mit diesen Richtlinien können Sie festlegen, welche Aktionen diese Identität durchführen darf (ihre Berechtigungen). Sie können identitätsbasierte Richtlinien verwenden, um den Zugriff auf Ihre Amazon S3-Buckets zu steuern.

Die folgenden identitätsbasierte Richtlinie erlaubt Read und Write den Zugriff auf Objekte in einem bestimmten Amazon-S3-Bucket. Um diese Richtlinie zu verwenden, ersetzen Sie den kursiv gedruckten Platzhaltertext durch Ihre eigenen Werte.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "AllObjectActions", "Effect": "Allow", "Action": "s3:*Object", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }

Steuern Sie den Zugriff auf Amazon S3-Buckets mittels Bucket-Ressourcenrichtlinien

Sie können Amazon S3-Bucket-Richtlinien verwenden, um den Zugriff auf Objekte in Ihren Buckets zu sichern, sodass nur Benutzer mit den entsprechenden Berechtigungen darauf zugreifen können. Anleitungen zum Erstellen Ihrer Amazon S3-Richtlinie finden Sie unter Hinzufügen einer Bucket-Richtlinie mithilfe der Amazon-S3-Konsole im Amazon-S3-Benutzerhandbuch.

Die folgende Beispiel-Berechtigungsrichtlinie beschränkt einen Benutzer auf das Lesen von Objekten, die den environment: production Tag-Schlüssel und -Wert haben. Diese Beispiel-Richtlinie verwendet den s3:ExistingObjectTag-Bedingungsschlüssel, um den Tag-Schlüssel und -Wert anzugeben.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Principal": { "AWS": "arn:aws:iam::111122223333:role/JohnDoe" }, "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/environment": "production" } } } ] }

Weitere Beispiele für Bucket-Richtlinien finden Sie unter Beispiele für Amazon S3-Bucket-Richtlinien im Amazon S3-Benutzerhandbuch.

Verwenden Sie Amazon S3 Access Points, für eine präzisere Kontrolle über den Zugriff auf Buckets

Wenn Sie ein freigegebener Datensatz in einem Amazon-S3-Bucket haben, kann es schwierig sein, eine einzelne Bucket-Richtlinie zu verwalten, die den Zugriff für Hunderte von Anwendungsfällen verwaltet.

Amazon S3 Bucket-Zugangspunkte, Richtlinien und Aliase können zur Lösung dieses Problems beitragen. Ein Bucket kann über mehrere Zugriffspunkte verfügen, von denen jeder eine Richtlinie verfügt, die den Zugriff auf den Bucket auf andere Weise steuert.

Für jeden von Ihnen erstellten Zugriffspunkt generiert Amazon S3 einen Alias, der den Zugriffspunkt darstellt. Da der Alias im Amazon-S3-Bucket-Namensformat vorliegt, können Sie den Alias in der LOCATION-Klausel Ihrer Anweisungen in CREATE TABLE-Athena verwenden. Der Zugriff von Athena auf den Bucket wird dann durch die Richtlinie für den Zugriffspunkt gesteuert, den der Alias darstellt.

Weitere Informationen finden Sie unter Tabellenspeicherort in Amazon S3 angeben und Verwenden von Zugriffspunkten im Amazon-S3-Benutzerhandbuch.

Verwenden Sie die CalledVia-Kontextschlüssel, um nur Anrufe von Athena an einen anderen Dienst zuzulassen

Für zusätzliche Sicherheit können Sie den globalen Bedingungskontextschlüssel aws:CalledVia verwenden. Der aws:CalledVia-Bedingungsschlüssel enthält eine Liste von Diensten, denen Sie erlauben, einen anderen Dienst aufzurufen. Sie können beispielsweise InvokeFunction-Aufrufe an AWS Lambda nur zulassen, wenn die Aufrufe von Athena stammen, indem Sie den Athena-Dienstprinzipalnamen athena.amazonaws.com für den aws:CalledVia-Kontextschlüssel angeben. Weitere Informationen finden Sie unter CalledVia-Kontextschlüssel für Athena verwenden.

Weitere Ressourcen

Ausführliche Informationen und Beispiele zum Gewähren des Amazon-S3-Zugriffs finden Sie in den folgenden Ressourcen: