Verwenden von Amazon Redshift Spectrum mit Enhanced VPC Routing - Amazon Redshift

Verwenden von Amazon Redshift Spectrum mit Enhanced VPC Routing

Enhanced VPC Routing für Amazon Redshift leitet bestimmten Datenverkehr über Ihre VPC. Der gesamte Datenverkehr zwischen Ihrem Cluster und Ihren Amazon-S3-Buckets wird erzwungenermaßen über Ihre Amazon VPC geleitet. Redshift Spectrum wird auf von AWS verwalteten Ressourcen ausgeführt, die Amazon Redshift gehören. Da sich diese Ressourcen außerhalb Ihrer VPC befinden, verwendet Redshift Spectrum das Enhanced VPC Routing nicht.

Wenn Ihr Cluster so konfiguriert ist, dass Enhanced VPC Routing verwendet wird, wird Datenverkehr zwischen Redshift Spectrum und Amazon S3 über Ihr privates AWS-Netzwerk geleitet, außerhalb Ihrer VPC. Eingehender Datenverkehr wird mit dem Amazon Signature Version 4-Protokoll (SIGv4) signiert und mit HTTPS verschlüsselt. Dieser Datenverkehr wird auf der Grundlage der IAM-Rolle autorisiert, die Ihrem Amazon-Redshift-Cluster angefügt ist. Um den Redshift-Spectrum-Datenverkehr weiter zu verwalten, können Sie die IAM-Rolle Ihres Clusters und Ihre an den Amazon-S3-Bucket angehängte Richtlinie ändern. Möglicherweise müssen Sie auch Ihre VPC so konfigurieren, dass Ihre Cluster auf AWS Glue oder Athena zugreifen können, wie nachfolgend dargestellt.

Überlegungen zur Verwendung von Redshift Spectrum mit Enhanced VPC Routing

Nachfolgend finden Sie einige Überlegungen zur Verwendung von Redshift Spectrum mit Enhanced VPC Routing:

Richtlinien für den Bucket-Zugriff

Sie können den Zugriff auf Daten in Ihren Amazon-S3-Buckets mit einer Richtlinie steuern, die dem Bucket angefügt ist, aber auch über eine IAM-Rolle, die dem Cluster angefügt ist.

Redshift Spectrum kann nicht auf Daten zugreifen, die in Amazon-S3-Buckets gespeichert sind, wenn diese eine Bucket-Richtlinie verwenden, die den Zugriff auf bestimmte VPC-Endpunkte beschränkt. Verwenden Sie stattdessen eine Bucket-Richtlinie, die den Zugriff auf bestimmte Prinzipale beschränkt, beispielsweise auf ein bestimmtes AWS-Konto oder bestimmte Benutzer.

Verwenden Sie für die IAM-Rolle, die Zugriff auf den Bucket erhält, eine Vertrauensstellung, die die Annahme der Rolle nur durch den Amazon-Redshift-Service-Prinzipal erlaubt. Wenn die Rolle Ihrem Cluster angefügt ist, kann sie nur im Kontext von Amazon Redshift verwendet und nicht außerhalb des Clusters freigegeben werden. Weitere Informationen finden Sie unter Einschränken des Zugriffs auf IAM-Rollen.

Um Redshift Spectrum zu verwenden, dürfen keine IAM-Richtlinien vorhanden sein, die die Verwendung vorsignierter URLs blockieren.

Die folgende Beispiel-Bucket-Richtlinie erlaubt den Zugriff auf den angegebenen Bucket nur für Datenverkehr von Redshift Spectrum, wenn der Eigentümer das AWS-Konto 123456789012 ist.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"BucketPolicyForSpectrum", "Effect":"Allow", "Principal": {"AWS": ["arn:aws:iam::123456789012:root"]}, "Action":[“s3:GetObject",”s3:List*"], "Resource":["arn:aws:s3:::examplebucket/*"], "Condition":{"StringEquals":{"aws:UserAgent": "AWS Redshift/Spectrum"]}} } ] }

Cluster-IAM-Rolle

