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
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
-
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.
-
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 .
-
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
-
Scarica il JDBC driver. Per ulteriori informazioni, consulta Versioni e download dei DB2 JDBC driver nella documentazione di IBM Support.
-
Crea un file di script di shell con il seguente contenuto. Questo script aggiunge tutti i certificati del pacchetto a unJava
KeyStore.
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
-
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
-
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
-
Installa il node-ibm_dbdriver. Per ulteriori informazioni, consulta Installazione del driver node-ibm_db su sistemi Linux e UNIX nella documentazione. IBM Db2
-
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');
});
});
-
Per eseguire il JavaScript file, esegui il comando seguente.
node ssl-test.js
- Python
-
Per connettersi al server del database Db2 utilizzando Python
-
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()
-
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
-
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