Infrastruktursicherheit in Amazon Redshift - Amazon Redshift

Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting.

Infrastruktursicherheit in Amazon Redshift

Als verwalteter Service ist Amazon Redshift durch die globale Netzwerksicherheit von AWS geschützt. Informationen zu AWS-Sicherheitsservices und wie AWS die Infrastruktur schützt, finden Sie unter AWS-Cloud-Sicherheit. Informationen zum Entwerfen Ihrer AWS-Umgebung anhand der bewährten Methoden für die Infrastruktursicherheit finden Sie unter Infrastrukturschutz im Security Pillar AWS Well‐Architected Framework.

Sie verwenden von AWS veröffentlichte API-Aufrufe, um über das Netzwerk auf Amazon Redshift zuzugreifen. Kunden müssen Folgendes unterstützen:

  • Transport Layer Security (TLS). Wir benötigen TLS 1.2 und empfehlen TLS 1.3.

  • Verschlüsselungs-Suiten mit Perfect Forward Secrecy (PFS) wie DHE (Ephemeral Diffie-Hellman) oder ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). Die meisten modernen Systeme wie Java 7 und höher unterstützen diese Modi.

Netzwerkisolierung

Eine Virtual Private Cloud (VPC), die auf dem Amazon-VPC-Service basiert, ist Ihr privates, logisch isoliertes Netzwerk in der AWS-Cloud. Sie können einen Amazon-Redshift-Cluster oder eine Redshift-Serverless-Arbeitsgruppe in einer VPC bereitstellen, indem Sie die folgenden Schritte ausführen:

Ein Amazon-Redshift-Cluster ist bei der Bereitstellung standardmäßig gesperrt. Um eingehenden Netzwerkverkehr von Amazon-Redshift-Clients zuzulassen, ordnen Sie eine VPC-Sicherheitsgruppe einem Amazon-Redshift-Cluster zu. Weitere Informationen finden Sie unter Subnetze für Redshift-Ressourcen.

Um Datenverkehr nur in oder von bestimmten IP-Adressbereichen zuzulassen, aktualisieren Sie die Sicherheitsgruppen mit Ihrer VPC. Ein Beispiel ist, Datenverkehr nur von oder zu Ihrem Unternehmensnetzwerk zuzulassen.

Stellen Sie beim Konfigurieren von Netzwerk-Zugriffssteuerungslisten, die den Subnetzen zugeordnet sind, mit denen Ihr Amazon-Redshift-Cluster gekennzeichnet ist, sicher, dass die S3-CIDR-Bereiche der jeweiligen AWS-Region zur Zulassungsliste für Eingangs- und Ausgangsregeln hinzugefügt werden. Auf diese Weise können Sie S3-basierte Vorgänge wie Redshift Spectrum, COPY und UNLOAD ohne Unterbrechungen ausführen.

Der folgende Beispielbefehl analysiert die JSON-Antwort für alle IPv4-Adressen, die in Amazon S3 in der Region us-east-1 verwendet werden.

curl https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.region=="us-east-1") | select(.service=="S3") | .ip_prefix' 54.231.0.0/17 52.92.16.0/20 52.216.0.0/15

Anweisungen zum Abrufen von S3-IP-Bereichen für eine bestimmte Region finden Sie unter AWS-IP-Adressbereiche.

Amazon Redshift unterstützt die Bereitstellung von Clustern in Dedicated-Tenancy-VPCs. Weitere Informationen finden Sie unter Dedicated Instances im Amazon EC2-Benutzerhandbuch.

Amazon-Redshift-Sicherheitsgruppen

Wenn Sie einen Amazon-Redshift-Cluster bereitstellen, ist dieser standardmäßig gesperrt, so dass niemand darauf zugreifen kann. Um anderen Benutzern eingehenden Zugriff auf einen Amazon-Redshift-Cluster zu gewähren, ordnen Sie den Cluster einer Sicherheitsgruppe zu. Wenn Sie auf der EC2-VPC-Plattform arbeiten, können Sie eine vorhandene Amazon-VPC-Sicherheitsgruppe verwenden oder eine neue definieren und diese dann einem Cluster zuordnen. Weitere Informationen zur Verwaltung eines Clusters auf der EC2-VPC-Plattform finden Sie unter Redshift-Ressourcen in einer VPC.

