SSL/TLSmit einer Amazon RDS for Db2-DB-Instance verwenden - Amazon Relational Database Service

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.

SSL/TLSmit einer Amazon RDS for Db2-DB-Instance verwenden

SSList ein Industriestandardprotokoll zur Sicherung von Netzwerkverbindungen zwischen Client und Server. Nach SSL Version 3.0 wurde der Name geändert inTLS, aber wir bezeichnen das Protokoll immer noch oft alsSSL. Amazon RDS unterstützt die SSL Verschlüsselung für Amazon RDS for Db2-DB-Instances. MitSSL/TLSkönnen Sie eine Verbindung zwischen Ihrem Anwendungsclient und Ihrer RDS for Db2-DB-Instance verschlüsseln. SSL/TLSUnterstützung ist in allen AWS-Regionen RDS für Db2 verfügbar.

Um die SSL TLS /-Verschlüsselung für eine RDS für Db2-DB-Instance zu aktivieren, fügen Sie die SSL Option Db2 zu der Parametergruppe hinzu, die der DB-Instance zugeordnet ist. Amazon RDS verwendet einen zweiten Port, wie von Db2 gefordert, für SSL TLS /-Verbindungen. Auf diese Weise können sowohl Klartext SSL - als auch verschlüsselte Kommunikation zwischen einer DB-Instance und einem Db2-Client gleichzeitig stattfinden. Sie können beispielsweise den Port mit Klartext-Kommunikation verwenden, um mit anderen Ressourcen innerhalb von zu kommunizieren, VPC während Sie den Port mit SSL -verschlüsselter Kommunikation für die Kommunikation mit Ressourcen außerhalb von verwenden. VPC

Eine „SSL/TLS“ -Verbindung erstellen

Um eine SSL TLS /-Verbindung herzustellen, wählen Sie eine Zertifizierungsstelle (CA) aus, laden Sie ein Zertifikatspaket für alle AWS-Regionen herunter und fügen Sie Parameter zu einer benutzerdefinierten Parametergruppe hinzu.

Schritt 1: Wählen Sie eine Zertifizierungsstelle und laden Sie ein Zertifikat herunter

Wählen Sie eine Zertifizierungsstelle (CA) und laden Sie ein Zertifikatspaket für alle herunter AWS-Regionen. Weitere Informationen finden Sie unter .

Schritt 2: Aktualisieren Sie die Parameter in einer benutzerdefinierten Parametergruppe

Wichtig

Wenn Sie das Modell Bring Your Own License (BYOL) RDS für Db2 verwenden, ändern Sie die benutzerdefinierte Parametergruppe, die Sie für Ihre IBM Customer ID und Ihre IBM Site ID erstellt haben. Wenn Sie ein anderes Lizenzmodell für RDS für Db2 verwenden, gehen Sie wie folgt vor, um einer benutzerdefinierten Parametergruppe Parameter hinzuzufügen. Weitere Informationen finden Sie unter Lizenzierungsoptionen von Amazon RDS für Db2.

Sie können keine Standardparametergruppen RDS für DB2-DB-Instances ändern. Daher müssen Sie eine benutzerdefinierte Parametergruppe erstellen, sie ändern und sie dann an Ihre RDS for Db2-DB-Instances anhängen. Informationen zu Parametergruppen finden Sie unter DB-Parametergruppen für Amazon RDS Amazon.

Verwenden Sie die Parametereinstellungen in der folgenden Tabelle.

Parameter Wert
DB2COMM TCPIP,SSL oder SSL
SSL_SVCENAME <any port number except the number used for the non-SSL port>
Um Parameter in einer benutzerdefinierten Parametergruppe zu aktualisieren
  1. Erstellen Sie eine benutzerdefinierte Parametergruppe, indem create-db-parameter-groupSie den Befehl ausführen.

    Verwenden Sie den folgenden erforderlichen Parameter:

    • --db-parameter-group-name— Ein Name für die Parametergruppe, die Sie erstellen.

    • --db-parameter-group-family— Die Db2-Engine-Edition und die Hauptversion. Zulässige Werte: db2-se-11-5, db2-ae-11.5.

    • --description— Eine Beschreibung für diese Parametergruppe.

    Weitere Informationen über das Erstellen einer Parametergruppe finden Sie unter Erstellen einer DB-Parametergruppe in Amazon RDS.

  2. Ändern Sie die Parameter in der benutzerdefinierten Parametergruppe, die Sie durch Ausführen des modify-db-parameter-groupBefehls erstellt haben.

    Verwenden Sie den folgenden erforderlichen Parameter:

    • --db-parameter-group-name— Der Name der Parametergruppe, die Sie erstellt haben.

    • --parameters— Eine Reihe von Parameternamen, Werten und Anwendungsmethoden für die Parameteraktualisierung.

    Weitere Hinweise zum Ändern einer Parametergruppe finden Sie unterÄndern von Parametern in einer DB-Parametergruppe in Amazon RDS.

  3. Ordnen Sie die Parametergruppe Ihrer RDS DB2-DB-Instance zu. Weitere Informationen finden Sie unter Zuordnen einer DB-Parametergruppe zu einer DB-Instance in Amazon RDS Amazon.

