Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan SSL/TLS dengan Amazon RDS untuk instans Db2 DB
SSL adalah sebuah protokol standar industri untuk mengamankan koneksi jaringan antara klien dan server. Setelah SSL versi 3.0, namanya diubah menjadi TLS, tetapi kami masih sering merujuk ke protokol ini dengan SSL. Amazon RDS mendukung enkripsi SSL untuk instans basis data RDS for Db2. Menggunakan SSL/TLS,
you can encrypt a connection between your application client and your RDS for Db2 DB instance.
SSL/TLS dukungan tersedia di semua Wilayah AWS untuk RDS untuk Db2.
Untuk mengaktifkan SSL/TLS encryption for an RDS for Db2 DB instance, add the Db2 SSL option to the
parameter group associated with the DB instance. Amazon RDS uses a second port, as required by
Db2, for SSL/TLS koneksi. Melakukan hal ini memungkinkan komunikasi baik teks jelas maupun berenkripsi SSL terjadi serentak antara instans basis data dan klien Db2. Misalnya, Anda dapat menggunakan port dengan komunikasi teks jelas untuk berkomunikasi dengan sumber daya lain di dalam VPC sambil menggunakan port komunikasi berenkripsi SSL untuk berkomunikasi dengan sumber daya di luar VPC.
Membuat koneksi SSL/TLS
Untuk membuat koneksi SSL/TLS, pilih otoritas sertifikat (CA), unduh bundel sertifikat untuk semua Wilayah AWS, dan tambahkan parameter ke grup parameter khusus.
Langkah 1: Pilih CA dan unduh sertifikat
Pilih otoritas sertifikat (CA) dan unduh bundel sertifikat untuk semua Wilayah AWS. Untuk informasi selengkapnya, lihat .
Langkah 2: Perbarui parameter-parameter dalam grup parameter kustom
Jika Anda menggunakan model Bawa Lisensi Sendiri (BYOL) untuk RDS for Db2, ubah grup parameter kustom yang Anda buat untuk IBM Customer ID dan IBM Site ID Anda. Jika Anda menggunakan model pelisensian yang lain untuk RDS for Db2, maka ikuti prosedur untuk menambahkan parameter ke grup parameter kustom. Untuk informasi selengkapnya, lihat Amazon RDS untuk opsi lisensi Db2.
Anda tidak dapat mengubah grup parameter default untuk instans basis data RDS for Db2. Oleh karena itu, Anda harus membuat grup parameter kustom, mengubahnya, dan lalu melampirkannya pada instans basis data RDS for Db2 Anda. Lihat informasi yang lebih lengkap tentang grup parameter di Grup parameter DB untuk instans RDSAmazon DB Amazon.
Gunakan setelan parameter dalam tabel berikut.
Parameter |
Nilai |
DB2COMM |
TCPIP,SSL atau SSL |
SSL_SVCENAME |
<any port number except the number used for the non-SSL
port> |
Untuk memperbarui parameter-parameter dalam grup parameter kustom
-
Buat grup parameter kustom dengan menjalankan perintah create-db-parameter-group.
Sertakan opsi-opsi yang diperlukan berikut:
-
--db-parameter-group-name
– Nama untuk grup parameter yang sedang Anda buat.
-
--db-parameter-group-family
– Edisi mesin dan versi utama Db2. Nilai-nilai yang valid: db2-se-11-5
, db2-ae-11.5
.
-
--description
– Deskripsi untuk grup parameter ini.
Lihat informasi yang lebih lengkap tentang cara membuat grup parameter basis data di Membuat grup parameter DB di Amazon RDS Amazon.
-
Ubah parameter-parameter dalam grup parameter kustom yang Anda buat dengan menjalankan perintah modify-db-parameter-group.
Sertakan opsi-opsi yang diperlukan berikut:
-
--db-parameter-group-name
– Nama grup parameter yang Anda buat.
-
--parameters
– Array nama parameter, nilai parameter, dan metode aplikasi untuk pembaruan parameter.
Lihat informasi yang lebih lengkap tentang mengubah grup parameter di .
-
Kaitkan grup parameter dengan instans basis data RDS for Db2 Anda. Untuk informasi selengkapnya, lihat Mengaitkan grup parameter DB dengan instans DB di Amazon RDS Aurora.
Hubungi server basis data Db2 Anda
Petunjuk untuk menghubungi server basis data Db2 Anda bersifat spesifik bahasa.
- Java
-
Untuk menghubungi server basis data Db2 Anda dengan menggunakan Java
-
Mengunduh driver JDBC. Untuk informasi selengkapnya, lihat Versi dan Unduhan DB2 Driver JDBC di dokumentasi IBM Support.
-
Buat file skrip shell dengan konten berikut. Skrip ini menambahkan semua sertifikat dari bundel ke sebuah Java
KeyStore.
Periksa bahwa keytool
ada di jalur dalam skrip sehingga skrip dapat menemukannya. Jika klien Db2 digunakan, Anda dapat menemukan keytool
di bawah ~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
-
Untuk menjalankan skrip shell dan mengimpor file PEM beserta bundel sertifikat ke dalam Java KeyStore, jalankan perintah berikut. Ganti shell_file_name.sh
dengan nama file skrip shell Anda dan password
dengan kata sandi untuk file AndaJava KeyStore.
./shell_file_name.sh
global-bundle.pem password
truststore.jks
-
Untuk menghubungi server Db2 Anda, jalankan perintah berikut. Ganti penampung-penampung nilai berikut dalam contoh dengan informasi instans basis data RDS for Db2 Anda.
-
ip_address
— Alamat IP untuk titik akhir instans DB Anda.
-
port
— Nomor port untuk koneksi SSL. Ini boleh berupa sebarang nomor port selain nomor yang digunakan untuk port non-SSL.
-
database_name
— Nama database Anda dalam instans DB Anda.
-
master_username
— Nama pengguna utama untuk instans DB Anda.
-
master_password
— Kata sandi utama untuk instans DB Anda.
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
-
Untuk menghubungi server basis data Db2 Anda dengan menggunakan Node.js
-
Instal driver node-ibm_db. Lihat informasi yang lebih lengkap di Installing the node-ibm_db driver on Linux and UNIX systems dalam dokumentasi IBM Db2.
-
Buat file JavaScript berdasarkan konten berikut. Ganti penampung-penampung nilai berikut dalam contoh dengan informasi instans basis data RDS for Db2 Anda.
-
ip_address
— Alamat IP untuk titik akhir instans DB Anda.
-
master_username
— Nama pengguna utama untuk instans DB Anda.
-
master_password
— Kata sandi utama untuk instans DB Anda.
-
database_name
— Nama database Anda dalam instans DB Anda.
-
port
— Nomor port untuk koneksi SSL. Ini boleh berupa sebarang nomor port selain nomor yang digunakan untuk port 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');
});
});
-
Untuk menjalankan file JavaScript, jalankan perintah berikut.
node ssl-test.js
- Python
-
Untuk menghubungi server basis data Db2 Anda dengan menggunakan Python
-
Buat file Python dengan konten berikut. Ganti penampung-penampung nilai berikut dalam contoh dengan informasi instans basis data RDS for Db2 Anda.
-
port
— Nomor port untuk koneksi SSL. Ini boleh berupa sebarang nomor port selain nomor yang digunakan untuk port non-SSL.
-
master_username
— Nama pengguna utama untuk instans DB Anda.
-
master_password
— Kata sandi utama untuk instans DB Anda.
-
database_name
— Nama database Anda dalam instans DB Anda.
-
ip_address
— Alamat IP untuk titik akhir instans DB Anda.
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()
-
Buat skrip shell berikut, yang menjalankan file Python yang Anda buat. Ganti python_file_name.py
dengan nama file skrip Python Anda.
#!/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
-
Untuk mengimpor file PEM beserta bundel sertifikat dan menjalankan skrip shell, jalankan perintah berikut. Ganti shell_file_name.sh
dengan nama file skrip shell Anda.
./shell_file_name.sh
global-bundle.pem
- Db2 CLP
-
Untuk menghubungi server basis data Db2 Anda dengan menggunakan Db2 CLP
-
Untuk terhubung ke instans Db2 Anda menggunakanDb2 CLP, Anda perlu GSKit, yang dapat Anda unduh di IBM Fix Central. Untuk menggunakannyaDb2 CLP, Anda juga memerlukan IBM Db2 klien, yang dapat Anda unduh dari Unduh klien dan driver Versi awal 11.5 di IBM Support.
-
Buat keystore.
gsk8capicmd_64 -keydb -create -db "directory
/keystore-filename
" -pw "changeThisPassword
" -type pkcs12 -stash
-
Impor bundel sertifikat ke keystore.
gsk8capicmd_64 -cert -import -file global-bundle.pem
-target directory
/keystore-filename
> -target_stashed
-
Perbarui konfigurasi instans Db2.
db2 update dbm cfg using SSL_CLNT_KEYDB keystore-filename
SSL_CLNT_STASH keystore stash file
immediate
-
Katalog node dan database.
db2 catalog tcpip node ssluse1
REMOTE endpoint
SERVER ssl_svcename
security ssl
db2 catalog database testdb
as ssltest
at node ssluse1
-
Connect ke basis data.
db2 connect to ssltest
user username
using password