Sie können sich über einen Schnittstellen-VPC-Endpunkt (AWS PrivateLink) in Ihrer Virtual Private Cloud (VPC) direkt mit der Amazon-Redshift- und der Amazon-Redshift-Serverless-API verbinden, anstatt eine Verbindung über das Internet herzustellen. Weitere Informationen zu den Amazon Redshift API-Aktionen finden Sie unter Aktionen in der Amazon-Redshift-API-Referenz. Weitere Informationen zu den API-Aktionen von Redshift Serverless finden Sie unter Aktionen in der API-Referenz zu Amazon Redshift Serverless. Weitere Informationen über AWS PrivateLink finden Sie unter Schnittstellen-VPC-Endpunkte (AWS PrivateLink)im Amazon-VPC-Benutzerhandbuch. Beachten Sie, dass die JDBC/ODBC-Verbindung zum Cluster oder Arbeitsbereich nicht Bestandteil des API-Services von Amazon Redshift ist.

Wenn Sie einen Schnittstellen-VPC-Endpunkt verwenden, findet die Kommunikation zwischen Ihrer VPC und Amazon Redshift oder Redshift Serverless vollständig innerhalb des AWS-Netzwerks statt, was die Sicherheit erhöhen kann. Jeder VPC-Endpunkt wird durch eine oder mehrere Elastic Network-Schnittstellen mit privaten IP-Adressen in Ihren VPC-Subnetzen repräsentiert. Weitere Informationen zu Elastic Network-Schnittstellen finden Sie unter Elastic Network-Schnittstellen im Amazon EC2 Benutzerhandbuch.

Ein Schnittstellen-VPC Endpunkt verbindet Ihre VPC direkt mit Amazon Redshift. Er verwendet kein Internet-Gateway, kein Network Address Translation (NAT)-Gerät, keine Virtual Private Network (VPN)-Verbindung und keine Direct Connect-Verbindung. Die Instances in Ihrer VPC benötigen für die Kommunikation mit der Amazon Redshift API keine öffentlichen IP-Adressen.

Um Amazon Redshift oder Redshift Serverless über Ihre VPC zu verwenden, haben Sie zwei Optionen. Eine besteht darin, eine Verbindung von einer Instance innerhalb Ihrer VPC herzustellen. Die andere ist, Ihr privates Netzwerk mithilfe einer Site-to-Site VPN-Option oder Direct Connect mit Ihrer VPC zu verbinden. Weitere Informationen zu Site-to-Site VPN-Optionen finden Sie unter VPN-Verbindungen im Amazon-VPC-Benutzerhandbuch. Informationen zu Direct Connect finden Sie unter Erstellen einer Verbindung im Direct Connect-Benutzerhandbuch.

Sie können über die AWS-Managementkonsole oder AWS Command Line Interface (AWS CLI)-Befehle einen Schnittstellen-VPC-Endpunkt erstellen, um eine Verbindung zu Amazon Redshift herzustellen. Weitere Informationen finden Sie unter Erstellen eines Schnittstellenendpunkts.

Nachdem Sie einen Schnittstellen-VPC-Endpunkt erstellt haben, können Sie private DNS-Hostnamen für den Endpunkt aktivieren. Wenn Sie dies tun, ist der Standardendpunkt wie folgt:

  • Von Amazon Redshift bereitgestellt: https://redshift.Region.amazonaws.com

  • Amazon Redshift Serverless: https://redshift-serverless.Region.amazonaws.com

Wenn Sie private DNS-Hostnamen nicht aktivieren, stellt Amazon VPC einen DNS-Endpunktnamen bereit, den Sie im folgenden Format verwenden können.

  • Von Amazon Redshift bereitgestellt: VPC_endpoint_ID.redshift.Region.vpce.amazonaws.com

  • Amazon Redshift Serverless: VPC_endpoint_ID.redshift-serverless.Region.vpce.amazonaws.com

