Utilizzo diSSL/TLScon un'istanza database Amazon RDS for 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 diSSL/TLScon un'istanza database Amazon RDS for Db2

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

Per abilitare TLS la crittografiaSSL/per un'istanza DB RDS for Db2, aggiungete l'SSLopzione Db2 al gruppo di parametri associato all'istanza DB. Amazon RDS utilizza una seconda porta, come richiesto da Db2, per le TLS connessioni SSL /. In questo modo è possibile che avvengano contemporaneamente comunicazioni in testo non SSL crittografato e comunicazioni crittografate tra un'istanza DB e un client Db2. Ad esempio, è possibile utilizzare la porta con comunicazione in testo non crittografato per comunicare con altre risorse interne e utilizzare la porta con comunicazione SSL -encrypted per comunicare con risorse esterne a. VPC VPC

Creazione di una SSL connessione/TLS

Per creare una TLS connessioneSSL/, 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) RDS per Db2, modifica il gruppo di parametri personalizzato che hai creato per te IBM Customer ID e per il tuoIBM Site ID. Se utilizzi un modello di licenza diverso RDS per Db2, segui la procedura per aggiungere parametri a un gruppo di parametri personalizzato. Per ulteriori informazioni, consulta Opzioni di licenza Amazon RDS for Db2.

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

Utilizzate le impostazioni dei parametri nella tabella seguente.

Parametro Valore
DB2COMM TCPIP,SSL o 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 DB in Amazon RDS.

  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 dei parametri in un gruppo di parametri DB in Amazon RDS .

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

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 JDBC driver. Per ulteriori informazioni, consulta Versioni e download dei DB2 JDBC driver nella documentazione di IBM Support.

  2. Crea un file di script di shell 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. Replace (Sostituisci) shell_file_name.sh con il nome del file di script di shell e 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 RDS informazioni relative all'istanza DB Db2.

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

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

    • 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 utilizzando 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 nell'esempio con le informazioni relative all'RDSistanza DB Db2.

    • ip_address — L'indirizzo IP dell'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 SSL connessione. Può essere qualsiasi numero di porta tranne il numero utilizzato per la SSL porta diversa.

    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 nell'esempio con le informazioni relative all'RDSistanza DB Db2.

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

    • 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 dell'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. Replace (Sostituisci) python_file_name.py con il nome del 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. Replace (Sostituisci) shell_file_name.sh con il nome del file di script di shell.

    ./shell_file_name.sh global-bundle.pem