Konfigurieren von Authentifizierung und SSL - Amazon Redshift

Konfigurieren von Authentifizierung und SSL

Um Daten vor unbefugtem Zugriff zu schützen, erfordern Amazon-Redshift-Datenspeicher, dass alle Verbindungen mit Benutzeranmeldeinformationen authentifiziert werden. Einige Datenspeicher erfordern auch, dass Verbindungen über das Secure Sockets Layer (SSL)-Protokoll hergestellt werden, entweder mit oder ohne unidirektionaler Authentifizierung.

Die Amazon-Redshift-JDBC-Treiberversion 2.1 bietet volle Unterstützung für diese Authentifizierungsprotokolle.

Die SSL-Version, die der Treiber unterstützt, hängt von der JVM-Version ab, die Sie verwenden. Informationen zu den SSL-Versionen, die von jeder Java-Version unterstützt werden, finden Sie unter Diagnose von TLS, SSL und HTTPS im Java Platform Group Product Management Blog.

Die SSL-Version, die für die Verbindung verwendet wird, ist die höchste Version, die sowohl vom Treiber als auch vom Server unterstützt wird, die zum Zeitpunkt der Verbindung bestimmt wird.

Konfigurieren Sie die Amazon-Redshift-JDBC-Treiberversion 2.1 für die Authentifizierung Ihrer Verbindung gemäß den Sicherheitsanforderungen des Amazon-Redshift-Servers, mit dem Sie eine Verbindung herstellen.

Sie müssen immer Ihren Benutzernamen und Ihr Passwort für Amazon Redshift angeben, um die Verbindung zu authentifizieren. Abhängig davon, ob SSL auf dem Server aktiviert und erforderlich ist, müssen Sie den Treiber möglicherweise auch für die Verbindung über SSL konfigurieren. Möglicherweise müssen Sie eine unidirektionale SSL-Authentifizierung verwenden, damit der Client (der Treiber selbst) die Identität des Servers überprüft.

Sie geben die Konfigurationsinformationen an den Treiber in der Verbindungs-URL an. Weitere Informationen zur Syntax der Verbindungs-URL finden Sie unter Erstellen der Verbindungs-URL.

SSL gibt TLS/SSL an, sowohl Transport Layer Security als auch Secure Sockets Layer. Der Treiber unterstützt in der Branche übliche Versionen von TLS/SSL.

Nur mit Benutzername und Passwort

Wenn der Server, zu dem Sie eine Verbindung herstellen, kein SSL verwendet, müssen Sie nur Ihren Benutzernamen und Ihr Passwort angeben, um die Verbindung zu authentifizieren.

So konfigurieren Sie die Authentifizierung nur mit Ihrem Benutzernamen und Passwort

  1. Legen Sie den Wert für die Eigenschaft UID auf Ihren Benutzernamen fest, um auf den Amazon-Redshift-Server zuzugreifen.

  2. Legen Sie die Eigenschaft PWD auf das Passwort fest, das Ihrem Benutzernamen entspricht.

Verwenden von SSL ohne Identitätsüberprüfung

Wenn der Server, zu dem Sie eine Verbindung herstellen, SSL verwendet, aber keine Identitätsüberprüfung erfordert, können Sie den Treiber so konfigurieren, dass er eine nicht validierende SSL-Factory verwendet.

So konfigurieren Sie eine SSL-Verbindung ohne Identitätsprüfung

  1. Legen Sie den Wert für die Eigenschaft UID auf Ihren Benutzernamen fest, um auf den Amazon-Redshift-Server zuzugreifen.

  2. Legen Sie die Eigenschaft PWD auf das Passwort fest, das Ihrem Benutzernamen entspricht.

  3. Legen Sie die Eigenschaft SSLFactory auf com.amazon.redshift.ssl.NonValidatingFactory fest.

Verwenden einer unidirektionalen SSL-Authentifizierung

Wenn der Server, zu dem Sie eine Verbindung herstellen, SSL verwendet und über ein Zertifikat verfügt, können Sie den Treiber so konfigurieren, dass er die Identität des Servers mithilfe einer unidirektionalen Authentifizierung überprüft.

