Viele Kunden verwalten Benutzeridentitäten bereits über Identitätsanbieter (IdPs) für Single-Sign-On-Zugriff. Mit einem IdP wie Active Directory Federation Services (AD FS) können Sie den Verbundzugriff einrichten Amazon RedShift Cluster als Mechanismus zur Steuerung von Berechtigungen für die Datenbankobjekte durch Unternehmensgruppen. Dies bietet ein nahtloses Benutzererlebnis und zentralisiert die Verwaltung von Authentifizierung und Berechtigungen für Endbenutzer. Weitere Informationen finden Sie in der Blogbeitragsreihe „Föderierter Zugriff auf Ihren Amazon Redshift-Cluster mit Active Directory Federation Services (AD FS)“ (Teil 1, Teil 2).
Aufgrund der Unterschiede in der Implementierung von Amazon Web Services in China, müssen Kunden die Konfigurationen entsprechend anpassen. Beispielsweise befinden sich die AWS-Regionen China (Peking und Ningxia) in einer separaten AWS-Partition, daher enthalten alle Amazon-Ressourcennamen (ARNs) das Suffix -cn
. AWS China-Regionen werden auch auf einer anderen Domäne gehostet: www.amazonaws.cn.
Dieser Beitrag stellt ein schrittweises Verfahren zum Einrichten des Verbundzugriffs auf Amazon Redshift in AWS-Regionen in China vor. Es zeigt die wichtigsten Unterschiede auf, auf die Sie achten sollten, und bietet eine Anleitung zur Fehlerbehebung für häufige Fehler.
Lösungsüberblick
Das folgende Diagramm veranschaulicht den Prozess von Security Assertion Markup Language 2.0 (SAML)-basierter Verbundzugriff auf Amazon Redshift in AWS-Regionen in China. Der Arbeitsablauf umfasst die folgenden Hauptschritte:
- Der SQL-Client stellt AD FS einen Benutzernamen und ein Kennwort bereit.
- AD FS authentifiziert die Anmeldeinformationen und gibt eine SAML-Antwort zurück Falls erfolgreich.
- Der SQL-Client führt einen API-Aufruf durch AWS-Sicherheitstoken-Service (AWS STS) zu eine bevorzugte Rolle mit SAML einnehmen.
- AWS STS authentifiziert die SAML-Antwort basierend auf dem gegenseitigen Vertrauen und gibt bei Erfolg temporäre Anmeldeinformationen zurück.
- Der SQL-Client kommuniziert mit Amazon Redshift, um zurückzukehren ein Datenbankbenutzer mit temporären Anmeldeinformationen, verwendet es dann, um Datenbankgruppen beizutreten und sich mit der angegebenen Datenbank zu verbinden.
Wir organisieren die exemplarische Vorgehensweise in den folgenden allgemeinen Schritten:
- Konfigurieren Sie eine AD FS-Vertrauensstellung der vertrauenden Seite für AWS-Regionen in China und definieren Sie grundlegende Anspruchsregeln.
- Bereitstellung an AWS Identity and Access Management and (IAM) Identitätsanbieter und Rollen.
- Vervollständigen Sie die Beanspruchungsregeln der verbleibenden Vertrauensstellung der vertrauenden Seite basierend auf den IAM-Ressourcen.
- Verbinden Sie sich mit Amazon Redshift mit föderiertem Zugriff über einen JDBC-basierten SQL-Client.
Voraussetzungen:
Dieser Beitrag setzt voraus, dass Sie die folgenden Voraussetzungen erfüllen:
- Windows Server 2016
- Die Möglichkeit, Benutzer und Gruppen in AD zu erstellen
- Die Möglichkeit, eine Vertrauensstellung der vertrauenden Seite zu konfigurieren und Anspruchsregeln in AD FS zu definieren
- Ein AWS-Konto
- Ausreichende Berechtigungen zum Bereitstellen von IAM-Identitätsanbietern, Rollen, Amazon Virtual Private Cloud (Amazon VPC)-bezogene Ressourcen und ein Amazon Redshift-Cluster über AWS Cloud-Entwicklungskit (AWS-CDK)
Konfigurieren Sie eine AD FS-Vertrauensstellung der vertrauenden Seite, und definieren Sie Anspruchsregeln
Eine Vertrauensstellung der vertrauenden Seite ermöglicht es AWS und AD FS, miteinander zu kommunizieren. Es ist möglich, zwei Vertrauensstellungen der vertrauenden Seite für beide AWS-Regionen in China und AWS-Regionen gleichzeitig in demselben AD FS zu konfigurieren. Für AWS-Regionen in China müssen wir eine andere verwenden SAML-Metadatendokument at https://signin.amazonaws.cn/static/saml-metadata.xml. Die Kennung der vertrauenden Seite für AWS-Regionen in China ist urn:amazon:webservices:cn-north-1
, während das für globale AWS-Regionen der Fall ist urn:amazon:webservices
. Notieren Sie sich diese Kennung, um sie später in diesem Beitrag zu verwenden.
Fügen Sie AD-Gruppen und -Benutzer hinzu
Beim SAML-basierten Verbund übernehmen Endbenutzer eine IAM-Rolle und verwenden sie, um mehreren Datenbankgruppen (DB) beizutreten. Die Berechtigungen für solche Rollen und DB-Gruppen können effektiv von AD-Gruppen verwaltet werden. Wir verwenden verschiedene Präfixe in AD-Gruppennamen, um sie zu unterscheiden, was bei der Zuordnung zu Rollen und Anspruchsregeln für DB-Gruppen hilft. Es ist wichtig, die beiden Arten von AD-Gruppen richtig zu unterscheiden, da sie verschiedenen AWS-Ressourcen zugeordnet sind.
Wir setzen unsere exemplarische Vorgehensweise mit einem Beispiel fort. Angenommen, in der Wirtschaft gibt es zwei Rollen: Data Scientist und Data Engineer, und zwei DB-Gruppen: Onkologie und Pharmazie. Data Scientists können beiden Gruppen beitreten, und Data Engineers können nur der Apothekengruppe beitreten. Auf der AD-Seite definieren wir eine AD-Gruppe für jede Rolle und Gruppe. Auf der AWS-Seite definieren wir eine IAM-Rolle für jede Rolle und eine Amazon Redshift-DB-Gruppe für jede DB-Gruppe. Angenommen, Clement ist Data Scientist und Jimmy Data Engineer, und beide werden bereits von AD verwaltet. Das folgende Diagramm veranschaulicht diese Beziehung.
Du darfst Erstellen Sie die AD-Gruppen und -Benutzer entweder mit den AWS-Befehlszeilenschnittstelle (AWS CLI) oder die AWS-Managementkonsole. Wir stellen Beispielbefehle in der README-Datei in das GitHub Repo.
Unterschritte befolgen a zu o von Schritt 2 ein Einrichten der JDBC- oder ODBC-Single-Sign-On-Authentifizierung mit AD FS um die vertrauende Seite mit dem richtigen SAML-Metadatendokument für AWS-Regionen in China einzurichten und die ersten drei Anspruchsregeln zu definieren (NameId
, RoleSessionName
und Get AD Groups
). Wir fahren fort, nachdem der IAM-Identitätsanbieter und die Rollen bereitgestellt wurden.
Stellen Sie einen IAM-Identitätsanbieter und Rollen bereit
Sie richten das Vertrauen für AD mit AWS ein, indem Sie einen IAM-Identitätsanbieter bereitstellen. Der IAM-Identitätsanbieter und angenommene Rollen sollten sich in einem AWS-Konto befinden, ansonsten erhalten Sie beim föderierten Zugriff die folgende Fehlermeldung: „Prinzipal existiert außerhalb des Kontos der angenommenen Rolle.“ Führen Sie die folgenden Schritte aus, um die Ressourcen bereitzustellen:
- Laden Sie die Metadatendatei unter herunter
https://yourcompany.com/FederationMetadata/2007-06/FederationMetadata.xml
von Ihrem AD FS-Server. - Speichern Sie es lokal unter
/tmp/FederationMetadata.xml
. - Zur kasse den AWS CDK-Code auf GitHub.
- Verwenden Sie AWS CDK, um den benannten Stack bereitzustellen
redshift-cn
:
Das AWS-CDK Version sollte 2.0 oder neuer sein. Zu Testzwecken können Sie die verwenden AdministratorAccess
verwaltete Richtlinie für die Bereitstellung. Verwenden Sie für die Produktionsnutzung ein Profil mit den geringsten Rechten.
Die folgende Tabelle fasst die Ressourcen zusammen, die das AWS CDK-Paket bereitstellt.
Service | Ressource | Zu Zählen | Notizen |
---|---|---|---|
Amazon VPC | VPC | 1 | . |
Teilnetz | 2 | . | |
Internet-Gateway | 1 | . | |
Routentabelle | 1 | . | |
Sicherheitsgruppe | 1 | . | |
IAM | SAML-Identitätsanbieter | 1 | . |
Rollen | 3 | 1 Servicerolle für Cluster 2 föderierte Rollen |
|
Amazon RedShift | Cluster | 1 | 1 Knoten, dc2.large |
AWS Secrets Manager | Die Geheime | 1 | . |
In diesem Beispiel Öffentlich zugänglich -Einstellung des Amazon Redshift-Clusters auf eingestellt ist Aktiviert der Einfachheit halber. In einer Produktionsumgebung sollten Sie diese Einstellung jedoch deaktivieren und den Cluster in einer privaten Subnetzgruppe platzieren. Beziehen auf Wie kann ich von meinem lokalen Computer aus auf einen privaten Amazon Redshift-Cluster zugreifen? um mehr zu erfahren.
Konfigurieren Sie eine Sicherheitsgruppe
Fügen Sie eine Eingangsregel für Ihre IP-Adresse hinzu, um eine Verbindung zum Amazon Redshift-Cluster zuzulassen.
- Suchen Sie die benannte Sicherheitsgruppe
RC Default Security Group
. - Rufen Sie die öffentliche IP-Adresse Ihres Computers ab.
- Fügen Sie eine eingehende Regel für diese IP-Adresse und den Standardport für Amazon Redshift 5439 hinzu.
Vervollständigen Sie die verbleibenden Anspruchsregeln
Nachdem Sie den IAM-Identitätsanbieter und die Rollen bereitgestellt haben, fügen Sie eine Beanspruchungsregel hinzu, um SAML-Rollen zu definieren. Wir fügen eine Kundenanspruchsregel mit dem Namen hinzu Roles
. Es findet AD-Gruppen mit dem Präfix role_
und ersetzt sie durch eine kombinierte ARN-Zeichenfolge. Achten Sie auf die ARNs der Ressourcen, in denen sich die Partition befindet aws-cn
. Ersetzen AWS_ACCOUNT
mit Ihrer AWS-Konto-ID. Die folgende Tabelle zeigt, wie die ausgewählten AD-Gruppen in IAM-Rollen-ARNs umgewandelt werden.
Ausgewählte AD-Gruppe | Transformierter IAM-Rollen-ARN |
---|---|
role_data_scientist |
arn:aws-cn:iam::AWS_ACCOUNT:role/rc_data_scientist |
role_data_engineer |
arn:aws-cn:iam::AWS_ACCOUNT:role/rc_data_engineer |
Um die Beanspruchungsregel hinzuzufügen, öffnen Sie die AD FS-Verwaltungskonsole in Ihrem Windows Server und führen Sie die folgenden Schritte aus:
- Auswählen Vertrauenden Partei Trusts, und wählen Sie dann die vertrauende Seite für AWS China aus.
- Auswählen Anspruchsausstellungsrichtlinie bearbeiten, Dann wählen Rolle hinzufügen.
- Auf dem Anspruchsregelvorlage Menü, wählen Sie Senden Sie Ansprüche mithilfe einer benutzerdefinierten Regel.
- Aussichten für Name der Anspruchsregel, eingeben
Roles
. - Im Benutzerdefinierte Regel Geben Sie im Abschnitt Folgendes ein:
Die optionalen Parameter of DbUser
, AutoCreate
und DbGroups
können entweder über JDBC-Verbindungsparameter oder SAML-Attributwerte bereitgestellt werden. Der Vorteil der Benutzerföderation besteht darin, Benutzer zentral an einem Ort zu verwalten. deshalb, die DbUser
Der Wert sollte automatisch vom SAML-Attribut bereitgestellt werden. Die AutoCreate
Parameter sollte immer sein true
, Andernfalls müssen Sie zuvor DB-Benutzer erstellen. Endlich, das DbGroups
Der Parameter könnte von SAML-Attributen bereitgestellt werden, vorausgesetzt, dass eine solche Beziehung in AD definiert ist.
Zusammenfassend empfehlen wir, mindestens bereitzustellen DbUser
und AutoCreate
in SAML-Attributen, sodass der Endbenutzer Zeit sparen kann, indem er kürzere Verbindungszeichenfolgen erstellt. In unserem Beispiel stellen wir alle drei Parameter über SAML-Attribute bereit.
- Fügen Sie eine Kundenanspruchsregel mit dem Namen hinzu
DbUser
. Wir verwenden eine E-Mail-Adresse als Wert fürDbUser
:
Sie können auch einen Security Accounts Manager (SAM)-Kontonamen wählen, der normalerweise der Benutzername der E-Mail-Adresse ist. Die Verwendung einer E-Mail-Adresse spielt eine wichtige Rolle bei der IAM-Rollenrichtlinieneinstellung. Wir kommen später auf dieses Problem zurück.
- Fügen Sie die benutzerdefinierte Anspruchsregel namens hinzu
AutoCreate
:
- Fügen Sie eine Kundenanspruchsregel mit dem Namen hinzu
DbGroups
. Es findet alle AD-Gruppen mit dem Präfixgroup_
und listet sie als Werte für DbGroups auf:
Sie können die vorangegangene Einstellung auf Korrektheit testen, indem Sie Abrufen der SAML-Antwort über Ihren Browser.
- Besuchen Sie
https://yourcompany.com/adfs/ls/IdpInitiatedSignOn.aspx
Melden Sie sich auf Ihrem Windows-Server mit Benutzer anclement
, und überprüfen Sie, ob die folgenden SAML-Attribute vorhanden sind. Für Benutzerjimmy
, die Rolle istrc_data_engineer
und die DB-Gruppe enthält nurgroup_pharmacy
.
Die vorangehenden SAML-Attributnamen wurden für AWS-Regionen in China als gültig bestätigt. Die URLs enden mit amazon.com
. Es ist falsch, sie zu ändern amazonaws.cn
or amazon.cn
.
Stellen Sie mit einem SQL-Client eine Verbindung zu Amazon Redshift her
Wir verwenden JDBC-basiert SQL-Workbench/J (SQL-Client), um eine Verbindung zum Amazon Redshift-Cluster herzustellen. Amazon Redshift verwendet eine DB-Gruppe, um DB-Benutzer zu sammeln. Die Datenbankrechte werden gemeinsam auf Gruppenebene verwaltet. In diesem Beitrag tauchen wir nicht tief in die Berechtigungsverwaltung ein. Sie müssen jedoch die beiden vorhergehenden DB-Gruppen erstellen.
- Stellen Sie eine Verbindung mit dem bereitgestellten Cluster her und erstellen Sie die Gruppen. Sie können sich über die AWS Management Console verbinden Abfrageeditor mit temporären Zugangsdaten oder über einen SQL-Client mit Datenbankbenutzer
admin
und Passwort. Das Passwort ist gespeichert in AWS Secrets Manager. Möglicherweise benötigen Sie für die oben genannten Vorgänge die entsprechenden Berechtigungen.
- Folgen Sie den Anweisungen in Stellen Sie mithilfe von SQL Workbench/J eine Verbindung zu Ihrem Cluster her um den SQL-Client und den Amazon Redshift JDBC-Treiber herunterzuladen und zu installieren.
Wir empfehlen die JDBC-Treiberversion 2.1 mit AWS SDK-Treiber-abhängigen Bibliotheken.
- Testen Sie, ob der Cluster über seinen Endpunkt verbunden werden kann. Der primäre Benutzername ist
admin
. Sie rufen den geheimen Wert des Cluster-Passworts über Secrets Manager ab. AngebenDSILogLevel
undLogPath
zu Fahrerprotokolle sammeln und helfen bei der Diagnose. Die Verbindungszeichenfolge sieht wie der folgende Code aus. ErsetzenCLUSTER_ENDPOINT
mit dem richtigen Wert und löschen Sie alle Leitungsunterbrecher. Wir haben die Zeile zur besseren Lesbarkeit geteilt.
Für AWS-Regionen in China eine zusätzliche JDBC-Treiberoption loginToRp
muss festgelegt werden, wenn Sie eine separate Vertrauensstellung der vertrauenden Seite für die AWS-Regionen in China einrichten. Wenn ein AD-Benutzer mehr als einer AWS-Rolle zugeordnet ist, verwenden Sie in der Verbindungszeichenfolge preferred_role
um die genaue Rolle anzugeben, die für den Verbundzugriff übernommen werden soll.
- Kopieren Sie den Rollen-ARN direkt und achten Sie auf die
aws-cn
Partition.
Wenn der Benutzer nur einer Rolle zugeordnet ist, kann diese Option weggelassen werden.
- Ersetzen
CLUSTER_ID
mit der richtigen Cluster-ID. Geben Sie als Benutzernamen einyourcompanyclement
; Geben Sie für das Passwort die Anmeldeinformationen von AD ein:
- Wenn Sie verbunden sind, führen Sie die SQL-Anweisung wie im folgenden Screenshot gezeigt aus.
Der Benutzer mit dem Präfix IAMA
gibt an, dass der Benutzer mit Verbundzugriff verbunden und automatisch erstellt wurde.
- Als optionalen Schritt können Sie in der Verbindungszeichenfolge die
DbUser
,AutoCreate
undDbGroups
Parameter.
Parameter aus der Verbindungszeichenfolge stehen vor denen aus SAML-Attributen. Wir empfehlen Ihnen mindestens einzustellen DbUser
und AutoCreate
über SAML-Attribute. Wenn es schwierig ist, DB-Gruppen in AD-Benutzern zu verwalten, oder Sie Flexibilität wünschen, geben Sie an DbGroups
in der Verbindungszeichenfolge. Siehe folgenden Code:
Verwenden Sie einen E-Mail- oder SAM-Kontonamen als DB-Benutzer
Die Rollenrichtlinie folgt der Beispielrichtlinie für die Verwendung von GetClusterCredentials. Es erlaubt weiter redshift:DescribeClusters
auf dem Cluster, da die Rolle den Cluster-Endpunkt und -Port basierend auf seiner Kennung und Region abfragt. Um sicherzustellen, dass der DB-Benutzer derselbe wie der AD-Benutzer ist, verwenden wir in diesem Beitrag die folgende Bedingung, um zu prüfen, wo ROLE_ID
lernen muss die eindeutige Kennung der Rolle:
Die Beispielrichtlinie verwendet die folgende Bedingung:
Der Unterschied ist offensichtlich. Die aws:userid
enthält das RoleSessionName
, das ist die E-Mail-Adresse. Der SAM-Kontoname ist die Zeichenfolge vor @ in der E-Mail-Adresse. Da der Parameter der Verbindungszeichenfolge vor dem SAML-Attributparameter steht, fassen wir die möglichen Fälle wie folgt zusammen:
- Wenn SAML-Attribute enthalten
DbUser
:- Wenn der Bedingungswert ein Domänensuffix enthält:
- Wenn die
DbUser
SAML-Attributwert ist eine E-Mail-Adresse,DbUser
muss in der Verbindungszeichenfolge ohne das Domänensuffix enthalten sein. - Wenn die
DbUser
SAML-Attributwert ist ein SAM-Kontoname,DbUser
kann in der Verbindungszeichenfolge weggelassen werden. Andernfalls darf der Wert kein Domänensuffix enthalten.
- Wenn die
- Wenn der Bedingungswert kein Domänensuffix enthält:
- Wenn die
DbUser
SAML-Attributwert ist eine E-Mail-Adresse,DbUser
kann in der Verbindungszeichenfolge weggelassen werden. Andernfalls muss der Wert ein Domänensuffix enthalten. - Wenn die
DbUser
SAML-Attributwert ist ein SAM-Kontoname,DbUser
muss in der Verbindungszeichenfolge mit einem Domänensuffix enthalten sein.
- Wenn die
- Wenn der Bedingungswert ein Domänensuffix enthält:
- Wenn SAML-Attribute nicht enthalten
DbUser
:- Wenn der Bedingungswert ein Domänensuffix enthält,
DbUser
muss in der Verbindungszeichenfolge ohne Domänensuffix enthalten sein. - Wenn der Bedingungswert kein Domänensuffix enthält,
DbUser
kann in der Verbindungszeichenfolge weggelassen werden, weilRoleSessionName
Wert, als der die E-Mail-Adresse fungiertDbUser
. Andernfalls muss der Wert ein Domänensuffix enthalten.
- Wenn der Bedingungswert ein Domänensuffix enthält,
Problemlösung
Der föderierte Zugriff auf Amazon Redshift ist ein nicht trivialer Prozess. Es besteht jedoch aus kleineren Schritten, die wir teilen und erobern können, wenn Probleme auftreten. Siehe Zugriffsdiagramm in der Lösungsübersicht. Wir können den Prozess in drei Sätze aufteilen:
- Ist der SAML-basierte Verbund erfolgreich? Überprüfen Sie dies, indem Sie die Seite für einmaliges Anmelden von AD FS besuchen, und stellen Sie sicher, dass Sie sich mit der Verbundrolle bei der Konsole anmelden können. Konfigurieren Sie die vertrauende Seite mit dem AWS China-spezifischen Metadatendokument? Rufen Sie die SAML-Antwort ab und prüfen Sie, ob das Ziel eine ist https://signin.amazonaws.cn/saml. Sind der ARN des SAML-Anbieters und die ARNs der IAM-Rolle korrekt? Überprüfen Sie, ob die Vertrauensbeziehung der Rolle den richtigen Wert für enthält
SAML:aud
. Weitere mögliche Prüfpunkte finden Sie unter Fehlerbehebung beim SAML 2.0-Verbund mit AWS. - Sind die Rollenrichtlinien korrekt? Wenn der SAML-basierte Verbund erfolgreich ist, überprüfen Sie, ob die Rollenrichtlinien korrekt sind. Vergleichen Sie Ihre mit denen in diesem Beitrag. Hast du benutzt
aws
woheraws-cn
sollte benutzt werden? Wenn die Richtlinienbedingung ein Domänensuffix enthält, ist es das richtige Domänensuffix? Sie können das verwendete Domänensuffix abrufen, wenn Sie die Fehlermeldung erhalten, dass die angenommene Rolle nicht berechtigt ist, eine Aktion auszuführen. - Verbindet sich der SQL-Client erfolgreich? Ist die Cluster-ID korrekt? Stellen Sie sicher, dass Ihre Verbindungszeichenfolge die enthält
loginToRp
Option und verweist auf die AWS China Relying Party. Wenn mehrere IAM-Rollen zugeordnet sind, vergewissern Sie sichpreferred_role
ist einer von ihnen mit dem richtigen Rollen-ARN. Sie können die Liste der Rollen in der SAML-Antwort abrufen. Versuchen Sie einzustellenssl_insecure
zum Debuggen vorübergehend auf true. Überprüfen Sie den vorherigen Unterabschnitt und stellen Sie sicher, dass dieDbUser
ordnungsgemäß verwendet oder entsprechend eingestellt wirdDbUser
SAML-Attribut und Bedingungswert füraws:user
. Schalten Sie die Treiberprotokolle ein und erhalten Sie dort Debug-Hinweise. Manchmal müssen Sie den SQL-Client möglicherweise neu starten, um den Cache zu löschen und es erneut zu versuchen.
Sicherheitsbedenken
In einer Produktionsumgebung empfehlen wir die Anwendung der folgenden Sicherheitseinstellungen, die in diesem Beitrag nicht verwendet werden.
Führen Sie für den Amazon Redshift-Cluster Folgendes aus:
- Deaktivieren Sie die öffentlich zugängliche Option und platzieren Sie den Cluster in einer privaten oder isolierten Subnetzgruppe
- Verschlüsseln Sie den Cluster beispielsweise mit einem vom Kunden verwalteten AWS-Schlüsselverwaltungsdienst (AWS KMS) Schlüssel
- Aktivieren Sie erweitertes VPC-Routing, sodass das Netzwerk Ihre VPC nicht verlässt
- Konfigurieren Sie den Cluster für erfordert Secure Sockets Layer (SSL) und verwenden Sie die unidirektionale SSL-Authentifizierung
Für die IAM-Verbundrollen:
- Geben Sie die genauen DB-Gruppen für die Aktion an
redshift:JoinGroup
. Wenn Sie einen Platzhalter verwenden möchten, stellen Sie sicher, dass er keine unerwünschten DB-Gruppen zulässt. - Shau
StringEquals
füraws:user
gegen die Rollen-ID zusammen mit dem Amazon Redshift-DB-Benutzer. Dieser Zustand kann überprüft werdenGetClusterCredentials
,CreateClusterUser
undJoinGroup
Aktionen. Ausführliche Codes finden Sie im Beispielcode.
In Amazon Redshift wird die DB-Gruppe verwendet, um Berechtigungen für eine Sammlung von DB-Benutzern zu verwalten. Ein DB-Benutzer tritt einigen DB-Gruppen während einer Anmeldesitzung bei und erhält die den Gruppen zugeordneten Privilegien. Wie bereits erwähnt, können Sie entweder den SAML-Attributwert oder die Verbindungseigenschaft verwenden, um die DB-Gruppen anzugeben. Der Amazon Redshift-Treiber zieht den Wert aus der Verbindungszeichenfolge dem aus dem SAML-Attribut vor. Folglich kann der Endbenutzer die DB-Gruppen in der Verbindungszeichenfolge überschreiben. Um die Privilegien einzuschränken, die einem DB-Benutzer gewährt werden können, muss die IAM-Rollenrichtlinie daher einschränken, welchen DB-Gruppen der DB-Benutzer sicher beitreten darf, andernfalls besteht möglicherweise ein Sicherheitsrisiko. Das folgende Richtlinien-Snippet zeigt ein solches Risiko. Folgen Sie immer der Prinzip der geringsten Privilegien beim Definieren von Berechtigungsrichtlinien.
Aufräumen
Führen Sie den folgenden Befehl aus, um die Ressourcen zu zerstören und keine Gebühren mehr zu erheben:
Entfernen Sie die in AD FS erstellten Benutzer und Gruppen. Entfernen Sie abschließend die Vertrauensstellung der vertrauenden Seite für AWS-Regionen in China in Ihrem AD FS, wenn Sie sie nicht mehr benötigen.
Zusammenfassung
In diesem Beitrag haben wir Sie durch die Verbindung mit Amazon Redshift in China mit föderiertem Zugriff auf Basis von AD FS geführt. AWS-Regionen in China befinden sich in einer anderen Partition als andere AWS-Regionen, daher müssen Sie bei der Konfiguration besonders darauf achten. Zusammenfassend müssen Sie die AWS-Ressourcen-ARNs mit dem überprüfen aws-cn
Partition, SAML-basierter Verbund mit dem AWS China-spezifischen Metadatendokument und ein Amazon Redshift JDBC-Treiber mit zusätzlichen Verbindungsoptionen. In diesem Beitrag werden auch verschiedene Verwendungsszenarien für die besprochen redshift:Dbuser
-Parameter und bietet allgemeine Vorschläge zur Fehlerbehebung.
Weitere Informationen finden Sie im Abschnitt Handbuch zur Amazon Redshift-Clusterverwaltung. Den für diesen Beitrag verwendeten Code finden Sie im Folgenden GitHub-Repository.
Über die Autoren
Wenjun Yuan ist Cloud Infra Architect bei AWS Professional Services mit Sitz in Chengdu, China. Er arbeitet mit verschiedenen Kunden zusammen, von Startups bis hin zu internationalen Unternehmen, und hilft ihnen, Lösungen mit modernsten Cloud-Technologien zu entwickeln und zu implementieren und bei ihren Cloud-Explorationen mehr zu erreichen. In seiner Freizeit liest er gerne Gedichte und reist um die Welt.
Khoa Nguyen ist Big-Data-Architekt bei AWS Professional Services. Er arbeitet mit großen Unternehmenskunden und AWS-Partnern zusammen, um die Geschäftsergebnisse der Kunden zu beschleunigen, indem er Fachwissen in Big Data und AWS-Services bereitstellt.
Yewei Li ist ein Datenarchitekt bei AWS Professional Services mit Sitz in Shanghai, China. Er arbeitet mit verschiedenen Unternehmenskunden zusammen, um Data Warehousing- und Data Lake-Lösungen auf AWS zu entwerfen und zu erstellen. In seiner Freizeit liest er gerne und treibt Sport.
- Coinsmart. Europas beste Bitcoin- und Krypto-Börse.
- Platoblockkette. Web3-Metaverse-Intelligenz. Wissen verstärkt. DEN FREIEN ZUGANG.
- CryptoHawk. Altcoin-Radar. Kostenlose Testphase.
- Quelle: https://aws.amazon.com/blogs/big-data/federated-access-to-amazon-redshift-clusters-in-aws-china-regions-with-active-directory-federation-services/