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 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. L'utilizzo del SSL/TLS,
you can encrypt a connection between your application client and your RDS for Db2 DB instance.
SSL/TLS supporto è disponibile in tutto Regioni AWS per RDS for Db2.
Per abilitare SSL/TLS la crittografia per un'istanza DB RDS for Db2, aggiungi l'opzione Db2 SSL al gruppo di parametri associato all'istanza DB. Amazon RDS utilizza una seconda porta, come richiesto da Db2, per le SSL/TLS connessioni. 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.
SSL/TLS Creazione di una connessione
Per creare una SSL/TLS connessione, 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) 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 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, vedere.
-
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 driver JDBC. Per ulteriori informazioni, consulta Versioni e download dei driver DB2 JDBC nella documentazione di IBM Support.
-
Crea un file di shell script 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. Sostituiscilo shell_file_name.sh
con il nome del tuo 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 informazioni sull'istanza DB RDS for Db2.
-
ip_address
— L'indirizzo IP dell'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 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 dell'esempio con le informazioni sull'istanza DB RDS for 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 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');
});
});
-
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 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 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. Sostituiscilo python_file_name.py
con 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
-
Per importare il PEM file con il pacchetto di certificati ed eseguire lo script di shell, esegui il comando seguente. shell_file_name.sh
Sostituiscilo con il nome del tuo file di script di shell.
./shell_file_name.sh
global-bundle.pem
- CLP Db2
-
Per connettersi al server del database Db2 utilizzando Db2 CLP
-
Per connetterti alla tua istanza Db2 utilizzandoDb2 CLP, è necessario GSKit, che puoi scaricare da IBM Fix Central. Per utilizzarloDb2 CLP, è necessario anche il IBM Db2 client, che è possibile scaricare da Scarica client e driver della versione iniziale 11.5 in IBM Support.
-
Crea un keystore.
gsk8capicmd_64 -keydb -create -db "directory
/keystore-filename
" -pw "changeThisPassword
" -type pkcs12 -stash
-
Importa i pacchetti di certificati nel keystore.
gsk8capicmd_64 -cert -import -file global-bundle.pem
-target directory
/keystore-filename
> -target_stashed
-
Aggiorna la configurazione dell'istanza Db2.
db2 update dbm cfg using SSL_CLNT_KEYDB keystore-filename
SSL_CLNT_STASH keystore stash file
immediate
-
Cataloga il nodo e il database.
db2 catalog tcpip node ssluse1
REMOTE endpoint
SERVER ssl_svcename
security ssl
db2 catalog database testdb
as ssltest
at node ssluse1
-
Connettiti al database.
db2 connect to ssltest
user username
using password