Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation de SSL/TLS avec une instance de base de données Amazon RDS pour DB2
Le protocole SSL est un protocole standard pour sécuriser les connexions réseau entre le client et le serveur. Après la version 3.0 de SSL, le nom a été changé en TLS, mais nous appelons encore souvent le protocole SSL. Amazon RDS prend en charge le chiffrement SSL pour Amazon RDS pour les instances de base de données DB2. L'utilisation SSL/TLS,
you can encrypt a connection between your application client and your RDS for Db2 DB instance.
SSL/TLS du support est disponible dans tous les cas Régions AWS pour RDS pour Db2.
Pour activer 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 les connexions. Cela permet à la fois d'établir une communication en texte clair et cryptée SSL entre une instance de base de données et un client DB2. Par exemple, vous pouvez utiliser le port avec une communication en texte clair pour communiquer avec d'autres ressources à l'intérieur d'un VPC, tout en utilisant le port avec une communication à chiffrement SSL pour communiquer avec des ressources extérieures au VPC.
Création d'une connexion SSL/TLS
Pour créer une connexion SSL/TLS, choisissez une autorité de certification (CA), téléchargez un ensemble de certificats pour tous Régions AWS et ajoutez des paramètres à un groupe de paramètres personnalisé.
Étape 1 : Choisissez une autorité de certification et téléchargez un certificat
Choisissez une autorité de certification (CA) et téléchargez un ensemble de certificats pour tous Régions AWS. Pour de plus amples informations, veuillez consulter .
Étape 2 : Mettre à jour les paramètres d'un groupe de paramètres personnalisé
Si vous utilisez le modèle BYOL (Bring Your Own License) pour RDS for DB2, modifiez le groupe de paramètres personnalisé que vous avez créé pour votre et votreIBM Customer ID. IBM Site ID Si vous utilisez un modèle de licence différent pour RDS pour DB2, suivez la procédure pour ajouter des paramètres à un groupe de paramètres personnalisé. Pour de plus amples informations, veuillez consulter Options de licence Amazon RDS pour DB2.
Vous ne pouvez pas modifier les groupes de paramètres par défaut pour les instances de base de données RDS pour DB2. Par conséquent, vous devez créer un groupe de paramètres personnalisé, le modifier, puis l'associer à vos instances de base de données RDS pour DB2. Pour plus d'informations sur les groupes de paramètres, veuillez consulter Groupes de paramètres de base de données pour les instances de base de données RDSAmazon.
Utilisez les paramètres définis dans le tableau suivant.
Paramètre |
Valeur |
DB2COMM |
TCPIP,SSL ou SSL |
SSL_SVCENAME |
<any port number except the number used for the non-SSL
port> |
Connectez-vous à votre serveur de base de données DB2
Les instructions de connexion à votre serveur de base de données DB2 sont spécifiques à la langue.
- Java
-
Pour vous connecter à votre serveur de base de données DB2 à l'aide de Java
-
Téléchargez le pilote JDBC. Pour plus d'informations, consultez la section Versions et téléchargements du pilote DB2 JDBC dans la documentation de IBM support.
-
Créez un fichier de script shell avec le contenu suivant. Ce script ajoute tous les certificats du bundle à unJava
KeyStore.
Vérifiez qu'keytool
il existe sur le chemin indiqué dans le script afin que celui-ci puisse le localiser. Si vous utilisez un client DB2, vous pouvez le trouver ci-dessouskeytool
. ~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
-
Pour exécuter le script shell et importer le PEM fichier contenant le bundle de certificats dans unJava KeyStore, exécutez la commande suivante. shell_file_name.sh
Remplacez-le par le nom de votre fichier de script shell et password
par le mot de passe de votreJava KeyStore.
./shell_file_name.sh
global-bundle.pem password
truststore.jks
-
Pour vous connecter à votre serveur DB2, exécutez la commande suivante. Remplacez les espaces réservés suivants dans l'exemple par votre RDS pour les informations d'instance de base de données DB2.
-
ip_address
— L'adresse IP du point de terminaison de votre instance de base de données.
-
port
— Le numéro de port de la connexion SSL. Il peut s'agir de n'importe quel numéro de port à l'exception du numéro utilisé pour le port non SSL.
-
database_name
— Le nom de votre base de données dans votre instance de base de données.
-
master_username
— Le nom d'utilisateur principal de votre instance de base de données.
-
master_password
— Le mot de passe principal de votre instance de base de données.
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
-
Pour vous connecter à votre serveur de base de données DB2 à l'aide de Node.js
-
Installez le node-ibm_dbpilote. Pour plus d'informations, consultez la section Installation du pilote node-ibm_db sur les systèmes Linux et UNIX dans la documentation. IBM Db2
-
Créez un JavaScript fichier basé sur le contenu suivant. Remplacez les espaces réservés suivants dans l'exemple par votre RDS pour les informations d'instance de base de données DB2.
-
ip_address
— L'adresse IP du point de terminaison de votre instance de base de données.
-
master_username
— Le nom d'utilisateur principal de votre instance de base de données.
-
master_password
— Le mot de passe principal de votre instance de base de données.
-
database_name
— Le nom de votre base de données dans votre instance de base de données.
-
port
— Le numéro de port de la connexion SSL. Il peut s'agir de n'importe quel numéro de port à l'exception du numéro utilisé pour le port non SSL.
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');
});
});
-
Pour exécuter le JavaScript fichier, exécutez la commande suivante.
node ssl-test.js
- Python
-
Pour vous connecter à votre serveur de base de données DB2 à l'aide de Python
-
Créez un Python fichier avec le contenu suivant. Remplacez les espaces réservés suivants dans l'exemple par votre RDS pour les informations d'instance de base de données DB2.
-
port
— Le numéro de port de la connexion SSL. Il peut s'agir de n'importe quel numéro de port à l'exception du numéro utilisé pour le port non SSL.
-
master_username
— Le nom d'utilisateur principal de votre instance de base de données.
-
master_password
— Le mot de passe principal de votre instance de base de données.
-
database_name
— Le nom de votre base de données dans votre instance de base de données.
-
ip_address
— L'adresse IP du point de terminaison de votre instance de base de données.
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()
-
Créez le script shell suivant, qui exécute le Python fichier que vous avez créé. python_file_name.py
Remplacez-le par le nom de votre fichier de Python script.
#!/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
-
Pour importer le PEM fichier avec le bundle de certificats et exécuter le script shell, exécutez la commande suivante. shell_file_name.sh
Remplacez-le par le nom de votre fichier de script shell.
./shell_file_name.sh
global-bundle.pem
- DB2 CLP
-
Pour vous connecter à votre serveur de base de données DB2 à l'aide de Db2 CLP
-
Pour vous connecter à votre instance Db2 à l'aide deDb2 CLP, vous avez besoin GSKit de ce que vous pouvez télécharger sur IBM Fix Central. Pour l'utiliserDb2 CLP, vous avez également besoin du IBM Db2 client, que vous pouvez télécharger à partir de la page Télécharger les clients et les pilotes de la version 11.5 initiale dans IBM Support.
-
Créez un keystore.
gsk8capicmd_64 -keydb -create -db "directory
/keystore-filename
" -pw "changeThisPassword
" -type pkcs12 -stash
-
Importez les ensembles de certificats dans le keystore.
gsk8capicmd_64 -cert -import -file global-bundle.pem
-target directory
/keystore-filename
> -target_stashed
-
Mettez à jour la configuration de l'instance Db2.
db2 update dbm cfg using SSL_CLNT_KEYDB keystore-filename
SSL_CLNT_STASH keystore stash file
immediate
-
Cataloguez le nœud et la base de données.
db2 catalog tcpip node ssluse1
REMOTE endpoint
SERVER ssl_svcename
security ssl
db2 catalog database testdb
as ssltest
at node ssluse1
-
Etablit une connexion à la base de données
db2 connect to ssltest
user username
using password