Für die unidirektionale Authentifizierung ist ein signiertes, vertrauenswürdiges SSL-Zertifikat erforderlich, um die Identität des Servers zu überprüfen. Sie können den Treiber für die Verwendung eines bestimmten Zertifikats konfigurieren oder auf einen TrustStore zugreifen, der das entsprechende Zertifikat enthält. Wenn Sie kein Zertifikat oder keinen TrustStore angeben, verwendet der Treiber den standardmäßigen Java TrustStore (normalerweise jssecacerts oder cacerts).

So konfigurieren Sie die unidirektionale SSL-Authentifizierung

  1. Legen Sie den Wert für die Eigenschaft UID auf Ihren Benutzernamen fest, um auf den Amazon-Redshift-Server zuzugreifen.

  2. Legen Sie die Eigenschaft PWD auf das Passwort fest, das Ihrem Benutzernamen entspricht.

  3. Legen Sie die Eigenschaft SSL auf true fest.

  4. Legen Sie die Eigenschaft SSLRootCert auf den Speicherort des CA-Stammzertifikats fest.

  5. Wenn Sie keinen der standardmäßigen Java TrustStores verwenden, führen Sie einen der folgenden Schritte aus:

    • Um ein Serverzertifikat anzugeben, legen Sie die Eigenschaft SSLRootCert auf den vollständigen Pfad des Zertifikats fest.

    • So geben Sie einen TrustStore an:

      1. Verwenden Sie das keytool-Programm, um das Serverzertifikat dem TrustStore hinzuzufügen, den Sie verwenden möchten.

      2. Geben Sie den TrustStore und das Passwort an, das beim Starten der Java-Anwendung mit dem Treiber verwendet werden soll. Beispiel:

        -Djavax.net.ssl.trustStore=[TrustStoreName] -Djavax.net.ssl.trustStorePassword= [TrustStorePassword]
  6. Wählen Sie eine aus:

    • Um das Zertifikat zu validieren, legen Sie die Eigenschaft SSLMode auf verify-ca fest.

    • Um das Zertifikat zu validieren und den Hostnamen im Zertifikat zu verifizieren, legen Sie die Eigenschaft SSLMode auf verify-full fest.

Konfigurieren der IAM-Authentifizierung

Wenn Sie eine Verbindung mit einem Amazon-Redshift-Server über die IAM-Authentifizierung herstellen, legen Sie die folgenden Eigenschaften als Teil Ihrer Datenquellen-Verbindungszeichenfolge fest.

Weitere Informationen zur IAM-Authentifizierung finden Sie unter Identity and Access Management in Amazon Redshift.

Verwenden Sie für die Verwendung der IAM-Authentifizierung eines der folgenden Verbindungszeichenfolgenformate:

Verbindungszeichenfolge Description (Beschreibung)

jdbc:redshift:iam:// [host]:[port]/[db]

Eine reguläre Verbindungszeichenfolge. Der Treiber leitet die ClusterID und die Region vom Host ab.

jdbc:redshift:iam:// [cluster-id]: [region]/[db]

Der Treiber ruft Hostinformationen unter Berücksichtigung der ClusterID und der Region ab.

jdbc:redshift:iam:// [host]/[db]

Der Treiber ist standardmäßig auf Port 5439 eingestellt und leitet die ClusterID und die Region vom Host ab.

Angeben von Profilen

Wenn Sie IAM-Authentifizierung verwenden, können Sie zusätzliche erforderliche oder optionale Verbindungseigenschaften unter einem Profilnamen angeben. Dadurch können Sie vermeiden, dass bestimmte Informationen direkt in die Verbindungszeichenfolge eingefügt werden. Sie geben den Profilnamen in der Verbindungszeichenfolge mithilfe der Eigenschaft Profile an.

Profile können der AWS-Anmeldeinformationsdatei hinzugefügt werden. Das Standardverzeichnis für diese Datei ist: .: ~/.aws/credentials

Sie können den Standardwert ändern, indem Sie den Pfad in der folgenden Umgebungsvariablen festlegen: AWS_CREDENTIAL_PROFILES_FILE

Weitere Informationen über Profile finden Sie unter Arbeiten mit AWS-Anmeldeinformationen im AWS SDK for Java.

