Utilisation deSSL/TLSavec 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 deSSL/TLSavec une instance de base de données Amazon RDS pour DB2

SSLest un protocole standard pour sécuriser les connexions réseau entre le client et le serveur. Après la SSL version 3.0, le nom a été changé enTLS, mais nous appelons encore souvent le protocoleSSL. Amazon RDS prend en charge SSL le chiffrement pour les instances de base de données Amazon RDS pour DB2. À l'aide deSSL/TLS, vous pouvez chiffrer une connexion entre votre client d'application et votre instance de base de données RDS for Db2. SSL/TLSle support est disponible dans tous les Régions AWS domaines RDS pour Db2.

Pour SSL TLS activer/encryption pour une instance de base de données RDS for Db2, ajoutez l'SSLoption Db2 au groupe de paramètres associé à l'instance de base de données. Amazon RDS utilise un deuxième port, comme l'exige Db2, pour les TLS connexionsSSL//. Cela permet à la fois d'établir une communication en texte clair et SSL cryptée 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 VPC pendant un certain temps en utilisant le port avec une communication SSL cryptée pour communiquer avec des ressources extérieures à. VPC

Création d'une TLS connexionSSL/

Pour créer une TLS connexionSSL/, 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 Bring Your Own License (BYOL) RDS pour Db2, modifiez le groupe de paramètres personnalisé que vous avez créé pour vous IBM Customer ID et votreIBM Site ID. Si vous utilisez un modèle de licence différent 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 RDS pour les instances de base de données 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 for 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.

  3. Associez le groupe de paramètres à votre instance de base de données RDS for 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 JDBC pilote. Pour plus d'informations, consultez la section Versions et téléchargements des DB2 JDBC pilotes 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. Remplacez shell_file_name.sh avec le nom de votre fichier de script shell et password avec 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 les informations relatives à votre instance RDS 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 SSL connexion. Il peut s'agir de n'importe quel numéro de port, à l'exception du numéro utilisé pour le SSL non-port.

    • 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 les informations relatives à votre instance RDS 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 SSL connexion. Il peut s'agir de n'importe quel numéro de port, à l'exception du numéro utilisé pour le SSL non-port.

    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 les informations relatives à votre instance RDS de base de données DB2.

    • port — Le numéro de port de la SSL connexion. Il peut s'agir de n'importe quel numéro de port, à l'exception du numéro utilisé pour le SSL non-port.

    • 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éé. Remplacez python_file_name.py avec 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. Remplacez shell_file_name.sh avec le nom de votre fichier de script shell.

    ./shell_file_name.sh global-bundle.pem