Weitere Informationen finden Sie unter Schnittstellen-VPC-Endpunkte (AWS PrivateLink) im Amazon-VPC-Benutzerhandbuch.

Amazon Redshift und Redshift Serverless unterstützen Aufrufe aller API-Operationen von Amazon Redshift und API-Operationen von Redshift Serverless innerhalb der VPC.

Sie können VPC-Endpunktrichtlinien an einen VPC-Endpunkt anfügen, um den Zugriff für AWS Identity and Access Management (IAM)-Prinzipale zu steuern. Sie können einem VPC-Endpunkt auch Sicherheitsgruppen zuordnen, um den eingehenden und ausgehenden Zugriff basierend auf Quelle und Ziel des Netzwerkdatenverkehrs zu steuern. Ein Beispiel ist ein IP-Adressbereich. Weitere Informationen finden Sie unter Steuerung des Zugriffs auf Services mit VPC-Endpunkten im Amazon VPC User Guide.

Sie können eine Richtlinie für VPC-Endpunkte für Amazon Redshift erstellen, in der Sie Folgendes angeben:

  • Prinzipal, der Aktionen ausführen bzw. nicht ausführen kann

  • Aktionen, die ausgeführt werden können

  • Ressourcen, für die Aktionen ausgeführt werden können

Weitere Informationen finden Sie unter Steuerung des Zugriffs auf Services mit VPC-Endpunkten im Amazon-VPC-Benutzerhandbuch.

Im Folgenden finden Sie Beispiele für VPC-Endpunktrichtlinien.

Nachfolgend finden Sie Beispiele für VPC-Endpunktrichtlinien für von Amazon Redshift bereitgestellte Endpunkte.

Die folgende VPC-Endpunktrichtlinie verweigert dem AWS-Konto 123456789012 jeglichen Zugriff auf Ressourcen, die diesen Endpunkt verwenden.

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" }, { "Action": "*", "Effect": "Deny", "Resource": "*", "Principal": { "AWS": [ "123456789012" ] } } ] }

Die folgende VPC-Endpunktrichtlinie gewährt nur dem IAM-Benutzer redshiftrole im AWS-Konto 123456789012 vollen Zugriff. Allen anderen IAM-Prinzipalen wird der Zugriff über den Endpunkt verweigert.

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/redshiftrole" ] } }] }

Dies ist nur ein Beispiel. In den meisten Anwendungsfällen empfehlen wir, Berechtigungen für bestimmte Aktionen anzufügen, um den Umfang der Berechtigungen einzuschränken.

Die folgende VPC-Endpunktrichtlinie gewährt nur dem IAM-Benutzer redshiftadmin im AWS-Konto 123456789012 vollen Zugriff. Allen anderen IAM-Prinzipalen wird der Zugriff über den Endpunkt verweigert.

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/redshiftadmin" ] } }] }

Dies ist nur ein Beispiel. In den meisten Anwendungsfällen empfehlen wir, einer Rolle Berechtigungen anzufügen, bevor Sie sie einem Benutzer zuweisen. Darüber hinaus empfehlen wir, spezifische Aktionen zu verwenden, um den Umfang der Berechtigungen einzuschränken.

Die folgende VPC-Endpunktrichtlinie erlaubt nur dem AWS-Konto 123456789012 das Ausführen der angegebenen Amazon-Redshift-Aktionen.

Die angegebenen Aktionen stellen das Äquivalent von schreibgeschütztem Zugriff für Amazon Redshift dar. Alle anderen Aktionen in der VPC werden dem angegebenen Konto verweigert. Allen anderen Konten wird außerdem jeglicher Zugriff verweigert. Eine Liste der Amazon-Redshift-Aktionen finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon Redshift im IAM-Benutzerhandbuch.

