Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im Blog-Posting
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Azure
Sie können Microsoft Azure AD als Identitätsanbieter verwenden, um auf Ihren Amazon-Redshift-Cluster zuzugreifen. Dieses Tutorial zeigt Ihnen, wie Sie Azure als Identitätsanbieter (IdP) verwenden können, um auf Ihren Amazon-Redshift-Cluster zuzugreifen.
Weitere Informationen zum Verbinden des Amazon-Redshift-Zugriffs mit Microsoft-Azure-AD-Single-Sign-On finden Sie im folgenden Video.
Schritt 1: Richten Sie Azure und Ihr AWS Konto so ein, dass sie sich gegenseitig vertrauen
Im folgenden Verfahren wird beschrieben, wie Sie eine Vertrauensstellung einrichten.
So richten Sie Azure AD und Ihr AWS Konto so ein, dass sie sich gegenseitig vertrauen
-
Erstellen oder verwenden Sie einen vorhandenen Amazon-Redshift-Cluster, mit dem sich Ihre Azure-AD-Benutzer verbinden können. Um die Verbindung zu konfigurieren, werden bestimmte Eigenschaften dieses Clusters benötigt, z. B. die Clusterkennung. Weitere Informationen finden Sie unter Erstellen eines Clusters.
-
Richten Sie ein Azure Active Directory, Gruppen und Benutzer ein, die AWS im Microsoft Azure-Portal verwendet werden.
-
Fügen Sie Amazon Redshift als Unternehmensanwendung auf dem Microsoft Azure-Portal hinzu, um es für Single Sign-On an der AWS Konsole und die Verbundanmeldung bei Amazon Redshift zu verwenden. Wählen Sie Enterprise application (Unternehmensanwendung).
-
Wählen Sie +New Application (+Neue Anwendung). Die Seite „Add an application (Anwendung hinzufügen)“ wird angezeigt.
-
Suchen Sie im Suchfeld nach
AWS. -
Wählen Sie Amazon Web Services (AWS) und dann Add (Hinzufügen) aus. Dadurch wird die AWS -Anwendung erstellt.
-
Wählen Sie unter Manage (Verwalten) die Option Single Sign-onaus.
-
Wählen Sie SAML. Die Seite „Amazon Web Services (AWS) | SAML-based Sign-on“ wird angezeigt.
-
Wählen Sie Yes (Ja) um zur Seite „Setup Single-Sign-On with SAML (Single-Sign-On mit SAML einrichten)“ fortzufahren. Auf dieser Seite wird die Liste vorkonfigurierter Attribute angezeigt, die sich auf Single Sign-On beziehen.
-
Wählen Sie für Basic SAML Configuration (Grundlegende SAML-Konfiguration) das Bearbeitungssymbol und dann Save (Speichern).
-
Wenn Sie für mehrere Anwendungen konfigurieren, geben Sie einen ID-Wert ein. Geben Sie z. B. ei
. Beachten Sie, dass ab der zweiten Anwendung dieses Format mit einem # -Zeichen verwendet werden muss, um einen eindeutigen SPN-Wert anzugeben.https://signin.aws.amazon.com/saml#2 -
Wählen Sie im Abschnitt User Attributes and Claims (Benutzerattribute und Anträge) das Bearbeitungssymbol aus.
Standardmäßig sind der Unique User Identifier (UID), die Rolle und die Ansprüche vorkonfiguriert RoleSessionName. SessionDuration
-
Wählen Sie + Add new claim (+ Neuen Antrag hinzufügen), um einen Antrag für Datenbankbenutzer hinzuzufügen.
Geben Sie unter Name
DbUserein.Geben Sie für Namespace
https://redshift.amazon.com/SAML/Attributesein.Wählen Sie unter Source (Quelle) die Option Attribute (Attribut) aus.
Wählen Sie für Source attribute (Quellattribut) user.userprincipalname aus. Wählen Sie dann Save (Speichern) aus.
-
Wählen Sie + Neuen Anspruch hinzufügen, um einen Anspruch hinzuzufügen. AutoCreate
Geben Sie unter Name
AutoCreateein.Geben Sie für Namespace
https://redshift.amazon.com/SAML/Attributesein.Wählen Sie unter Source (Quelle) die Option Attribute (Attribut) aus.
Wählen Sie für Source attribute (Quellattribut) „true“. Wählen Sie dann Save (Speichern) aus.
Hier ist
Ihr AWS -Konto,123456789012ist eine von Ihnen erstellte IAM-Rolle undAzureSSOist der IAM-Anbieter.AzureADProviderName des Antrags Wert Eindeutige Benutzer-ID (Namens-ID)
user.userprincipalname
https://aws.amazon.com/SAML/Attributes/SessionDuration
„900“
https://aws.amazon.com/SAML/Attributes/Role
arn:aws:iam: :role/, arn:aws:iam: :saml-provider/
123456789012AzureSSO123456789012AzureADProviderhttps://aws.amazon.com/SAML/Attributes/RoleSessionName
user.userprincipalname
https://redshift.amazon.com/SAML/Attributes/AutoCreate
„true“
https://redshift.amazon.com/SAML/Attributes/DbGroups
user.assignedroles
https://redshift.amazon.com/SAML/Attributes/DbUser
user.userprincipalname
-
Fügen Sie unter App Registration (App-Registrierung) >
> Authentication (Authentifizierung) die Option Mobile And Desktop Application (Mobile und Desktop-Anwendung) hinzu. Geben Sie die URL als „http://localhost/redshift/“ an.your-application-name -
Wählen Sie im Abschnitt SAML Signing Certificate (SAML-Signaturzertifikat) die Option Download (Herunterladen) aus, um die XML-Datei für die Verbundmetadaten herunterzuladen und zu speichern, die beim Erstellen eines IAM-SAML-Identitätsanbieters verwendet werden soll. Diese Datei wird verwendet, um die Single-Sign-On-Verbundidentität zu erstellen.
-
Erstellen Sie auf der IAM-Konsole einen IAM SAML-Identitätsanbieter. Das Metadatendokument, das Sie bereitstellen, ist die XML-Datei für Verbundmetadaten, die Sie beim Einrichten der Azure Enterprise-Anwendung gespeichert haben. Ausführliche Schritte finden Sie unter Erstellen und Verwalten eines IAM-Identitätsanbieters (Konsole) im IAM-Benutzerhandbuch.
-
Erstellen Sie auf der IAM-Konsole eine IAM-Rolle für SAML 2.0-Verbund. Detaillierte Schritte finden Sie unter Erstellen einer Rolle für SAML im IAM-Benutzerhandbuch.
Erstellen Sie eine IAM-Richtlinie, die Sie an die IAM-Rolle anhängen können, die Sie für den SAML 2.0-Verbund auf der IAM-Konsole erstellt haben. Ausführliche Schritte finden Sie unter Erstellen von IAM-Richtlinien (Konsole) im IAM-Benutzerhandbuch.
Ändern Sie die folgende Richtlinie (im JSON-Format) für Ihre Umgebung:
Ersetzen Sie die AWS Region Ihres Clusters durch.
us-west-1Ersetzen Sie Ihr AWS Konto durch
.123456789012Ersetzen Sie
durch Ihre Cluster-ID (odercluster-identifier*für alle Cluster).Ersetzen Sie Ihre Datenbank (oder
*alle Datenbanken) durch.devErsetzen Sie den eindeutigen Bezeichner Ihrer IAM-Rolle durch
.AROAJ2UCCR6DPCEXAMPLEGeben Sie anstelle von Ihre Mandanten- oder Unternehmens-E-Mail-Domäne ein
.example.comGeben Sie anstelle von die Datenbankgruppe ein, der Sie den Benutzer zuweisen möchten
.my_dbgroup
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": [ "arn:aws:redshift:us-west-1:123456789012:dbname:cluster-identifier/dev", "arn:aws:redshift:us-west-1:123456789012:dbuser:cluster-identifier/${redshift:DbUser}", "arn:aws:redshift:us-west-1:123456789012:cluster:cluster-identifier" ], "Condition": { "StringEquals": { "aws:userid": "AROAJ2UCCR6DPCEXAMPLE:${redshift:DbUser}@example.com" } } }, { "Effect": "Allow", "Action": "redshift:CreateClusterUser", "Resource": "arn:aws:redshift:us-west-1:123456789012:dbuser:cluster-identifier/${redshift:DbUser}" }, { "Effect": "Allow", "Action": "redshift:JoinGroup", "Resource": "arn:aws:redshift:us-west-1:123456789012:dbgroup:cluster-identifier/my_dbgroup" }, { "Effect": "Allow", "Action": [ "redshift:DescribeClusters", "iam:ListRoles" ], "Resource": "*" } ] }Diese Richtlinie gewährt Berechtigungen wie folgt:
Der erste Abschnitt erteilt der API-Operation
GetClusterCredentialsdie Berechtigung, temporäre Anmeldeinformationen für den angegebenen Cluster abzurufen. In diesem Beispiel ist die Ressourcemit Datenbankcluster-identifierim Kontodevund in AWS -Region123456789012. Die Klauselus-west-1${redshift:DbUser}ermöglicht es nur Benutzern, die dem in Azure AD angegebenenDbUser-Wert entsprechen, eine Verbindung herzustellen.Die Bedingungsklausel erzwingt, dass nur bestimmte Benutzer temporäre Anmeldeinformationen erhalten. Dies sind Benutzer unter der Rolle, die durch die eindeutige ID der Rolle
im IAM-Konto angegeben wird, das durch eine E-Mail-Adresse in der E-Mail-Domäne Ihres Unternehmens identifiziert wird. Weitere Informationen zu Unique IDs finden Sie unter Unique IDs im IAM-Benutzerhandbuch.AROAJ2UCCR6DPCEXAMPLEIhr Setup mit Ihrem IdP (in diesem Fall Azure AD) bestimmt, wie die Bedingungsklausel geschrieben wird. Wenn die E-Mail Ihres Mitarbeiters
johndoe@example.comlautet, stellen Sie${redshift:DbUser}zuerst auf das Superfeld ein, das dem Benutzernamenjohndoedes Mitarbeiters entspricht. Stellen Sie dann das AWS -SAML-FeldRoleSessionNameauf das Superfeld ein, das mit der Mitarbeiter-E-Mail-Adressejohndoe@example.comübereinstimmt, damit diese Bedingung funktioniert. Berücksichtigen Sie bei diesem Ansatz Folgendes:Wenn Sie
${redshift:DbUser}als E-Mail des Mitarbeiters festlegen, entfernen Sie das@example.comim JSON-Beispiel,um demRoleSessionNamezu entsprechen.Wenn Sie die
RoleSessionIdauf nur den Benutzernamen des Mitarbeiters eingestellt haben, entfernen Sie die@example.comim Beispiel, um demRoleSessionNamezu entsprechen.Im JSON-Beispiel sind
${redshift:DbUser}undRoleSessionNamebeide auf die E-Mail des Mitarbeiters festgelegt. In diesem JSON-Beispiel wird der Amazon-Redshift-Datenbankbenutzername mit@example.comverwendet, um den Benutzer für den Zugriff auf den Cluster anzumelden.
Der zweite Abschnitt erteilt die Berechtigung zum Erstellen eines
dbuser-Namens im angegebenen Cluster. In diesem Beispiel beschränkt JSON die Erstellung auf${redshift:DbUser}.Der dritte Abschnitt erteilt die Berechtigung zur Angabe, welcher
dbgroupein Benutzer beitreten kann. In diesem JSON-Beispiel kann ein Benutzer der Gruppemy_dbgroupim angegebenen Cluster beitreten.Der vierte Abschnitt berechtigt Aktionen, die der Benutzer für alle Ressourcen ausführen kann. In diesem JSON-Beispiel können Benutzer anrufen,
redshift:DescribeClustersum Clusterinformationen wie den Cluster-Endpunkt, die AWS Region und den Port abzurufen. Auch ermöglicht es Benutzern,iam:ListRolesaufzurufen, um zu überprüfen, welche Rollen ein Benutzer übernehmen kann.
Schritt 2: Einrichten von JDBC oder ODBC für die Authentifizierung bei Azure
Fehlerbehebung
Beachten Sie zur Behebung von Problemen mit dem Browser-Azure-AD-Plugin Folgendes.
-
Zur Verwendung des Browser-Azure AD-Plug-ins müssen Sie die in der Anforderung angegebene Antwort-URL so festlegen, dass sie mit der für Ihre Anwendung konfigurierten Antwort-URL übereinstimmt. Navigieren Sie im Microsoft Azure-Portal zur Seite Set up Single Sign-On with SAML (Single Sign-On mit SAML einrichten). Überprüfen Sie dann, ob der Wert unter Reply URL (Antwort-URL) auf „http://localhost/redshift/“ festgelegt ist.
-
Wenn Sie einen IdP-Mandantenfehler erhalten, überprüfen Sie, ob der Name unter IdP Tenant (IdP-Mandant mit dem Domänennamen übereinstimmt, den Sie ursprünglich zum Einrichten von Active Directory in Microsoft Azure verwendet haben.
Navigieren Sie unter Windows zum Bereich Connection Settings (Verbindungseinstellungen) der Seite Amazon Redshift ODBC DSN Setup (DSN-Einrichtung von Amazon-Redshift-ODBC). Überprüfen Sie dann, ob der für den IdP (Azure) konfigurierte Mandantenname Ihres Unternehmens mit dem Domänennamen übereinstimmt, den Sie ursprünglich zum Einrichten von Active Directory in Microsoft Azure verwendet haben.
Suchen Sie unter macOS und Linux die Datei odbc.ini. Überprüfen Sie dann, ob der für den IdP (Azure) konfigurierte Mandantenname Ihres Unternehmens mit dem Domänennamen übereinstimmt, den Sie ursprünglich zum Einrichten von Active Directory in Microsoft Azure verwendet haben.
-
Wenn Sie eine Fehlermeldung erhalten, dass die in der Anfrage angegebene Antwort-URL nicht mit der für Ihre Anwendung URLs konfigurierten Antwort übereinstimmt, überprüfen Sie, ob die Weiterleitung URIs mit der Antwort-URL übereinstimmt.
Navigieren Sie im Microsoft Azure-Portal zur Seite App registration (App-Registrierung) Ihrer Anwendung. Überprüfen Sie dann, ob die Weiterleitung URIs mit der Antwort-URL übereinstimmt.
-
Wenn Sie einen unerwarteten Fehler wegen fehlender Autorisierung erhalten, überprüfen Sie, ob Sie die Konfiguration der Mobil- und Desktopanwendungen abgeschlossen haben.
Navigieren Sie im Microsoft Azure-Portal zur Seite App registration (App-Registrierung) Ihrer Anwendung. Gehen Sie dann zu Authentifizierung und überprüfen Sie, ob Sie die Mobil- und Desktop-Anwendungen so konfiguriert haben, dass sie http://localhost/redshift/ als Umleitung verwenden URIs.