Connect zu Ihrem Db2-Datenbankserver her

Die Anweisungen für die Verbindung mit Ihrem Db2-Datenbankserver sind sprachspezifisch.

Java
Um eine Verbindung zu Ihrem Db2-Datenbankserver herzustellen, verwenden Sie Java
  1. Laden Sie den JDBC Treiber herunter. Weitere Informationen finden Sie in der IBM Support-Dokumentation unter DB2JDBCTreiberversionen und Downloads.

  2. Erstellen Sie eine Shell-Skriptdatei mit dem folgenden Inhalt. Dieses Skript fügt alle Zertifikate aus dem Paket zu einem hinzuJava KeyStore.

    Wichtig

    Stellen Sie sicher, dass der Pfad im Skript keytool vorhanden ist, damit das Skript ihn finden kann. Wenn Sie einen Db2-Client verwenden, finden Sie den Ordner keytool unter~sqlib/java/jdk64/jre/bin.

    #!/bin/bash PEM_FILE=$1 PASSWORD=$2 KEYSTORE=$3 # number of certs in the PEM file CERTS=$(grep 'END CERTIFICATE' $PEM_FILE| wc -l) for N in $(seq 0 $(($CERTS - 1))); do ALIAS="${PEM_FILE%.*}-$N" cat $PEM_FILE | awk "n==$N { print }; /END CERTIFICATE/ { n++ }" | keytool -noprompt -import -trustcacerts -alias $ALIAS -keystore $KEYSTORE -storepass $PASSWORD done
  3. Führen Sie den folgenden Befehl aus, um das Shell-Skript auszuführen und die PEM Datei mit dem Zertifikatspaket in a Java KeyStore zu importieren. Ersetzen shell_file_name.sh mit dem Namen Ihrer Shell-Skriptdatei und password mit dem Passwort für deinJava KeyStore.

    ./shell_file_name.sh global-bundle.pem password truststore.jks
  4. Führen Sie den folgenden Befehl aus, um eine Verbindung zu Ihrem Db2-Server herzustellen. Ersetzen Sie die folgenden Platzhalter im Beispiel durch Ihre Informationen RDS für die DB2-DB-Instance.

    • ip_address — Die IP-Adresse für Ihren DB-Instance-Endpunkt.

    • port — Die Portnummer für die SSL Verbindung. Dies kann eine beliebige Portnummer sein, mit Ausnahme der Nummer, die für den SSL Nicht-Port verwendet wird.

    • database_name — Der Name Ihrer Datenbank in Ihrer DB-Instance.

    • master_username — Der Master-Benutzername für Ihre DB-Instance.

    • master_password — Das Master-Passwort für Ihre DB-Instance.

    export trustStorePassword=MyPassword java -cp ~/dsdriver/jdbc_sqlj_driver/linuxamd64/db2jcc4.jar \ com.ibm.db2.jcc.DB2Jcc -url \ "jdbc:db2://ip_address:port/database_name:\ sslConnection=true;sslTrustStoreLocation=\ ~/truststore.jks;\ sslTrustStorePassword=${trustStorePassword};\ sslVersion=TLSv1.2;\ encryptionAlgorithm=2;\ securityMechanism=7;" \ -user master_username -password master_password
