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
Verwenden serviceverknüpfter Rollen für Amazon Redshift
Amazon Redshift verwendet mit dem AWS Identity and Access Management (IAM)-Service verknüpfte Rollen. Eine serviceverknüpfte Rolle ist ein spezieller Typ von IAM-Rolle, der direkt mit Amazon Redshift verknüpft ist. Serviceverknüpfte Rollen sind von Amazon Redshift vordefiniert und schließen alle Berechtigungen ein, die der Service zum Aufrufen von AWS-Services im Namen Ihres Amazon-Redshift-Clusters benötigt.
Eine serviceverknüpfte Rolle macht die Einrichtung von Amazon Redshift einfacher, da Sie die erforderlichen Berechtigungen nicht manuell hinzufügen müssen. Die Rolle ist mit Amazon-Redshift-Anwendungsfällen verknüpft und verfügt über vordefinierte Berechtigungen. Nur Amazon Redshift kann diese Rolle übernehmen und nur die serviceverknüpfte Rolle kann die vordefinierte Berechtigungsrichtlinie nutzen. Amazon Redshift erstellt eine serviceverknüpfte Rolle in Ihrem Konto, wenn Sie zum ersten Mal einen Cluster oder einen von Redshift verwalteten VPC-Endpunkt erstellen. Sie können die serviceverknüpfte Rolle erst löschen, nachdem Sie alle Amazon-Redshift-Cluster oder von Redshift verwalteten VPC-Endpunkte in Ihrem Konto gelöscht haben. Dies schützt Ihre Amazon Redshift-Ressourcen, da Sie nicht versehentlich die Berechtigungen für den Zugriff auf die Ressourcen entfernen können.
Amazon Redshift unterstützt die Verwendung serviceverknüpfter Rollen in allen Regionen, in denen der Service verfügbar ist. Weitere Informationen finden Sie unter AWSRegionen und Endpunkte.
Informationen zu anderen Services, die serviceverknüpfte Rollen unterstützen, finden Sie unter AWS-Services, die mit IAM funktionieren. Suchen Sie nach den Services, für die Ja in der Spalte Serviceverknüpfte Rolle angegeben ist. Wählen Sie über einen Link Ja aus, um die Dokumentation zu einer servicegebundenen Rolle für diesen Service anzuzeigen.
Berechtigungen für serviceverknüpfte Rollen für Amazon Redshift
Amazon Redshift verwendet die serviceverknüpfte Rolle AWSServiceRoleForRedshift – ermöglicht Amazon Redshift das Aufrufen von AWS-Services in Ihrem Namen. Diese verwaltete Richtlinie ist mit der folgenden serviceverknüpften Rolle verbunden: AmazonRedshiftServiceLinkedRolePolicy. Aktualisierungen dieser Richtlinie finden Sie unter Von AWS verwaltete (vordefinierte) Richtlinien für Amazon Redshift.
Die serviceverknüpfte Rolle AWSServiceRoleForRedshift vertraut nur redshift.amazonaws.com, die Rolle zu übernehmen.
Die Berechtigungsrichtlinie der serviceverknüpften Rolle AWSServiceRoleForRedshift ermöglicht Amazon Redshift, für alle verwandten Ressourcen Folgendes durchzuführen:
-
ec2:DescribeVpcs -
ec2:DescribeSubnets -
ec2:DescribeNetworkInterfaces -
ec2:DescribeAddress -
ec2:AssociateAddress -
ec2:DisassociateAddress -
ec2:CreateNetworkInterface -
ec2:DeleteNetworkInterface -
ec2:ModifyNetworkInterfaceAttribute -
ec2:CreateVpcEndpoint -
ec2:DeleteVpcEndpoints -
ec2:DescribeVpcEndpoints -
ec2:ModifyVpcEndpoint ec2:DescribeVpcAttributeec2:DescribeSecurityGroupsec2:DescribeInternetGatewaysec2:DescribeSecurityGroupRulesec2:DescribeAvailabilityZonesec2:DescribeNetworkAclsec2:DescribeRouteTablesec2:AssignIpv6Addressesec2:UnassignIpv6Addresses
Berechtigungen für Netzwerkressourcen
Die folgenden Berechtigungen ermöglichen Aktionen in Amazon EC2 zum Erstellen und Verwalten von Sicherheitsgruppenregeln. Diese Sicherheitsgruppen und Regeln sind speziell dem Amazon-Redshift-Ressourcen-Tag aws:RequestTag/Redshift zugeordnet. Dies beschränkt den Geltungsbereich der Berechtigungen auf bestimmte Amazon-Redshift-Ressourcen.
ec2:CreateSecurityGroupec2:AuthorizeSecurityGroupEgressec2:AuthorizeSecurityGroupIngressec2:RevokeSecurityGroupEgressec2:RevokeSecurityGroupIngressec2:ModifySecurityGroupRulesec2:DeleteSecurityGroup
Berechtigungen für Service Quotas
Die folgenden Berechtigungen ermöglichen es dem Anrufer, Service Quotas abzurufen.
servicequotas:GetServiceQuota
Das folgende JSON-Fragment zeigt die Aktionen und den Ressourcenumfang für Service Quotas.
{ "Sid": "ServiceQuotasToCheckCustomerLimits", "Effect": "Allow", "Action": [ "servicequotas:GetServiceQuota" ], "Resource": [ "arn:aws:servicequotas:*:*:ec2/L-0263D0A3", "arn:aws:servicequotas:*:*:vpc/L-29B6F2EB" ] }
Die Kontingentcodes lauten wie folgt:
L-0263D0A3 – Der Kontingentcode für EC2-VPC-Elastic-IPs.
L-29B6F2EB – Der Kontingentcode für Schnittstellen-VPC-Endpunkte pro VPC.
Weitere Informationen finden Sie unter AWS-Servicekontingente.
Aktionen für die Prüfungsprotokollierung
Aktionen mit dem Präfix logs hängen mit der Audit-Protokollierung und verwandten Funktionen zusammen, insbesondere der Erstellung und Verwaltung von Protokollgruppen und Protokollstreams.
-
logs:CreateLogGroup -
logs:PutRetentionPolicy -
logs:CreateLogStream -
logs:PutLogEvents -
logs:DescribeLogStreams -
logs:GetLogEvents
Der folgende JSON-Code zeigt Aktionen und Ressourcenumfang für Amazon Redshift für die Audit-Protokollierung.
[ { "Sid": "EnableCreationAndManagementOfRedshiftCloudwatchLogGroups", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:PutRetentionPolicy" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/redshift/*" ] }, { "Sid": "EnableCreationAndManagementOfRedshiftCloudwatchLogStreams", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "logs:GetLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/redshift/*:log-stream:*" ] } ]
Weitere Informationen zur Verwendung von serviceverknüpften Rollen und deren Zweck in AWS finden Sie unter Verwenden serviceverknüpfter Rollen. Weitere Informationen zu bestimmten Aktionen und anderen IAM-Ressourcen für Amazon Redshift finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon Redshift.
Aktionen zur Verwaltung von Administratoranmeldeinformationen mit AWS Secrets Manager
Aktionen mit dem Präfix secretsmanager sind für die Verwendung von Amazon Redshift zur Verwaltung von Administratoranmeldeinformationen relevant. Mit diesen Aktionen kann Amazon Redshift Secrets, die Administratoranmeldeinformationen enthalten, über AWS Secrets Manager erstellen und verwalten.
Der folgende JSON-Code zeigt die Aktionen und den Ressourcenumfang für Amazon Redshift an, um Administratoranmeldeinformationen mit AWS Secrets Manager zu verwalten.
[ { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:DeleteSecret", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecret", "secretsmanager:UpdateSecretVersionStage", "secretsmanager:RotateSecret" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:redshift!*" ], "Condition": { "StringEquals": { "secretsmanager:ResourceTag/aws:secretsmanager:owningService": "redshift" } } }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword" ], "Resource": "*" } ]
Aktionen für die Registrierung von Clustern und Serverless-Namespaces im AWS Glue Data Catalog
Die mit dem Präfix glue aufgeführten Aktionen beziehen sich auf den Zugriff auf Kataloge im AWS Glue Data Catalog, die durch die Registrierung bereitgestellter Cluster oder Serverless-Namespaces erstellt wurden. Weitere Informationen finden Sie unter Apache Iceberg compatibility for Amazon Redshift im Datenbankentwicklerhandbuch für Amazon Redshift.
Der folgende JSON-Code zeigt die Aktionen und den Ressourcenumfang für Amazon Redshift für den Zugriff auf Kataloge im AWS Glue Data Catalog:
[ { "Sid": "DiscoverRedshiftCatalogs", "Effect": "Allow", "Action": [ "glue:GetCatalogs", "glue:GetCatalog" ], "Resource": [ "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:catalog/*" ], "Condition": { "Bool": { "glue:EnabledForRedshiftAutoDiscovery": "true" }, "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "LakeFormationGetMetadataAccessForFederatedCatalogs", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": [ "*" ], "Condition": { "Bool": { "lakeformation:EnabledOnlyForMetaDataAccess":"true" }, "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" }, "ForAnyValue:StringEquals": { "aws:CalledVia": "glue.amazonaws.com" } } } } ]
Die Berechtigungen glue:GetCatalog und glue:GetCatalogs haben die Bedingung glue:EnabledForRedshiftAutoDiscovery:true. Dies bedeutet, dass Amazon Redshift IAM-Zugriff für die automatische Erkennung von Katalogen gewährt. Um sich abzumelden, fügen Sie eine AWS Glue-Ressourcenrichtlinie auf Kontoebene hinzu, um den Zugriff von serviceverknüpften Rollen auf die Kataloge selektiv zu verweigern. Da für die serviceverknüpfte Rolle in der Richtlinie bereits eine explizite Zulassungsaktion vorgesehen ist, muss diese Aktion in der Abmelderichtlinie ausdrücklich verweigert werden. Betrachten Sie das folgende Beispiel, in dem eine zusätzliche Richtlinie die automatische Erkennung für Amazon Redshift verweigert:
Einer IAM-Entität das Erstellen von serviceverknüpften AWSServiceRoleForRedshift-Rollen erlauben
{ "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift", "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}} }
Einer IAM-Entität das Löschen von serviceverknüpften AWSServiceRoleForRedshift-Rollen erlauben
Die folgende Berechtigungsanweisung zu den Berechtigungen für diese IAM-Entität hinzufügen:
{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift", "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}} }
Alternativ können Sie eine von AWS verwaltete Richtlinie verwenden, um vollständigen Zugriff
Erstellen einer serviceverknüpften Rolle für Amazon Redshift
Sie müssen die serviceverknüpfte Rolle AWSServiceRoleForRedshift nicht manuell erstellen. Amazon Redshift erstellt die serviceverknüpfte Rolle für Sie. Wenn die serviceverknüpfte Rolle AWSServiceRoleForRedshift aus Ihrem Konto gelöscht wurde, erstellt Amazon Redshift die Rolle, wenn Sie einen neuen Amazon-Redshift-Cluster starten.
Wichtig
Wenn Sie den Amazon-Redshift-Service bereits vor dem 18. September 2017 verwendet haben, dem Datum, ab dem serviceverknüpfte Rollen unterstützt werden, hat Amazon Redshift die Rolle AWSServiceRoleForRedshift in Ihrem Konto erstellt. Weitere Informationen finden Sie unter In meinem IAM-Konto wird eine neue Rolle angezeigt.
Bearbeiten einer serviceverknüpften Rolle für Amazon Redshift
Amazon Redshift erlaubt Ihnen nicht, die serviceverknüpfte Rolle AWSServiceRoleForRedshift zu bearbeiten. Nachdem Sie eine serviceverknüpfte Rolle erstellt haben, können Sie den Namen der Rolle nicht mehr ändern, da verschiedene Entitäten auf die Rolle verweisen könnten. Sie können jedoch die Beschreibung der Rolle mit der IAM-Konsole, der AWS Command Line Interface (AWS CLI) oder der IAM API bearbeiten. Weitere Informationen finden Sie unter Ändern einer Rolle im IAM-Benutzerhandbuch.
Löschen einer serviceverknüpften Rolle für Amazon Redshift
Wenn Sie eine Funktion oder einen Service, die bzw. der eine serviceverknüpfte Rolle erfordert, nicht mehr benötigen, sollten Sie diese Rolle löschen. Auf diese Weise haben Sie keine ungenutzte Entität, die nicht aktiv überwacht oder verwaltet wird.
Bevor Sie die serviceverknüpfte Rolle aus einem Konto löschen können, müssen Sie alle entsprechenden Cluster Ihres Kontos deaktivieren und aus Ihrem Konto löschen. Weitere Informationen finden Sie unter Schließen und Löschen eines Clusters.
Sie können die IAM-Konsole, die AWS CLI oder die IAM-API verwenden, um eine serviceverknüpfte Rolle zu löschen. Weitere Informationen finden Sie unter Löschen einer serviceverknüpften Rolle im IAM-Benutzerhandbuch.