Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
SSLTLSMenggunakan/dengan Amazon RDS untuk instans Db2 DB
SSLadalah protokol standar industri untuk mengamankan koneksi jaringan antara klien dan server. Setelah SSL versi 3.0, namanya diubah menjadiTLS, tetapi kita masih sering menyebut protokol sebagaiSSL. Amazon RDS mendukung SSL enkripsi untuk Amazon RDS untuk instans Db2 DB. MenggunakanSSL/TLS, Anda dapat mengenkripsi koneksi antara klien aplikasi Anda dan instans Db2 DB AndaRDS. SSL/TLSdukungan tersedia di semua Wilayah AWS RDS untuk Db2.
Untuk SSL TLS mengaktifkan/enkripsi RDS untuk instance Db2 DB, tambahkan SSL opsi Db2 ke grup parameter yang terkait dengan instans DB. Amazon RDS menggunakan port kedua, seperti yang dipersyaratkan oleh Db2, untukSSL/TLSkoneksi. Melakukan hal ini memungkinkan teks yang jelas dan komunikasi SSL -terenkripsi terjadi pada saat yang sama antara instance DB dan klien Db2. Misalnya, Anda dapat menggunakan port dengan komunikasi teks yang jelas untuk berkomunikasi dengan sumber daya lain di dalam VPC sementara menggunakan port dengan komunikasi SSL -terenkripsi untuk berkomunikasi dengan sumber daya di luar. VPC
Membuat TLS koneksiSSL/
Untuk membuat TLS koneksiSSL/, pilih otoritas sertifikat (CA), unduh bundel sertifikat untuk semua Wilayah AWS, dan tambahkan parameter ke grup parameter kustom.
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 Bring Your Own License (BYOL) RDS untuk Db2, ubah grup parameter kustom yang Anda buat untuk Anda IBM Customer ID dan Anda. IBM Site ID Jika Anda menggunakan model lisensi yang berbeda RDS untuk Db2, ikuti prosedur untuk menambahkan parameter ke grup parameter khusus. Untuk informasi selengkapnya, lihat Amazon RDS untuk opsi lisensi Db2.
Anda tidak dapat memodifikasi grup parameter default RDS untuk instance Db2 DB. Oleh karena itu, Anda harus membuat grup parameter kustom, memodifikasinya, dan kemudian melampirkannya ke instans Db2 DB AndaRDS. 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 Memodifikasi parameter dalam grup parameter DB di Amazon RDS Aurora.
-
Kaitkan grup parameter dengan instans Db2 DB AndaRDS. 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
-
Unduh JDBC drivernya. Untuk informasi selengkapnya, lihat Versi dan Unduhan DB2 JDBC Driver 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 AndaJava KeyStore.
./shell_file_name.sh
global-bundle.pem password
truststore.jks
-
Untuk menghubungi server Db2 Anda, jalankan perintah berikut. Ganti placeholder berikut dalam contoh dengan informasi instans Db2 DB AndaRDS.
-
ip_address
— Alamat IP untuk titik akhir instans DB Anda.
-
port
— Nomor port untuk SSL koneksi. Ini bisa berupa nomor port apa pun kecuali nomor yang digunakan untuk SSL non-port.
-
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 placeholder berikut dalam contoh dengan informasi instans Db2 DB AndaRDS.
-
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 SSL koneksi. Ini bisa berupa nomor port apa pun kecuali nomor yang digunakan untuk SSL non-port.
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 placeholder berikut dalam contoh dengan informasi instans Db2 DB AndaRDS.
-
port
— Nomor port untuk SSL koneksi. Ini bisa berupa nomor port apa pun kecuali nomor yang digunakan untuk SSL non-port.
-
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 Python skrip 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