Node.js
Um eine Verbindung zu Ihrem Db2-Datenbankserver herzustellen, verwenden Sie Node.js
  1. Installieren Sie den node-ibm_dbTreiber. Weitere Informationen finden Sie in der Dokumentation unter Installation des node-ibm_db-Treibers auf Linux und UNIX -Systemen. IBM Db2

  2. Erstellen Sie eine JavaScript Datei, die auf dem folgenden Inhalt basiert. Ersetzen Sie die folgenden Platzhalter im Beispiel durch Ihre RDS for Db2-DB-Instance-Informationen.

    • ip_address — Die IP-Adresse für Ihren DB-Instance-Endpunkt.

    • master_username — Der Master-Benutzername für Ihre DB-Instance.

    • master_password — Das Master-Passwort für Ihre DB-Instance.

    • database_name — Der Name Ihrer Datenbank in Ihrer DB-Instance.

    • port — Die Portnummer für die SSL Verbindung. Dies kann eine beliebige Portnummer sein, mit Ausnahme der Nummer, die für den SSL Nicht-Port verwendet wird.

    var ibmdb = require("ibm_db"); const hostname = "ip_address"; const username = "master_username"; const password = "master_password"; const database = "database_name"; const port = "port"; const certPath = "/root/qa-bundle.pem"; ibmdb.open("DRIVER={DB2};DATABASE=" + database + ";HOSTNAME=" + hostname + ";UID=" + username + ";PWD=" + password + ";PORT=" + port + ";PROTOCOL=TCPIP;SECURITY=SSL;SSLServerCertificate=" + certPath + ";", function (err, conn){ if (err) return console.log(err); conn.close(function () { console.log('done'); }); });
  3. Führen Sie den folgenden Befehl aus, um die JavaScript Datei auszuführen.

    node ssl-test.js
Python
Um eine Verbindung zu Ihrem Db2-Datenbankserver herzustellen, verwenden Sie Python
  1. Erstellen Sie eine Python Datei mit dem folgenden Inhalt. Ersetzen Sie die folgenden Platzhalter im Beispiel durch Ihre RDS for Db2-DB-Instance-Informationen.

    • port — Die Portnummer für die SSL Verbindung. Dies kann eine beliebige Portnummer sein, mit Ausnahme der Nummer, die für den SSL Nicht-Port verwendet wird.

    • master_username — Der Master-Benutzername für Ihre DB-Instance.

    • master_password — Das Master-Passwort für Ihre DB-Instance.

    • database_name — Der Name Ihrer Datenbank in Ihrer DB-Instance.

    • ip_address — Die IP-Adresse für Ihren DB-Instance-Endpunkt.

    import click import ibm_db import sys port = port; master_user_id = "master_username" # Master id used to create your DB instance master_password = "master_password" # Master password used to create your DB instance db_name = "database_name" # If not given "db-name' vpc_customer_private_ip = "ip_address" # Hosts end points - Customer private IP Addressicert_path = "/root/ssl/global-bundle.pem" # cert path @click.command() @click.option("--path", help="certificate path") def db2_connect(path): try: conn = ibm_db.connect(f"DATABASE={db_name};HOSTNAME={vpc_customer_private_ip};PORT={port}; PROTOCOL=TCPIP;UID={master_user_id};PWD={master_password};SECURITY=ssl;SSLServerCertificate={path};", "", "") try: ibm_db.exec_immediate(conn, 'create table tablename (a int);') print("Query executed successfully") except Exception as e: print(e) finally: ibm_db.close(conn) sys.exit(1) except Exception as ex: print("Trying to connect...") if __name__ == "__main__": db2_connect()
  2. Erstellen Sie das folgende Shell-Skript, das die von Ihnen erstellte Python Datei ausführt. Ersetzen python_file_name.py mit dem Namen Ihrer Python Skriptdatei.

    #!/bin/bash PEM_FILE=$1 # number of certs in the PEM file CERTS=$(grep 'END CERTIFICATE' $PEM_FILE| wc -l) for N in $(seq 0 $(($CERTS - 1))); do ALIAS="${PEM_FILE%.*}-$N" cert=`cat $PEM_FILE | awk "n==$N { print }; /END CERTIFICATE/ { n++ }"` cat $PEM_FILE | awk "n==$N { print }; /END CERTIFICATE/ { n++ }" > $ALIAS.pem python3 <python_file_name.py> --path $ALIAS.pem output=`echo $?` if [ $output == 1 ]; then break fi done
  3. Führen Sie den folgenden Befehl aus, um die PEM Datei mit dem Zertifikatspaket zu importieren und das Shell-Skript auszuführen. Ersetzen shell_file_name.sh mit dem Namen Ihrer Shell-Skriptdatei.

    ./shell_file_name.sh global-bundle.pem