Utilisation de SSL/TLS avec une instance de base de données Amazon RDS pour DB2 - Amazon Relational Database Service

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é

Important

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>
Pour mettre à jour les paramètres d'un groupe de paramètres personnalisé
  1. Créez un groupe de paramètres personnalisé en exécutant la create-db-parameter-groupcommande.

    Inclure les options requises suivantes :

    • --db-parameter-group-name— Nom du groupe de paramètres que vous créez.

    • --db-parameter-group-family— L'édition et la version majeure du moteur DB2. Valeurs valides : db2-se-11-5, db2-ae-11.5.

    • --description— Description de ce groupe de paramètres.

    Pour de plus amples informations sur la création d'un groupe de paramètres de base de données, veuillez consulter Création d'un groupe de paramètres de base de données dans RDSAmazon.

  2. Modifiez les paramètres du groupe de paramètres personnalisés que vous avez créé en exécutant la modify-db-parameter-groupcommande.

    Inclure les options requises suivantes :

    • --db-parameter-group-name— Le nom du groupe de paramètres que vous avez créé.

    • --parameters— Tableau de noms de paramètres, de valeurs et de méthodes d'application pour la mise à jour des paramètres.

    Pour plus d'informations sur la modification d'un groupe de paramètres, consultezModification des paramètres d'un groupe de paramètres de base de données dans Amazon RDS ( Aurora).

  3. Associez le groupe de paramètres à votre instance de base de données RDS pour DB2. Pour de plus amples informations, veuillez consulter Associer un groupe de paramètres de base de données à une instance de base de données dans RDSAmazon.

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
  1. 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.

  2. Créez un fichier de script shell avec le contenu suivant. Ce script ajoute tous les certificats du bundle à unJava KeyStore.

    Important

    Vérifiez qu'keytoolil 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
  3. 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.shRemplacez-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
  4. 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
  1. 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

  2. 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'); }); });
  3. 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
  1. 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()
  2. Créez le script shell suivant, qui exécute le Python fichier que vous avez créé. python_file_name.pyRemplacez-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
  3. Pour importer le PEM fichier avec le bundle de certificats et exécuter le script shell, exécutez la commande suivante. shell_file_name.shRemplacez-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
  1. 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.

  2. Créez un keystore.

    gsk8capicmd_64 -keydb -create -db "directory/keystore-filename" -pw "changeThisPassword" -type pkcs12 -stash
  3. Importez les ensembles de certificats dans le keystore.

    gsk8capicmd_64 -cert -import -file global-bundle.pem -target directory/keystore-filename> -target_stashed
  4. 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
  5. 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
  6. Etablit une connexion à la base de données

    db2 connect to ssltest user username using password