Verwenden von Anmeldeinformation eines Instance-Profils

Wenn Sie eine Anwendung auf einer Amazon-EC2-Instance ausführen, die einer IAM-Rolle zugeordnet ist, können Sie eine Verbindung mit den Anmeldeinformationen des Instance-Profils herstellen.

Verwenden Sie dazu eines der IAM-Verbindungszeichenfolgenformate in der vorhergehenden Tabelle und legen Sie die Verbindungseigenschaft dbuser auf den Amazon-Redshift-Benutzernamen fest, mit dem Sie eine Verbindung herstellen.

Weitere Informationen zu Instance-Profilen finden Sie unter Zugriffsverwaltung im IAM-Benutzerhandbuch.

Verwenden von Anmeldeinformationsanbietern

Der Treiber unterstützt auch Plug-Ins für Anmeldeinformationen von den folgenden Services:

  • Active Directory Federation Service (ADFS)

  • JSON Web Tokens (JWT) Service

  • Microsoft Azure Active Directory (AD) Service und Browser Microsoft Azure Active Directory (AD) Service

  • Okta Service

  • PingFederate Service

  • Browser-SAML für SAML-Services wie Okta, Ping oder ADFS

Wenn Sie einen dieser Services verwenden, muss die Verbindungs-URL die folgenden Eigenschaften angeben:

  • Plugin_Name – Der vollqualifizierte Klassenpfad für Ihre Anmeldeinformationsanbieter-Plug-In-Klasse.

  • IdP_Host: – Der Host für den Service, den Sie zur Authentifizierung bei Amazon Redshift verwenden.

  • IdP-Port – Der Port, auf den der Host für den Authentifizierungsdienst wartet. Nicht erforderlich für Okta.

  • User – Der Benutzername für den idp_host-Server.

  • Password – Das Passwort, das mit dem idp_host-Benutzernamen verknüpft ist.

  • DbUser— Der Amazon-Redshift-Benutzername, unter dem Sie eine Verbindung herstellen.

  • SSL_Insecure – gibt an, ob das IDP-Serverzertifikat verifiziert werden soll.

  • Client_ID – Die Client-ID, die dem Benutzernamen im Azure-AD-Portal zugeordnet ist. Wird nur für Azure AD verwendet.

  • Client_Secret – Das Client-Secret, das der Benutzer-ID im Azure-AD-Portal zugeordnet ist. Wird nur für Azure AD verwendet.

  • IdP_Tenant— Die Azure-AD-Mandanten-ID für Ihre Amazon-Redshift-Anwendung. Wird nur für Azure AD verwendet.

  • App_ID – Die Okta-App-ID für Ihre Amazon-Redshift-Anwendung. Wird nur für Okta verwendet.

  • App_Name – Der optionale Okta-Appname für Ihre Amazon-Redshift-Anwendung. Wird nur für Okta verwendet.

  • Partner_SPID – Der Wert der Partner-SPID (Service-Provider-ID). Wird nur für PingFederate verwendet.

Wenn Sie ein Browser-Plug-In für einen dieser Dienste verwenden, kann die Verbindungs-URL auch Folgendes enthalten:

  • Login_URL – Die URL für die Ressource auf der Website des Identitätsanbieters, wenn die SAML- (Security Assertion Markup Language) oder Azure-AD-Services über ein Browser-Plug-In verwendet werden. Dieser Parameter ist erforderlich, wenn Sie ein Browser-Plug-In verwenden.

  • Listen_Port— Der Port, den der Treiber verwendet, um die SAML-Antwort vom Identitätsanbieter abzurufen, wenn die SAML- oder Azure-AD-Services über ein Browser-Plug-In verwendet werden.

  • IdP_Response_Timeout – Die Zeitspanne in Sekunden, die der Treiber auf die SAML-Antwort vom Identitätsanbieter wartet, wenn die SAML- oder Azure AD-Services über ein Browser-Plug-In verwendet werden.

Weitere Informationen zu Eigenschaften von Verbindungszeichenfolgen finden Sie unter Konfigurationsoptionen der JDBC-Treiberversion 2.1.