Utilizzo di SSL/TLS con un'istanza database Amazon RDS per Db2 - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di SSL/TLS con un'istanza database Amazon RDS per Db2

SSL è un protocollo standard del settore per proteggere le connessioni di rete tra client e server. Dopo la versione SSL 3.0, il nome è stato cambiato in TLS, ma spesso ci riferiamo ancora al protocollo come SSL. Amazon RDS supporta la crittografia SSL per le istanze database Amazon RDS per Db2. Utilizzando SSL/TLS, puoi crittografare una connessione tra il client dell'applicazione e l'istanza DB RDS for Db2. Il supporto SSL/TLS è disponibile in tutto per RDS for Db2. Regioni AWS

Per abilitare la crittografia SSL/TLS per un'istanza DB RDS for Db2, aggiungi l'opzione SSL Db2 al gruppo di parametri associato all'istanza DB. Amazon RDS utilizza una seconda porta, come richiesto da Db2, per le connessioni SSL/TLS. In questo modo è possibile che tra un'istanza DB e un client Db2 si verifichino contemporaneamente sia comunicazioni in testo non crittografato che comunicazioni crittografate con SSL. Ad esempio, è possibile utilizzare la porta con testo in chiaro per comunicare con altre risorse all'interno di un VPC mentre utilizzi la porta con crittografia SSL per comunicare con risorse all'esterno del VPC.

Creazione di una connessione SSL/TLS

Per creare una connessione SSL/TLS, scegli un'autorità di certificazione (CA), scarica un pacchetto di certificati per tutti Regioni AWS e aggiungi parametri a un gruppo di parametri personalizzato.

Passaggio 1: scegli una CA e scarica un certificato

Scegli un'autorità di certificazione (CA) e scarica un pacchetto di certificati per tutti Regioni AWS. Per ulteriori informazioni, consulta .

Fase 2: Aggiornare i parametri in un gruppo di parametri personalizzato

Importante

Se utilizzi il modello Bring Your Own License (BYOL) per RDS for Db2, modifica il gruppo di parametri personalizzato che hai creato per te e per il tuo. IBM Customer ID IBM Site ID Se utilizzi un modello di licenza diverso per RDS for Db2, segui la procedura per aggiungere parametri a un gruppo di parametri personalizzato. Per ulteriori informazioni, consulta Opzioni di licenza Amazon RDS per Db2.

Non è possibile modificare i gruppi di parametri predefiniti per le istanze DB RDS for Db2. Pertanto, è necessario creare un gruppo di parametri personalizzato, modificarlo e quindi collegarlo alle istanze DB RDS per Db2. Per informazioni sui gruppi di parametri, consultare Utilizzo di gruppi di parametri DB in un'istanza DB.

Utilizzate le impostazioni dei parametri nella tabella seguente.

Parametro Valore
DB2COMM TCPIP,SSL
SSL_SVCENAME <any port number except the number used for the non-SSL port>
Per aggiornare i parametri in un gruppo di parametri personalizzato
  1. Creare un gruppo di parametri personalizzato eseguendo il create-db-parameter-groupcomando.

    Includi le seguenti opzioni obbligatorie:

    • --db-parameter-group-name— Un nome per il gruppo di parametri che state creando.

    • --db-parameter-group-family— L'edizione e la versione principale del motore Db2. Valori validi: db2-se-11-5, db2-ae-11.5.

    • --description— Una descrizione per questo gruppo di parametri.

    Per ulteriori informazioni sulla creazione di un gruppo di parametri database, consulta Creazione di un gruppo di parametri del database.

  2. Modificate i parametri nel gruppo di parametri personalizzato creato eseguendo il modify-db-parameter-groupcomando.

    Includi le seguenti opzioni obbligatorie:

    • --db-parameter-group-name— Il nome del gruppo di parametri creato.

    • --parameters— Una matrice di nomi di parametri, valori e metodi di applicazione per l'aggiornamento dei parametri.

    Per ulteriori informazioni sulla modifica di un gruppo di parametri, vedereModifica di parametri in un gruppo di parametri del database.

  3. Associate il gruppo di parametri alla vostra istanza DB RDS for Db2. Per ulteriori informazioni, consulta Associazione di un gruppo di parametri database a un'istanza database.

Connect al server del database Db2

Le istruzioni per la connessione al server di database Db2 sono specifiche della lingua.

Java
Per connettersi al server di database Db2 utilizzando Java
  1. Scarica il driver JDBC. Per ulteriori informazioni, consulta Versioni e download dei driver JDBC DB2 nella documentazione di SupportIBM.

  2. Crea un file di shell script con il seguente contenuto. Questo script aggiunge tutti i certificati del pacchetto a unJava KeyStore.

    Importante

    Verifica che keytool esista nel percorso dello script in modo che lo script possa localizzarlo. Se si utilizza un client Db2, è possibile individuare quanto seguekeytool. ~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. Per eseguire lo script di shell e importare il PEM file con il pacchetto di certificati in un fileJava KeyStore, esegui il comando seguente. Sostituisci shell_file_name.sh con il nome del tuo file di script di shell e la password con la password per il tuoJava KeyStore.

    ./shell_file_name.sh global-bundle.pem password truststore.jks
  4. Per connetterti al tuo server Db2, esegui il seguente comando. Sostituisci i seguenti segnaposto nell'esempio con le informazioni sull'istanza DB RDS for Db2.

    • ip_address — L'indirizzo IP per l'endpoint dell'istanza DB.

    • port — Il numero di porta per la connessione SSL. Può essere qualsiasi numero di porta tranne il numero utilizzato per la porta non SSL.

    • database_name — Il nome del database nell'istanza DB.

    • master_username — Il nome utente principale per l'istanza DB.

    • master_password — La password principale per l'istanza DB.

    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
Per connettersi al server del database Db2 tramite Node.js
  1. Installa il node-ibm_dbdriver. Per ulteriori informazioni, consulta Installazione del driver node-ibm_db su sistemi Linux e UNIX nella documentazione. IBM Db2

  2. Crea un JavaScript file basato sul seguente contenuto. Sostituisci i seguenti segnaposto dell'esempio con le informazioni sull'istanza DB RDS for Db2.

    • ip_address — L'indirizzo IP per l'endpoint dell'istanza DB.

    • master_username — Il nome utente principale per l'istanza DB.

    • master_password — La password principale per l'istanza DB.

    • database_name — Il nome del database nell'istanza DB.

    • port — Il numero di porta per la connessione SSL. Può essere qualsiasi numero di porta tranne il numero utilizzato per la porta 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. Per eseguire il JavaScript file, esegui il comando seguente.

    node ssl-test.js
Python
Per connettersi al server del database Db2 utilizzando Python
  1. Crea un Python file con il seguente contenuto. Sostituisci i seguenti segnaposto dell'esempio con le informazioni sull'istanza DB RDS for Db2.

    • port: il numero di porta per la connessione SSL. Può essere qualsiasi numero di porta tranne il numero utilizzato per la porta non SSL.

    • master_username — Il nome utente principale per l'istanza DB.

    • master_password — La password principale per l'istanza DB.

    • database_name — Il nome del database nell'istanza DB.

    • ip_address — L'indirizzo IP per l'endpoint dell'istanza DB.

    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. Crea il seguente script di shell, che esegue il Python file che hai creato. Sostituiscilo python_file_name.pycon il nome del tuo file di 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. Per importare il PEM file con il pacchetto di certificati ed eseguire lo script di shell, esegui il comando seguente. Sostituisci shell_file_name.sh con il nome del tuo file di script di shell.

    ./shell_file_name.sh global-bundle.pem