{ "Statement": [ { "Action": [ "redshift:DescribeAccountAttributes", "redshift:DescribeClusterParameterGroups", "redshift:DescribeClusterParameters", "redshift:DescribeClusterSecurityGroups", "redshift:DescribeClusterSnapshots", "redshift:DescribeClusterSubnetGroups", "redshift:DescribeClusterVersions", "redshift:DescribeDefaultClusterParameters", "redshift:DescribeEventCategories", "redshift:DescribeEventSubscriptions", "redshift:DescribeHsmClientCertificates", "redshift:DescribeHsmConfigurations", "redshift:DescribeLoggingStatus", "redshift:DescribeOrderableClusterOptions", "redshift:DescribeQuery", "redshift:DescribeReservedNodeOfferings", "redshift:DescribeReservedNodes", "redshift:DescribeResize", "redshift:DescribeSavedQueries", "redshift:DescribeScheduledActions", "redshift:DescribeSnapshotCopyGrants", "redshift:DescribeSnapshotSchedules", "redshift:DescribeStorage", "redshift:DescribeTable", "redshift:DescribeTableRestoreStatus", "redshift:DescribeTags", "redshift:FetchResults", "redshift:GetReservedNodeExchangeOfferings" ], "Effect": "Allow", "Resource": "*", "Principal": { "AWS": [ "123456789012" ] } } ] }

Die folgende VPC-Endpunktrichtlinie gewährt vollen Zugriff für alle Konten und Prinzipale. Gleichzeitig verweigert sie jeglichen Zugriff für das AWS-Konto 123456789012 auf Aktionen, die auf dem Amazon-Redshift-Cluster mit der Cluster-ID my-redshift-cluster ausgeführt werden. Andere Amazon-Redshift-Aktionen, die keine Berechtigungen auf Ressourcenebene für Cluster unterstützen, sind weiterhin zulässig. Eine Liste der Amazon-Redshift-Aktionen und ihrer entsprechenden Ressourcentypen finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon Redshift im IAM-Benutzerhandbuch.

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" }, { "Action": "*", "Effect": "Deny", "Resource": "arn:aws:redshift:us-east-1:123456789012:cluster:my-redshift-cluster", "Principal": { "AWS": [ "123456789012" ] } } ] }

Nachfolgend finden Sie Beispiele für Richtlinien für VPC-Endpunkte von Redshift Serverless.

Die folgende VPC-Endpunktrichtlinie erlaubt nur dem AWS-Konto 123456789012 das Ausführen der angegebenen Redshift-Serverless-Aktionen.

Die angegebenen Aktionen stellen das Äquivalent von schreibgeschütztem Zugriff für Redshift Serverless dar. Alle anderen Aktionen in der VPC werden dem angegebenen Konto verweigert. Allen anderen Konten wird außerdem jeglicher Zugriff verweigert. Eine Liste der Redshift-Serverless-Aktionen finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Redshift Serverless im IAM-Benutzerhandbuch.

{ "Statement": [ { "Action": [ "redshift-serverless:DescribeOneTimeCredit", "redshift-serverless:GetCustomDomainAssociation", "redshift-serverless:GetEndpointAccess", "redshift-serverless:GetNamespace", "redshift-serverless:GetRecoveryPoint", "redshift-serverless:GetResourcePolicy", "redshift-serverless:GetScheduledAction", "redshift-serverless:GetSnapshot", "redshift-serverless:GetTableRestoreStatus", "redshift-serverless:GetUsageLimit", "redshift-serverless:GetWorkgroup" ], "Effect": "Allow", "Resource": "*", "Principal": { "AWS": [ "123456789012" ] } } ] }

Die folgende VPC-Endpunktrichtlinie gewährt vollen Zugriff für alle Konten und Prinzipale. Gleichzeitig verweigert sie jeglichen Zugriff für das AWS-Konto 123456789012 auf Aktionen, die in der Amazon-Redshift-Arbeitsgruppe mit der Arbeitsgruppen-ID my-redshift-workgroup ausgeführt werden. Andere Amazon-Redshift-Aktionen, die keine Berechtigungen auf Ressourcenebene für Arbeitsgruppen unterstützen, sind weiterhin zulässig. Eine Liste der Redshift-Serverless-Aktionen und ihrer entsprechenden Ressourcentypen finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Redshift Serverless im IAM-Benutzerhandbuch.

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" }, { "Action": "*", "Effect": "Deny", "Resource": "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup:my-redshift-workgroup", "Principal": { "AWS": [ "123456789012" ] } } ] }