Aktivieren von Zahlung durch den Anforderer für Amazon-S3-Buckets in Athena für Spark
Wenn ein Amazon-S3-Bucket mit Zahlung durch den Anforderer konfiguriert ist, werden die mit der Abfrage verbundenen Datenzugriffs- und Datenübertragungsgebühren dem Konto des Benutzers, der die Abfrage ausführt, belastet. Weitere Informationen finden Sie unter Verwendung von Anforderer zahlt Buckets für Speicherübertragungen und -nutzung im Amazon-S3-Benutzerhandbuch.
In Athena für Spark sind kostenpflichtige Buckets pro Sitzung aktiviert, nicht pro Arbeitsgruppe. Auf einer höheren Ebene umfasst die Aktivierung von Anforderer zahlt Buckets die folgenden Schritte:
-
Aktivieren Sie in der Amazon-S3-Konsole, dass der Antragsteller für die Eigenschaften des Buckets bezahlt, und fügen Sie eine Bucket-Richtlinie hinzu, um den Zugriff festzulegen.
-
Erstellen Sie in der IAM-Konsole eine IAM-Richtlinie, die den Zugriff auf den Bucket ermöglicht, und fügen Sie die Richtlinie dann der IAM-Rolle hinzu, die für den Zugriff auf den Bucket mit Zahlung durch den Anforderer verwendet wird.
-
Fügen Sie in Athena für Spark eine Sitzungseigenschaft hinzu, um das Feature Anforderer zahlt Buckets zu aktivieren.
Schritt 1: Aktivieren Sie Zahlungen durch den Anforderer für einen Amazon-S3-Bucket und fügen Sie eine Bucket-Richtlinie hinzu
So aktivieren Sie die Zahlung durch den Anforderer für einen Amazon-S3-Bucket
Öffnen Sie die Amazon-S3-Konsole unter https://console.aws.amazon.com/s3/
. -
Wählen Sie in der Liste Buckets den Link des Buckets aus, für den Sie die Zahlung durch den Anforderer aktivieren möchten.
-
Wählen Sie auf der Seite für Ihren Bucket die Registerkarte Eigenschaften aus.
-
Scrollen Sie nach unten zum Abschnitt Anforderer zahlt und wählen Sie anschließend Bearbeiten aus.
-
Wählen Sie auf der Seite Anforderer zahlt die Option Aktivieren und anschließend Änderungen speichern aus.
-
Wählen Sie die Registerkarte Berechtigungen.
-
Wählen Sie im Abschnitt Bucket-Richtlinie die Option Bearbeiten aus.
-
Wenden Sie auf der Seite Bucket-Richtlinie bearbeiten die gewünschte Bucket-Richtlinie auf den Quell-Bucket an. Die folgende Beispielrichtlinie gewährt Zugriff auf alle AWS-Prinzipale (
"AWS": "*"), Ihr Zugriff kann jedoch detaillierter sein. Beispielsweise möchten Sie möglicherweise nur eine bestimmte IAM-Rolle in einem anderen Konto angeben.
Schritt 2: Erstellen Sie eine IAM-Richtlinie und fügen Sie ihr die IAM-Rolle an
Als nächstes erstellen Sie eine IAM-Richtlinie, die Zugriff auf den Bucket gewährt. Dann fügen Sie die Richtlinie der Rolle zu, die für den Zugriff auf den Anforderer-zahlt-Bucket verwendet werden soll.
Wie Sie eine IAM-Richtlinie für den Anforderer-zahlt-Bucket erstellen und die Richtlinie einer Rolle hinzufügen
Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/
. -
Wählen Sie im Navigationsbereich der IAM-Konsole die Option Richtlinien.
-
Wählen Sie Create Policy (Richtlinie erstellen) aus.
-
Wählen Sie JSON.
-
Fügen Sie im Bucket-Richtlinieneditor eine Richtlinie, wie die folgende hinzu:
-
Wählen Sie Weiter aus.
-
Geben Sie auf der Seite Überprüfen und erstellen einen Namen und eine optionale Beschreibung für die Richtlinie ein und wählen Sie anschließend Richtlinie erstellen aus.
-
Wählen Sie im Navigationsbereich Rollen.
-
Suchen Sie auf der Seite Rollen die Rolle, die Sie verwenden möchten, und wählen Sie dann den Link mit dem Rollennamen.
-
Unter Berechtigungsrichtlinien im Abschnitt Berechtigungen hinzufügen wählen Sie Richtlinien anfügen aus.
-
Aktivieren Sie im Abschnitt Andere Berechtigungsrichtlinien das Kontrollkästchen für die Richtlinie, die Sie erstellt haben, und wählen Sie dann Berechtigungen hinzufügen aus.
Schritt 3: Fügen Sie eine Sitzungseigenschaft von Athena für Spark hinzu
Nachdem Sie den Amazon-S3-Bucket und die zugehörigen Berechtigungen für Zahlungen durch den Antragsteller konfiguriert haben, können Sie das Feature in einer Athena-für-Spark-Sitzung aktivieren.
So aktivieren Sie Anforderer-zahlt-Buckets in einer Athena-für-Spark-Sitzung
-
Wählen Sie im Notebook-Editor aus dem Menü Session (Sitzung) oben rechts die Option Edit session (Sitzung bearbeiten) aus.
-
Erweitern Sie Spark-Eigenschaften.
-
Wählen Sie In JSON bearbeiten aus.
-
Geben Sie im JSON-Texteditor Folgendes ein:
{ "spark.hadoop.fs.s3.useRequesterPaysHeader":"true" } -
Wählen Sie Speichern.