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.
Verwenden von SSL/TLS mit einer Amazon RDS for Db2-DB-Instance
SSL ist ein Industriestandardprotokoll zur Sicherung von Netzwerkverbindungen zwischen Client und Server. Nach der SSL-Version 3.0 wurde der Name in TLS geändert, aber wir bezeichnen das Protokoll immer noch oft als SSL. Amazon RDS unterstützt SSL-Verschlüsselung für Amazon RDS für Db2-DB-Instances. Die Nutzung der SSL/TLS,
you can encrypt a connection between your application client and your RDS for Db2 DB instance.
SSL/TLS Unterstützung ist AWS-Regionen für RDS for Db2 in allen Versionen verfügbar.
Um SSL/TLS encryption for an RDS for Db2 DB instance, add the Db2 SSL option to the
parameter group associated with the DB instance. Amazon RDS uses a second port, as required by
Db2, for SSL/TLS Verbindungen zu aktivieren. Auf diese Weise können sowohl Klartext- als auch SSL-verschlüsselte Kommunikation zwischen einer DB-Instance und einem Db2-Client gleichzeitig stattfinden. Sie können z. B. den Port mit Klartext-Kommunikation verwenden, um mit anderen Ressourcen innerhalb einer VPC zu kommunizieren, und den Port mit SSL-verschlüsselter Kommunikation, um mit Ressourcen außerhalb der VPC zu kommunizieren.
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
Wenn Sie das Modell Bring Your Own License (BYOL) für RDS for Db2 verwenden, ändern Sie die benutzerdefinierte Parametergruppe, die Sie für Ihr IBM Customer ID und dein IBM Site ID. Wenn Sie ein anderes Lizenzmodell für RDS for 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 Standardparametergruppen für RDS for Db2-DB-Instances nicht ä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
-
Erstellen Sie eine benutzerdefinierte Parametergruppe, indem Sie create-db-parameter-groupBefehl.
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.
-
Ändern Sie die Parameter in der benutzerdefinierten Parametergruppe, die Sie erstellt haben, indem Sie modify-db-parameter-groupBefehl.
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.
-
Ordnen Sie die Parametergruppe Ihrer RDS for 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
-
Laden Sie den JDBC-Treiber herunter. Weitere Informationen finden Sie unter DB2 JDBC-Treiberversionen und Downloads im IBM Unterstützende Dokumentation.
-
Erstellen Sie eine Shell-Skriptdatei mit dem folgenden Inhalt. Dieses Skript fügt alle Zertifikate aus dem Paket zu einem Java
KeyStore.
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
-
Um das Shell-Skript auszuführen und das zu importieren PEM Datei mit dem Zertifikatspaket in ein Java KeyStore, führen Sie den folgenden Befehl aus. shell_file_name.sh
Ersetzen Sie es durch den Namen Ihrer Shell-Skriptdatei und password
durch das Passwort für Java KeyStore.
./shell_file_name.sh
global-bundle.pem password
truststore.jks
-
Führen Sie den folgenden Befehl aus, um eine Verbindung zu Ihrem Db2-Server herzustellen. 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.
-
port
— Die Portnummer für die SSL-Verbindung. Dies kann eine beliebige Portnummer sein, mit Ausnahme der Nummer, die für den Nicht-SSL-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
-
installierennode-ibm_dbTreiber. Weitere Informationen finden Sie unter Installation des node-ibm_db-Treibers auf Linux and UNIX Systeme in der IBM Db2 -Dokumentation.
-
Erstelle ein 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 Nicht-SSL-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');
});
});
-
Um das auszuführen JavaScript Führen Sie den folgenden Befehl aus.
node ssl-test.js
- Python
-
Um eine Verbindung zu Ihrem Db2-Datenbankserver herzustellen, verwenden Sie Python
-
Erstellen Sie ein 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 Nicht-SSL-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()
-
Erstellen Sie das folgende Shell-Skript, das das ausführt Python Datei, die Sie erstellt haben. python_file_name.py
Ersetze es durch den Namen deines 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
-
Um das zu importieren PEM Führen Sie den folgenden Befehl aus, um die Datei mit dem Zertifikatspaket zu speichern und das Shell-Skript auszuführen. shell_file_name.sh
Ersetzen Sie es durch den Namen Ihrer Shell-Skriptdatei.
./shell_file_name.sh
global-bundle.pem
- Db2 CLP
-
Um eine Verbindung zu Ihrem Db2-Datenbankserver herzustellen, verwenden Sie Db2 CLP
-
Um eine Verbindung zu Ihrer Db2-Instance herzustellen, verwenden Sie Db2 CLP, benötigen GSKit Sie. Laden Sie die Software für Ihren Kunden von IBM Fix Central herunter. Alternativ können Sie entweder einen Thick-Client einrichten oder einen Runtime-Client herunterladen lassen. GSKit
-
Erstellen Sie einen Keystore.
gsk8capicmd_64 -keydb -create -db "directory
/keystore-filename
" -pw "changeThisPassword
" -type pkcs12 -stash
-
Importieren Sie die Zertifikatspakete in den Keystore.
gsk8capicmd_64 -cert -import -file global-bundle.pem
-target directory
/keystore-filename
> -target_stashed
-
Aktualisieren Sie die Db2-Instanzkonfiguration.
db2 update dbm cfg using SSL_CLNT_KEYDB keystore-filename
SSL_CLNT_STASH keystore stash file
immediate
-
Katalogisieren Sie den Knoten und die Datenbank.
db2 catalog tcpip node ssluse1
REMOTE endpoint
ssl_svcename
security ssl
db2 catalog database testdb
as ssltest
at node ssluse1
-
Verbinden Sie mit der Datenbank.
db2 connect to ssltest
user username
using password