Die Ihrem Cluster angefügte Rolle sollte über eine Vertrauensstellung verfügen, die die Annahme der Rolle nur dem Amazon-Redshift-Service erlaubt, wie nachfolgend gezeigt.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Sie können der Cluster-Rolle eine Richtlinie hinzufügen, die den COPY- und UNLOAD-Zugriff auf einen bestimmten Bucket COPY verhindert. Die folgende Richtlinie gestattet Datenverkehr zu dem angegebenen Bucket nur von Redshift Spectrum.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": ["s3:Get*", "s3:List*"], "Resource": "arn:aws:s3:::myBucket/*", "Condition": {"StringEquals": {"aws:UserAgent": "AWS Redshift/Spectrum"}} }] }

Weitere Informationen finden Sie unter IAM-Richtlinien für Amazon Redshift Spectrum im Datenbankentwicklerhandbuch zu Amazon Redshift.

Protokollieren und Prüfen des Amazon-S3-Zugriffs

Ein Vorteil der Verwendung von Enhanced VPC Routing für Amazon Redshift ist, dass der gesamte COPY- und UNLOAD-Datenverkehr in den VPC-Flow-Protokollen protokolliert wird. Von Redshift Spectrum stammender Datenverkehr zu Amazon S3 wird nicht durch Ihre VPC geleitet und wird daher auch nicht in den VPC-Flow-Protokollen aufgezeichnet. Wenn Redshift Spectrum auf Daten in Amazon S3 zugreift, führt die Anwendung diese Operationen im Kontext des AWS-Kontos und der betreffenden Rollenberechtigungen aus. Sie können den Amazon-S3-Zugriff mithilfe von Serverzugriffsprotokollierung in AWS CloudTrail und Amazon S3 protokollieren und prüfen.

AWS CloudTrail Protokolle

Um alle Zugriffe auf Objekte in Amazon S3 nachzuverfolgen, auch den Zugriff auf Redshift Spectrum, aktivieren Sie die CloudTrail-Protokollierung für Amazon-S3-Objekte.

Mit CloudTrail können Sie Kontoaktivitäten in Ihrer AWS-Infrastruktur anzeigen, durchsuchen, herunterladen, archivieren, analysieren und auf diese reagieren. Weitere Informationen finden Sie unter Erste Schritte mit CloudTrail.

Standardmäßig verfolgt CloudTrail nur Aktionen auf Bucket-Ebene nach. Um Aktionen auf Objektebene (z. B. GetObject) zu verfolgen, aktivieren Sie Daten- und Verwaltungsereignisse für jeden protokollierten Bucket.

Amazon-S3-Server-Zugriffsprotokollierung

Die Server-Zugriffsprotokollierung bietet detaillierte Aufzeichnungen über die Anforderungen, die an einen Bucket gestellt wurden. Die Zugriffsprotokollinformationen können für Sicherheits- und Zugriffsüberprüfungen nützlich sein. Weitere Informationen finden Sie unter So aktivieren Sie die Server-Zugriffsprotokollierung im Benutzerhandbuch zu Amazon Simple Storage Service.

Weitere Informationen finden Sie im AWS Security Blog-Beitrag How to Use Bucket Policies and Apply Defense-in-Depth to Help Secure Your Amazon S3 Data.

Zugriff auf AWS Glue oder Amazon Athena

Redshift Spectrum greift auf Ihren Datenkatalog in AWS Glue oder Athena zu. Eine weitere Option ist die Verwendung eines speziellen Hive-Metastores für Ihren Datenkatalog.

Um den Zugriff auf AWS Glue oder Athena zu aktivieren, konfigurieren Sie Ihre VPC mit einem Internet-Gateway oder einem NAT-Gateway. Konfigurieren Sie Ihre VPC-Sicherheitsgruppen so, dass ausgehender Datenverkehr an die öffentlichen Endpunkte für AWS Glue und Athena zugelassen ist. Alternativ können Sie einen VPC-Schnittstellenendpunkt konfigurieren, um AWS Glue zu ermöglichen, auf Ihren AWS Glue Data Catalog zuzugreifen. Wenn Sie einen VPC-Schnittstellenendpunkt verwenden, findet die Kommunikation zwischen Ihrer VPC und AWS Glue im AWS-Netzwerk statt. Weitere Informationen finden Sie unter Erstellen eines Schnittstellenendpunkts.

Sie können in Ihrer VPC die folgenden Pfade konfigurieren:

  • Internet-Gateway – Zum Verbinden mit AWS-Services außerhalb Ihrer VPC können Sie ein Internet-Gateway an Ihr VPC-Subnetz anfügen, wie im Amazon-VPC-Benutzerhandbuch beschrieben. Zur Verwendung eines Internet-Gateways muss Ihr Cluster eine öffentliche IP-Adresse haben, damit andere Services mit dem Cluster kommunizieren können.

  • NAT-Gateway – Zur Verbindung mit einem Amazon-S3-Bucket in einer anderen AWS-Region oder zu einem anderen Service im AWS-Netzwerk können Sie ein NAT-Gateway konfigurieren, wie im Amazon-VPC-Benutzerhandbuch beschrieben. Sie können mit dieser Konfiguration auch auf eine Host-Instance außerhalb des AWS-Netzwerks zugreifen.

Weitere Informationen finden Sie unter Enhanced VPC Routing in Amazon Redshift .